예제 #1
0
def test_naturals():
    N = S.Naturals
    assert 5 in N
    assert -5 not in N
    assert 5.5 not in N
    ni = iter(N)
    a, b, c, d = next(ni), next(ni), next(ni), next(ni)
    assert (a, b, c, d) == (1, 2, 3, 4)
    assert isinstance(a, Basic)

    assert N.intersection(Interval(-5, 5)) == Range(1, 6)
    assert N.intersection(Interval(-5, 5, True, True)) == Range(1, 5)
    assert N.intersection(Set(x)) == Intersection(N, Set(x), evaluate=False)

    assert N.boundary == N

    assert N.inf == 1
    assert N.sup == oo
예제 #2
0
def test_range_interval_intersection():
    # Intersection with intervals
    assert FiniteSet(*Range(0, 10, 1).intersection(Interval(2, 6))) == \
        FiniteSet(2, 3, 4, 5, 6)

    # Open Intervals are removed
    assert (FiniteSet(*Range(0, 10, 1).intersection(Interval(
        2, 6, True, True))) == FiniteSet(3, 4, 5))

    # Try this with large steps
    assert (FiniteSet(
        *Range(0, 100, 10).intersection(Interval(15, 55))) == FiniteSet(
            20, 30, 40, 50))

    # Going backwards
    assert (FiniteSet(
        *Range(10, -9, -3).intersection(Interval(-5, 6))) == FiniteSet(
            -5, -2, 1, 4))
    assert (FiniteSet(
        *Range(10, -9, -3).intersection(Interval(-5, 6, True))) == FiniteSet(
            -2, 1, 4))
예제 #3
0
def test_integers():
    Z = S.Integers
    assert 5 in Z
    assert -5 in Z
    assert 5.5 not in Z
    zi = iter(Z)
    a, b, c, d = next(zi), next(zi), next(zi), next(zi)
    assert (a, b, c, d) == (0, 1, -1, 2)
    assert isinstance(a, Basic)

    assert Z.intersection(Interval(-5, 5)) == Range(-5, 6)
    assert Z.intersection(Interval(-5, 5, True, True)) == Range(-4, 5)
    assert Z.intersection(Set(x)) == Intersection(Z, Set(x), evaluate=False)

    assert Z.inf == -oo
    assert Z.sup == oo

    assert Z.boundary == Z

    assert imageset(Lambda((x, y), x * y),
                    Z) == ImageSet(Lambda((x, y), x * y), Z)
예제 #4
0
def test_fun():
    assert (FiniteSet(
        *ImageSet(Lambda(x, sin(pi * x / 4)), Range(-10, 11))) == FiniteSet(
            -1, -sqrt(2) / 2, 0,
            sqrt(2) / 2, 1))
예제 #5
0
def test_Range():
    assert Range(5) == Range(0, 5) == Range(0, 5, 1)

    r = Range(10, 20, 2)
    assert 12 in r
    assert 8 not in r
    assert 11 not in r
    assert 30 not in r

    assert list(Range(0, 5)) == list(range(5))
    assert list(Range(5, 0, -1)) == list(range(1, 6))

    assert Range(0, 10, -1) == S.EmptySet

    assert Range(5, 15).sup == 14
    assert Range(5, 15).inf == 5
    assert Range(15, 5, -1).sup == 15
    assert Range(15, 5, -1).inf == 6
    assert Range(10, 67, 10).sup == 60
    assert Range(60, 7, -10).inf == 10

    assert len(Range(10, 38, 10)) == 3
    assert Range(0, 0, 5) == S.EmptySet

    assert Range(1, 1) == S.EmptySet
    pytest.raises(ValueError, lambda: Range(0, oo, oo))
    pytest.raises(ValueError, lambda: Range(0, pi, 1))

    assert 5 in Range(0, oo, 5)
    assert -5 in Range(-oo, 0, 5)

    assert Range(0, oo)
    assert Range(-oo, 0)
    assert Range(0, -oo, -1)
    assert Range(1, oo)
    assert Range(-oo, oo)

    assert Range(0, oo, 2)._last_element is oo
    assert Range(-oo, 1, 1)._last_element is Integer(0)

    it = iter(Range(-oo, 0, 2))
    assert (next(it), next(it)) == (-2, -4)

    assert Range(-1, 10, 1).intersection(S.Integers) == Range(-1, 10, 1)
    assert Range(-1, 10, 1).intersection(S.Naturals) == Range(1, 10, 1)
    assert (Range(-1, 10,
                  1).intersection(Set(x)) == Intersection(Range(-1, 10, 1),
                                                          Set(x),
                                                          evaluate=False))

    assert Range(1, 10, 1)._ith_element(5) == 6  # the index starts from zero
    assert Range(1, 10, 1)._last_element == 9

    assert Range(1, 10, 1).boundary == Range(1, 10, 1)

    assert Range(range(10)) == Range(10)
    assert Range(range(1, 10)) == Range(1, 10)
    assert Range(range(1, 10, 2)) == Range(1, 10, 2)
    assert Range(range(1000000000000)) == Range(1000000000000)
예제 #6
0
def test_image_is_ImageSet():
    assert isinstance(imageset(x, sqrt(sin(x)), Range(5)), ImageSet)
예제 #7
0
def test_Range():
    assert sympify(range(10)) == Range(10)
    assert sympify(range(10), strict=True) == Range(10)
예제 #8
0
def test_Range():
    assert sympify(range(10)) == Range(10)
    assert _sympify(range(10)) == Range(10)