예제 #1
0
def test_ConditionSet():
    x = Symbol("x")
    i1 = Interval(-oo, oo)
    f1 = FiniteSet(0, 1, 2, 4)
    cond1 = Ge(x**2, 9)
    assert ConditionSet(x, And(Eq(0, 1), i1.contains(x))) == EmptySet()
    assert ConditionSet(x, And(Gt(1, 0), i1.contains(x))) == i1
    assert ConditionSet(x, And(cond1, f1.contains(x))) == FiniteSet(4)
예제 #2
0
def test_Piecewise():
    assert Piecewise((x, x < 1), (0, True)) == Piecewise((x, x < 1), (0, True))
    int1 = Interval(1, 2, True, False)
    int2 = Interval(2, 5, True, False)
    int3 = Interval(5, 10, True, False)
    p = Piecewise((x, Contains(x, int1)), (y, Contains(x, int2)),
                  (x + y, Contains(x, int3)))
    q = Piecewise((1, Contains(x, int1)), (0, Contains(x, int2)),
                  (1, Contains(x, int3)))
    assert p.diff(x) == q
예제 #3
0
def test_solve():
	x = Symbol("x")
	reals = Interval(-oo, oo)

	assert solve(1, x, reals) == EmptySet()
	assert solve(0, x, reals) == reals
	assert solve(x + 3, x, reals) == FiniteSet(-3)
	assert solve(x + 3, x, Interval(0, oo)) == EmptySet()
	assert solve(x, x, reals) == FiniteSet(0)
	assert solve(x**2 + 1, x) == FiniteSet(-I, I)
	assert solve(x**2 - 2*x + 1, x) == FiniteSet(1)
	assert solve(Eq(x**3 + 3*x**2 + 3*x, -1), x, reals) == FiniteSet(-1)
	assert solve(x**3 - x, x) == FiniteSet(0, 1, -1)
예제 #4
0
def test_sets():
    x = Integer(2)
    y = Integer(3)
    x1 = sympy.Integer(2)
    y1 = sympy.Integer(3)

    assert Interval(x, y) == Interval(x1, y1)
    assert Interval(x1, y) == Interval(x1, y1)
    assert Interval(x, y)._sympy_() == sympy.Interval(x1, y1)
    assert sympify(sympy.Interval(x1, y1)) == Interval(x, y)

    assert sympify(sympy.EmptySet()) == EmptySet()
    assert sympy.EmptySet() == EmptySet()._sympy_()

    assert FiniteSet(x, y) == FiniteSet(x1, y1)
    assert FiniteSet(x1, y) == FiniteSet(x1, y1)
    assert FiniteSet(x, y)._sympy_() == sympy.FiniteSet(x1, y1)
    assert sympify(sympy.FiniteSet(x1, y1)) == FiniteSet(x, y)

    x = Interval(1, 2)
    y = Interval(2, 3)
    x1 = sympy.Interval(1, 2)
    y1 = sympy.Interval(2, 3)

    assert Union(x, y) == Union(x1, y1)
    assert Union(x1, y) == Union(x1, y1)
    assert Union(x, y)._sympy_() == sympy.Union(x1, y1)
    assert sympify(sympy.Union(x1, y1)) == Union(x, y)

    assert Complement(x, y) == Complement(x1, y1)
    assert Complement(x1, y) == Complement(x1, y1)
    assert Complement(x, y)._sympy_() == sympy.Complement(x1, y1)
    assert sympify(sympy.Complement(x1, y1)) == Complement(x, y)
