<s> import pytest <EOL> from helpers import * <EOL> from Bits import Bits <EOL> def test_get_nbits ( ) : <EOL> assert get_nbits ( <NUM_LIT:0> ) == <NUM_LIT:1> <EOL> assert get_nbits ( <NUM_LIT:1> ) == <NUM_LIT:1> <EOL> assert get_nbits ( <NUM_LIT:2> ) == <NUM_LIT:2> <EOL> assert get_nbits ( <NUM_LIT:3> ) == <NUM_LIT:2> <EOL> assert get_nbits ( <NUM_LIT:4> ) == <NUM_LIT:3> <EOL> assert get_nbits ( <NUM_LIT:5> ) == <NUM_LIT:3> <EOL> assert get_nbits ( <NUM_LIT:6> ) == <NUM_LIT:3> <EOL> assert get_nbits ( <NUM_LIT:7> ) == <NUM_LIT:3> <EOL> assert get_nbits ( <NUM_LIT:8> ) == <NUM_LIT:4> <EOL> assert get_nbits ( <NUM_LIT> ) == <NUM_LIT:4> <EOL> assert get_nbits ( <NUM_LIT> ) == <NUM_LIT:8> <EOL> assert get_nbits ( <NUM_LIT> ) == <NUM_LIT:12> <EOL> assert get_nbits ( <NUM_LIT> ) == <NUM_LIT:16> <EOL> assert get_nbits ( - <NUM_LIT:1> ) == <NUM_LIT:2> <EOL> assert get_nbits ( - <NUM_LIT:2> ) == <NUM_LIT:3> <EOL> assert get_nbits ( - <NUM_LIT:3> ) == <NUM_LIT:3> <EOL> assert get_nbits ( - <NUM_LIT:4> ) == <NUM_LIT:4> <EOL> assert get_nbits ( - <NUM_LIT:5> ) == <NUM_LIT:4> <EOL> assert get_nbits ( - <NUM_LIT:6> ) == <NUM_LIT:4> <EOL> assert get_nbits ( - <NUM_LIT:7> ) == <NUM_LIT:4> <EOL> assert get_nbits ( - <NUM_LIT:8> ) == <NUM_LIT:5> <EOL> def test_clog2 ( ) : <EOL> assert clog2 ( <NUM_LIT:1> ) == <NUM_LIT:0> <EOL> assert clog2 ( <NUM_LIT:2> ) == <NUM_LIT:1> <EOL> assert clog2 ( <NUM_LIT:3> ) == <NUM_LIT:2> <EOL> assert clog2 ( <NUM_LIT:4> ) == <NUM_LIT:2> <EOL> assert clog2 ( <NUM_LIT:5> ) == <NUM_LIT:3> <EOL> assert clog2 ( <NUM_LIT:6> ) == <NUM_LIT:3> <EOL> assert clog2 ( <NUM_LIT:7> ) == <NUM_LIT:3> <EOL> assert clog2 ( <NUM_LIT:8> ) == <NUM_LIT:3> <EOL> assert clog2 ( <NUM_LIT:9> ) == <NUM_LIT:4> <EOL> assert clog2 ( <NUM_LIT:16> ) == <NUM_LIT:4> <EOL> assert clog2 ( <NUM_LIT:32> ) == <NUM_LIT:5> <EOL> assert clog2 ( <NUM_LIT:64> ) == <NUM_LIT:6> <EOL> assert clog2 ( <NUM_LIT> ) == <NUM_LIT:7> <EOL> assert clog2 ( <NUM_LIT> ) == <NUM_LIT:8> <EOL> assert get_nbits ( <NUM_LIT> ) == <NUM_LIT:4> <EOL> assert get_nbits ( <NUM_LIT> ) == <NUM_LIT:8> <EOL> assert get_nbits ( <NUM_LIT> ) == <NUM_LIT:12> <EOL> assert get_nbits ( <NUM_LIT> ) == <NUM_LIT:16> <EOL> with pytest . raises ( AssertionError ) : <EOL> assert clog2 ( <NUM_LIT:0> ) == <NUM_LIT:1> <EOL> with pytest . raises ( AssertionError ) : <EOL> assert clog2 ( - <NUM_LIT:1> ) == <NUM_LIT:2> <EOL> def test_zext ( ) : <EOL> assert zext ( Bits ( <NUM_LIT:4> , <NUM_LIT:2> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert zext ( Bits ( <NUM_LIT:4> , <NUM_LIT:4> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert zext ( Bits ( <NUM_LIT:4> , <NUM_LIT:15> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert zext ( Bits ( <NUM_LIT:4> , - <NUM_LIT:2> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert zext ( Bits ( <NUM_LIT:4> , - <NUM_LIT:4> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> def test_sext ( ) : <EOL> assert sext ( Bits ( <NUM_LIT:4> , <NUM_LIT:2> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert sext ( Bits ( <NUM_LIT:4> , <NUM_LIT:4> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert sext ( Bits ( <NUM_LIT:4> , <NUM_LIT:15> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert sext ( Bits ( <NUM_LIT:4> , - <NUM_LIT:2> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert sext ( Bits ( <NUM_LIT:4> , - <NUM_LIT:4> ) , <NUM_LIT:8> ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> def test_concat ( ) : <EOL> assert concat ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) , Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == Bits ( <NUM_LIT:8> , <NUM_LIT> ) <EOL> assert concat ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) , Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == Bits ( <NUM_LIT:6> , <NUM_LIT> ) <EOL> assert concat ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) , Bits ( <NUM_LIT:4> , <NUM_LIT:0> ) , Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == Bits ( <NUM_LIT:10> , <NUM_LIT> ) <EOL> assert concat ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) , Bits ( <NUM_LIT:4> , <NUM_LIT:0> ) , Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == Bits ( <NUM_LIT:12> , <NUM_LIT> ) <EOL> def test_reduce_and ( ) : <EOL> assert reduce_and ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_and ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_and ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_and ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_and ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_and ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_and ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_and ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> def test_reduce_or ( ) : <EOL> assert reduce_or ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_or ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_or ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_or ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_or ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_or ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_or ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_or ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> def test_reduce_xor ( ) : <EOL> assert reduce_xor ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:2> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:4> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:3> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:3> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:3> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:3> , <NUM_LIT> ) ) == <NUM_LIT:1> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:3> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:3> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:3> , <NUM_LIT> ) ) == <NUM_LIT:0> <EOL> assert reduce_xor ( Bits ( <NUM_LIT:3> , <NUM_LIT> ) ) == <NUM_LIT:0> </s>
