def test_booleanstatechangearray_init(): a = BooleanStateChangeArray([False, True, False, True, False], [1, 3, 5, 6, 9], name="a") with pytest.raises(ValueError): b = BooleanStateChangeArray([1, 2, 3, 5, 8], t=[1, 2, 4, 8, 16], name="b") return True
def test_statechangearray_ge(): a = StateChangeArray([2, 4, 6, 8], t=[1, 3, 4, 6], name="a") b = StateChangeArray([1, 4, 3, 9], t=[1, 3, 4, 6], name="b") c = a >= b assert compare_statechangearrays( c, BooleanStateChangeArray([True, False], t=[1, 6], name="a >= b")) d = StateChangeArray([1, 4, 3, 9], t=[2, 3, 4, 6], name="d") e = a >= d assert compare_statechangearrays( e, BooleanStateChangeArray([True, False], t=[2, 6], name="a >= d")) f = a >= 4 assert compare_statechangearrays( f, BooleanStateChangeArray([False, True], t=[1, 3], name="")) return True
def test_booleanstatechangearray_repr(): a = BooleanStateChangeArray([False, True, False, True, False], [1, 3, 5, 6, 9], name="a") assert ( repr(a) == "BooleanStateChangeArray([False, True, False, True, False], t=[1, 3, 5, 6, 9], name='a')" ) return True
def test_statechangearray_gt(): a = StateChangeArray([2, 4, 6, 8], t=[1, 3, 4, 6], name="a") b = StateChangeArray([1, 5, 3, 9], t=[1, 3, 4, 6], name="b") c = a > b assert compare_statechangearrays( c, BooleanStateChangeArray([True, False, True, False], t=[1, 3, 4, 6], name="a > b"), ) d = StateChangeArray([1, 5, 9], t=[1, 5, 6], name="d") e = a > d assert compare_statechangearrays( e, BooleanStateChangeArray([True, False], t=[1, 6], name="a > d")) f = a > 5 assert compare_statechangearrays( f, BooleanStateChangeArray([False, True], t=[1, 4], name="")) g = StateChangeArray([1, 5, 3, 9], t=[2, 4, 5, 7], name="g") h = a > g assert compare_statechangearrays( h, BooleanStateChangeArray([True, False], t=[2, 7], name="a > g")) return True
def test_statechangearray_tobool(): a = StateChangeArray([0, 1, 0, 2, 0], t=[1, 2, 4, 5, 7], name="a") b = a.to_bool(inplace=False) assert compare_statechangearrays( b, BooleanStateChangeArray([False, True, False, True, False], t=[1, 2, 4, 5, 7], name="a"), ) a.to_bool(inplace=True) assert a.is_bool() assert compare_statechangearrays(a, b) return True
def test_statechangearray_invert(): a = StateChangeArray([True, False, True, False], t=[2, 4, 6, 8], name="a") not_a = ~a assert compare_statechangearrays( not_a, BooleanStateChangeArray([False, True, False, True], t=[2, 4, 6, 8], name="(~a)"), ) with pytest.raises(ValueError): b = StateChangeArray([1, 2, 3, 4], t=[2, 4, 6, 8], name="b") not_b = ~b return True
def test_statechangearray_exor(): a = StateChangeArray([True, False, True, False], t=[2, 4, 6, 8], name="a") b = StateChangeArray([True, False, True, False], t=[3, 5, 7, 9], name="b") with pytest.raises(ValueError): a_and_1 = a ^ 1 c = StateChangeArray([2, 4, 6, 8], t=[1, 3, 4, 6], name="c") with pytest.raises(ValueError): a_and_c = a ^ c a_and_b = a ^ b assert compare_statechangearrays( a_and_b, BooleanStateChangeArray( [False, True, False, True, False, True, False], t=[3, 4, 5, 6, 7, 8, 9], name="(a ^ b)", ), ) a_and_a = a ^ a a_ = a a_.name = "(a ^ a)" assert compare_statechangearrays( a_and_a, BooleanStateChangeArray([False], t=[2], name="(a ^ a)")) return True
def test_statechangearray_or(): a = StateChangeArray([True, False, True, False], t=[2, 4, 6, 8], name="a") b = StateChangeArray([True, False, True, False], t=[3, 5, 7, 9], name="b") with pytest.raises(ValueError): a_and_1 = a | 1 c = StateChangeArray([2, 4, 6, 8], t=[1, 3, 4, 6], name="c") with pytest.raises(ValueError): a_and_c = a | c a_and_b = a | b assert compare_statechangearrays( a_and_b, BooleanStateChangeArray([True, False, True, False], t=[2, 5, 6, 9], name="(a | b)"), ) a_and_a = a | a a_ = a a_.name = "(a | a)" assert compare_statechangearrays(a_and_a, a_) return True