예제 #5
0
def test_sets():
    x = Integer(2)
    y = Integer(3)
    x1 = sympy.Integer(2)
    y1 = sympy.Integer(3)

    assert Interval(x, y) == Interval(x1, y1)
    assert Interval(x1, y) == Interval(x1, y1)
    assert Interval(x, y)._sympy_() == sympy.Interval(x1, y1)
    assert sympify(sympy.Interval(x1, y1)) == Interval(x, y)

    assert sympify(sympy.S.EmptySet) == EmptySet()
    assert sympy.S.EmptySet == EmptySet()._sympy_()

    assert sympify(sympy.S.UniversalSet) == UniversalSet()
    assert sympy.S.UniversalSet == UniversalSet()._sympy_()

    assert sympify(sympy.S.Reals) == Reals()
    assert sympy.S.Reals == Reals()._sympy_()

    assert sympify(sympy.S.Rationals) == Rationals()
    assert sympy.S.Rationals == Rationals()._sympy_()

    assert sympify(sympy.S.Integers) == Integers()
    assert sympy.S.Integers == Integers()._sympy_()

    assert FiniteSet(x, y) == FiniteSet(x1, y1)
    assert FiniteSet(x1, y) == FiniteSet(x1, y1)
    assert FiniteSet(x, y)._sympy_() == sympy.FiniteSet(x1, y1)
    assert sympify(sympy.FiniteSet(x1, y1)) == FiniteSet(x, y)

    x = Interval(1, 2)
    y = Interval(2, 3)
    x1 = sympy.Interval(1, 2)
    y1 = sympy.Interval(2, 3)

    assert Union(x, y) == Union(x1, y1)
    assert Union(x1, y) == Union(x1, y1)
    assert Union(x, y)._sympy_() == sympy.Union(x1, y1)
    assert sympify(sympy.Union(x1, y1)) == Union(x, y)

    assert Complement(x, y) == Complement(x1, y1)
    assert Complement(x1, y) == Complement(x1, y1)
    assert Complement(x, y)._sympy_() == sympy.Complement(x1, y1)
    assert sympify(sympy.Complement(x1, y1)) == Complement(x, y)
예제 #6
0
def test_logic():
    x = true
    y = false
    x1 = sympy.true
    y1 = sympy.false

    assert And(x, y) == And(x1, y1)
    assert And(x1, y) == And(x1, y1)
    assert And(x, y)._sympy_() == sympy.And(x1, y1)
    assert sympify(sympy.And(x1, y1)) == And(x, y)

    assert Or(x, y) == Or(x1, y1)
    assert Or(x1, y) == Or(x1, y1)
    assert Or(x, y)._sympy_() == sympy.Or(x1, y1)
    assert sympify(sympy.Or(x1, y1)) == Or(x, y)

    assert Not(x) == Not(x1)
    assert Not(x1) == Not(x1)
    assert Not(x)._sympy_() == sympy.Not(x1)
    assert sympify(sympy.Not(x1)) == Not(x)

    assert Xor(x, y) == Xor(x1, y1)
    assert Xor(x1, y) == Xor(x1, y1)
    assert Xor(x, y)._sympy_() == sympy.Xor(x1, y1)
    assert sympify(sympy.Xor(x1, y1)) == Xor(x, y)

    x = Symbol("x")
    x1 = sympy.Symbol("x")

    assert Piecewise((x, x < 1), (0, True)) == Piecewise((x1, x1 < 1),
                                                         (0, True))
    assert Piecewise((x, x1 < 1), (0, True)) == Piecewise((x1, x1 < 1),
                                                          (0, True))
    assert Piecewise((x, x < 1), (0, True))._sympy_() == sympy.Piecewise(
        (x1, x1 < 1), (0, True))
    assert sympify(sympy.Piecewise((x1, x1 < 1), (0, True))) == Piecewise(
        (x, x < 1), (0, True))

    assert Contains(x, Interval(1, 1)) == Contains(x1, Interval(1, 1))
    assert Contains(x, Interval(1, 1))._sympy_() == sympy.Contains(
        x1, Interval(1, 1))
    assert sympify(sympy.Contains(x1,
                                  Interval(1,
                                           1))) == Contains(x, Interval(1, 1))
예제 #7
0
def test_ImageSet():
    x = Symbol("x")
    i1 = Interval(0, 1)
    assert ImageSet(x, x**2, EmptySet()) == EmptySet()
    assert ImageSet(x, 1, i1) == FiniteSet(1)
    assert ImageSet(x, x, i1) == i1
예제 #8
0
def test_Complement():
    assert Complement(Interval(1, 3), Interval(1, 2)) == Interval(2, 3, True)
    assert Complement(FiniteSet(1, 3, 4), FiniteSet(3, 4)) == FiniteSet(1)
    assert Complement(Union(Interval(0, 2),
                            FiniteSet(2, 3, 4)), Interval(1, 3)) == \
        Union(Interval(0, 1, False, True), FiniteSet(4))
