Phi2-Fine-Tuning
/
phivenv
/Lib
/site-packages
/sympy
/plotting
/intervalmath
/tests
/test_interval_membership.py
| from sympy.core.symbol import Symbol | |
| from sympy.plotting.intervalmath import interval | |
| from sympy.plotting.intervalmath.interval_membership import intervalMembership | |
| from sympy.plotting.experimental_lambdify import experimental_lambdify | |
| from sympy.testing.pytest import raises | |
| def test_creation(): | |
| assert intervalMembership(True, True) | |
| raises(TypeError, lambda: intervalMembership(True)) | |
| raises(TypeError, lambda: intervalMembership(True, True, True)) | |
| def test_getitem(): | |
| a = intervalMembership(True, False) | |
| assert a[0] is True | |
| assert a[1] is False | |
| raises(IndexError, lambda: a[2]) | |
| def test_str(): | |
| a = intervalMembership(True, False) | |
| assert str(a) == 'intervalMembership(True, False)' | |
| assert repr(a) == 'intervalMembership(True, False)' | |
| def test_equivalence(): | |
| a = intervalMembership(True, True) | |
| b = intervalMembership(True, False) | |
| assert (a == b) is False | |
| assert (a != b) is True | |
| a = intervalMembership(True, False) | |
| b = intervalMembership(True, False) | |
| assert (a == b) is True | |
| assert (a != b) is False | |
| def test_not(): | |
| x = Symbol('x') | |
| r1 = x > -1 | |
| r2 = x <= -1 | |
| i = interval | |
| f1 = experimental_lambdify((x,), r1) | |
| f2 = experimental_lambdify((x,), r2) | |
| tt = i(-0.1, 0.1, is_valid=True) | |
| tn = i(-0.1, 0.1, is_valid=None) | |
| tf = i(-0.1, 0.1, is_valid=False) | |
| assert f1(tt) == ~f2(tt) | |
| assert f1(tn) == ~f2(tn) | |
| assert f1(tf) == ~f2(tf) | |
| nt = i(0.9, 1.1, is_valid=True) | |
| nn = i(0.9, 1.1, is_valid=None) | |
| nf = i(0.9, 1.1, is_valid=False) | |
| assert f1(nt) == ~f2(nt) | |
| assert f1(nn) == ~f2(nn) | |
| assert f1(nf) == ~f2(nf) | |
| ft = i(1.9, 2.1, is_valid=True) | |
| fn = i(1.9, 2.1, is_valid=None) | |
| ff = i(1.9, 2.1, is_valid=False) | |
| assert f1(ft) == ~f2(ft) | |
| assert f1(fn) == ~f2(fn) | |
| assert f1(ff) == ~f2(ff) | |
| def test_boolean(): | |
| # There can be 9*9 test cases in full mapping of the cartesian product. | |
| # But we only consider 3*3 cases for simplicity. | |
| s = [ | |
| intervalMembership(False, False), | |
| intervalMembership(None, None), | |
| intervalMembership(True, True) | |
| ] | |
| # Reduced tests for 'And' | |
| a1 = [ | |
| intervalMembership(False, False), | |
| intervalMembership(False, False), | |
| intervalMembership(False, False), | |
| intervalMembership(False, False), | |
| intervalMembership(None, None), | |
| intervalMembership(None, None), | |
| intervalMembership(False, False), | |
| intervalMembership(None, None), | |
| intervalMembership(True, True) | |
| ] | |
| a1_iter = iter(a1) | |
| for i in range(len(s)): | |
| for j in range(len(s)): | |
| assert s[i] & s[j] == next(a1_iter) | |
| # Reduced tests for 'Or' | |
| a1 = [ | |
| intervalMembership(False, False), | |
| intervalMembership(None, False), | |
| intervalMembership(True, False), | |
| intervalMembership(None, False), | |
| intervalMembership(None, None), | |
| intervalMembership(True, None), | |
| intervalMembership(True, False), | |
| intervalMembership(True, None), | |
| intervalMembership(True, True) | |
| ] | |
| a1_iter = iter(a1) | |
| for i in range(len(s)): | |
| for j in range(len(s)): | |
| assert s[i] | s[j] == next(a1_iter) | |
| # Reduced tests for 'Xor' | |
| a1 = [ | |
| intervalMembership(False, False), | |
| intervalMembership(None, False), | |
| intervalMembership(True, False), | |
| intervalMembership(None, False), | |
| intervalMembership(None, None), | |
| intervalMembership(None, None), | |
| intervalMembership(True, False), | |
| intervalMembership(None, None), | |
| intervalMembership(False, True) | |
| ] | |
| a1_iter = iter(a1) | |
| for i in range(len(s)): | |
| for j in range(len(s)): | |
| assert s[i] ^ s[j] == next(a1_iter) | |
| # Reduced tests for 'Not' | |
| a1 = [ | |
| intervalMembership(True, False), | |
| intervalMembership(None, None), | |
| intervalMembership(False, True) | |
| ] | |
| a1_iter = iter(a1) | |
| for i in range(len(s)): | |
| assert ~s[i] == next(a1_iter) | |
| def test_boolean_errors(): | |
| a = intervalMembership(True, True) | |
| raises(ValueError, lambda: a & 1) | |
| raises(ValueError, lambda: a | 1) | |
| raises(ValueError, lambda: a ^ 1) | |