def test_bitvector_equal_bitvector(place):
    value = 1 << place
    a = BitVector(value)
    b = BitVector(value)
    assert isinstance(a, BitVector)
    assert isinstance(b, BitVector)
    assert a == b and a is not b
def test_bitvector_greater_than_bitvector(value):

    test = BitVector(value)
    zero = BitVector()
    assert zero == 0
    assert test == value
    assert test > zero
def test_bitvector_greater_than_or_equal_scalar(value):

    test = BitVector(value)
    zero = BitVector()
    assert zero == 0
    assert test == value
    assert test >= zero
Beispiel #4
0
def test_bitvector_sub_bitvector(place: int):

    expected = BitVector(1 << place)
    test = BitVector(1 << place)
    assert test == expected and test is not expected

    result = test - expected
    assert isinstance(result, BitVector)
    assert result == 0
def test_bitvector_method_toggle(offset: int, BV_0: BitVector):

    assert BV_0[offset] == 0

    BV_0.toggle(offset)
    assert BV_0[offset] == 1

    BV_0.toggle(offset)
    assert BV_0[offset] == 0
Beispiel #6
0
def test_bitvector_isub_bitvector(place: int):

    expected = BitVector(1 << place)
    test = BitVector(1 << place)
    assert test == expected and test is not expected

    test -= expected
    assert isinstance(test, BitVector)
    assert test == 0
Beispiel #7
0
def test_bitvector_add_bitvector_mismatched_sizes(size_a, size_b):

    a = BitVector(1, size=size_a)
    b = BitVector(1, size=size_b)

    c = a + b

    assert isinstance(c, BitVector)
    assert len(c) == len(min(a, b, key=len))
    assert c == (2 & c.MAX)
def test_bitvector_floordiv_bitvector_mismatched_sizes(size_a, size_b):

    a = BitVector(1, size=size_a)
    b = BitVector(1, size=size_b)

    c = a // b

    assert isinstance(c, BitVector)
    assert len(c) == len(min(a, b, key=len))
    assert c == 1
Beispiel #9
0
def test_bitvector_mul_bitvector_mismatched_sizes(size_a, size_b):

    a = BitVector(1, size=size_a)
    b = BitVector(1, size=size_b)

    c = a * b

    assert isinstance(c, BitVector)
    assert len(c) == len(min(a, b, key=len))
    assert c == 1 and c == a and c == b
Beispiel #10
0
def test_bitvector_bin_property(given):

    bv = BitVector()
    bin_value = bv.bin

    assert bin_value.startswith("0b")
    assert int(bin_value, 2) == bv.value
def test_bitvector_floordiv_scalar(value: int, BV_0: BitVector):

    test = BV_0 // value
    assert test == 0

    test = BitVector(value) // value
    assert test == 1
def test_bitvector_not_equal_scalar(scalar, expected):

    b = BitVector()
    assert b == 0

    result = b != scalar
    assert result == expected
Beispiel #13
0
def test_bitvector_repr():

    bv = BitVector()
    repr_value = repr(bv)

    assert "BitVector" in repr_value
    assert "128" in repr_value
Beispiel #14
0
def test_bitvector_hex_property(given):

    bv = BitVector()
    hex_value = bv.hex

    assert hex_value.startswith("0x")
    assert int(hex_value, 16) == bv.value
Beispiel #15
0
def test_bitvector_str(given):

    bv = BitVector(given)
    str_value = str(bv)

    assert str_value.startswith("0x")
    assert int(str_value, 16) == bv.value
def test_bitvector_ifloordiv_scalar(value: int, BV_0: BitVector):

    BV_0 //= value
    assert BV_0 == 0

    test = BitVector(value)
    test //= value
    assert test == 1
def test_bitvector_floordiv_bitvector(value: int, BV_0: BitVector,
                                      BV_1: BitVector):

    test = BitVector(value)

    result = test // BV_1

    assert result == test and result is not test
def test_bitvector_bitwise_or(value: int, BV_0: BitVector):

    assert BV_0 | value == value
    assert value | BV_0 == value

    test = BitVector(value)

    assert test | value == value
    assert value | test == value
Beispiel #19
0
def test_bitvector_rsub_scalar(place: int):

    expected = 1 << place
    test = BitVector(expected)
    assert test == expected and test is not expected

    result = expected - test
    assert isinstance(result, int)
    assert result == 0
def test_bitvector_bitwise_ixor(value: int, BV_0: BitVector):

    BV_0 ^= value
    assert BV_0 == value

    test = BitVector(value)
    test ^= value

    assert test == 0
def test_bitvector_bitwise_xor(value: int, BV_0: BitVector):

    assert BV_0 ^ value == value
    assert value ^ BV_0 == value

    test = BitVector(value)

    assert test ^ value == 0
    assert value ^ test == 0
Beispiel #22
0
def test_bitvector_bytes_property(value):

    bv = BitVector(value)
    bv_bytes = bv.bytes

    test = int.from_bytes(bv_bytes, "big")

    assert isinstance(bv_bytes, bytes)
    assert len(bv_bytes) == len(bv) / 8
    assert test == bv
Beispiel #23
0
def test_bitvector_imul_bitvector(value: int, BV_0: BitVector,
                                  BV_1: BitVector):

    test = BitVector(value)

    BV_0 *= test
    assert BV_0 == 0

    BV_1 *= test
    assert BV_1 == test and BV_1 is not test
Beispiel #24
0
def test_bitvector_iadd_bitvector(value: int, BV_0: BitVector,
                                  BV_1: BitVector):

    bv = BitVector(value)

    BV_0 += bv
    assert BV_0 == value

    BV_1 += bv
    assert BV_1 == value + 1
Beispiel #25
0
def test_bitvector_mul_bitvector(value: int, BV_0: BitVector, BV_1: BitVector):

    expected = BitVector(value)

    result = BV_1 * expected
    assert isinstance(result, BitVector)
    assert result == expected and result is not expected

    result = BV_0 * expected
    assert isinstance(result, BitVector)
    assert result == 0
Beispiel #26
0
def BV_0() -> BitVector:
    return BitVector(0)
Beispiel #27
0
def BV_1() -> BitVector:
    return BitVector(1)
def test_bitvector_method_set(BV_0: BitVector):

    assert BV_0 == 0
    BV_0.set()
    assert all(BV_0)
def test_bitvector_method_clear(BV_SET: BitVector):

    assert all(BV_SET)
    BV_SET.clear()
    assert not any(BV_SET)
def test_bitvector_ifloordiv_bitvector(value: int):

    test = BitVector(value)
    test //= value
    assert test == 1