예제 #9
0
def test_Interval():
    assert Interval(0, oo) == Interval(0, oo, False, True)
    assert Interval(-oo, 0) == Interval(-oo, 0, True, False)
    assert Interval(oo, -oo) == EmptySet()
    assert Interval(oo, oo) == EmptySet()
    assert Interval(-oo, -oo) == EmptySet()
    assert isinstance(Interval(1, 1), FiniteSet)

    assert Interval(1, 0) == EmptySet()
    assert Interval(1, 1, False, True) == EmptySet()
    assert Interval(1, 1, True, False) == EmptySet()
    assert Interval(1, 1, True, True) == EmptySet()
    assert Interval(1, 2).union(Interval(2, 3)) == Interval(1, 3)
예제 #10
0
def test_Union():
    assert Union(Interval(1, 2), Interval(2, 3)) == Interval(1, 3)
    assert Union(Interval(1, 2), Interval(2, 3, True)) == Interval(1, 3)
    assert Union(Interval(1, 3), Interval(2, 4)) == Interval(1, 4)
    assert Union(Interval(1, 2), Interval(1, 3)) == Interval(1, 3)
    assert Union(Interval(1, 3), Interval(1, 2)) == Interval(1, 3)
    assert Union(Interval(1, 3, False, True), Interval(1, 2)) == \
        Interval(1, 3, False, True)
    assert Union(Interval(1, 3), Interval(1, 2, False, True)) == Interval(1, 3)
    assert Union(Interval(1, 2, True), Interval(1, 3)) == Interval(1, 3)
    assert Union(Interval(1, 2, True), Interval(1, 3, True)) == \
        Interval(1, 3, True)
    assert Union(Interval(1, 2, True), Interval(1, 3, True, True)) == \
        Interval(1, 3, True, True)
    assert Union(Interval(1, 2, True, True), Interval(1, 3, True)) == \
        Interval(1, 3, True)
    assert Union(Interval(1, 3), Interval(2, 3)) == Interval(1, 3)
    assert Union(Interval(1, 3, False, True), Interval(2, 3)) == \
        Interval(1, 3)
    assert Union(Interval(1, 2, False, True), Interval(2, 3, True)) != \
        Interval(1, 3)
    assert Union(Interval(1, 2), EmptySet()) == Interval(1, 2)
    assert Union(EmptySet()) == EmptySet()
예제 #11
0
def test_UniversalSet():
    U = UniversalSet()
    x = Symbol("x")
    assert U.union(Interval(2, 4)) == U
    assert U.intersection(Interval(2, 4)) == Interval(2, 4)
    assert U.contains(0) == true
예제 #12
0
def test_Reals():
    R = Reals()
    assert R.union(Interval(2, 4)) == R
    assert R.contains(0) == true
예제 #13
0
def test_Interval():
    assert Interval(0, oo) == Interval(0, oo, False, True)
    assert Interval(0, oo) == Interval(0, oo, left_open=False, right_open=True)
    assert Interval(-oo, 0) == Interval(-oo, 0, True, False)
    assert Interval(-oo, 0) == Interval(-oo,
                                        0,
                                        left_open=True,
                                        right_open=False)
    assert Interval(oo, -oo) == EmptySet()
    assert Interval(oo, oo) == EmptySet()
    assert Interval(-oo, -oo) == EmptySet()
    assert isinstance(Interval(1, 1), FiniteSet)

    assert Interval(1, 0) == EmptySet()
    assert Interval(1, 1, False, True) == EmptySet()
    assert Interval(1, 1, True, False) == EmptySet()
    assert Interval(1, 1, True, True) == EmptySet()
    assert Interval(1, 2).union(Interval(2, 3)) == Interval(1, 3)

    assert Interval(-oo, 0).start == -oo
    assert Interval(-oo, 0).end == 0
예제 #14
0
def test_Contains():
    assert Contains(x, FiniteSet(0)) != false
    assert Contains(x, Interval(1, 1)) != false
    assert Contains(oo, Interval(-oo, oo)) == false
    assert Contains(-oo, Interval(-oo, oo)) == false