예제 #1
0
def test_imageset_intersection_real():
    assert (imageset(Lambda(n, n + (n - 1) * (n + 1) * I),
                     S.Integers).intersection(S.Reals) == FiniteSet(-1, 1))

    s = ImageSet(
        Lambda(n, -I * (I * (2 * pi * n - pi / 4) + log(abs(sqrt(-I))))),
        S.Integers)
    assert s.intersection(S.Reals) == imageset(Lambda(n, 2 * n * pi - pi / 4),
                                               S.Integers)
예제 #2
0
def test_ImageSet():
    squares = ImageSet(Lambda(x, x**2), S.Naturals)
    assert 4 in squares
    assert 5 not in squares
    assert FiniteSet(*range(10)).intersection(squares) == FiniteSet(1, 4, 9)

    assert 16 not in squares.intersection(Interval(0, 10))

    si = iter(squares)
    a, b, c, d = next(si), next(si), next(si), next(si)
    assert (a, b, c, d) == (1, 4, 9, 16)

    harmonics = ImageSet(Lambda(x, 1 / x), S.Naturals)
    assert Rational(1, 5) in harmonics
    assert Rational(.25) in harmonics
    assert 0.25 not in harmonics
    assert Rational(.3) not in harmonics

    assert harmonics.is_iterable