panda3d/tests/putil/test_bitarray.py

51 lines
1.2 KiB
Python

from panda3d.core import BitArray
import pickle
import pytest
def test_bitarray_allon():
assert BitArray.all_on().is_all_on()
def test_bitarray_invert():
assert ~BitArray(0) != BitArray(0)
assert (~BitArray(0)).is_all_on()
assert ~~BitArray(0) == BitArray(0)
assert ~~BitArray(123) == BitArray(123)
def test_bitarray_getstate():
assert BitArray().__getstate__() == 0
assert BitArray(0).__getstate__() == 0
assert BitArray(100).__getstate__() == 100
assert BitArray.all_on().__getstate__() == -1
assert ~BitArray(100).__getstate__() == ~100
def test_bitarray_pickle():
ba = BitArray()
assert ba == pickle.loads(pickle.dumps(ba, -1))
ba = BitArray(0)
assert ba == pickle.loads(pickle.dumps(ba, -1))
ba = BitArray(123)
assert ba == pickle.loads(pickle.dumps(ba, -1))
def test_bitarray_has_any_of():
ba = BitArray()
assert not ba.has_any_of(100, 200)
ba = BitArray()
ba.set_range(0, 53)
assert ba.has_any_of(52, 1)
assert ba.has_any_of(52, 100)
assert not ba.has_any_of(53, 45)
ba = BitArray()
ba.invert_in_place()
assert ba.has_any_of(0, 1)
assert ba.has_any_of(53, 45)
assert ba.has_any_of(0, 100)