コード例 #1
0
def test_FiniteReal_and():
    assert FR(1) & FR(2) is EmptySet
    assert FR(1, 2) & FR(2) == FR(2)
    assert FR(1, 2) & FN('2') is EmptySet
    assert FR(1, 2) & FN('2', b=True) is EmptySet
    assert FR(1, 2) & Interval(0, 1) == FR(1)
    assert FR(1, 2) & Interval.Ropen(0, 1) is EmptySet
    assert FR(0, 2) & Interval(0, 1) == FR(0)
    assert FR(0, 2) & Interval.Lopen(0, 1) is EmptySet
    assert FR(-1, 1) & Interval(-10, 10) == FR(-1, 1)
    assert FR(-1, 11) & Interval(-10, 10) == FR(-1)
コード例 #2
0
def test_FiniteReal_or():
    assert FR(1) | FR(2) == FR(1, 2)
    assert FR(1, 2) | FR(2) == FR(1, 2)
    assert FR(1, 2) | FN('2') == Union(FR(1, 2), FN('2'))
    assert FR(1, 2) | Interval(0, 1) == Union(Interval(0, 1), FR(2))
    assert FR(1, 2) | Interval.Ropen(0, 1) == Union(Interval(0, 1), FR(2))
    assert FR(0, 1, 2) | Interval.open(0, 1) == Union(Interval(0, 1), FR(2))
    assert FR(0, 2) | Interval.Lopen(0, 1) == Union(Interval(0, 1), FR(2))
    assert FR(0, 2) | Interval.Lopen(2.5, 10) == Union(Interval.Lopen(2.5, 10),
                                                       FR(0, 2))
    assert FR(-1, 1) | Interval(-10, 10) == Interval(-10, 10)
    assert FR(-1, 11) | Interval(-10, 10) == Union(Interval(-10, 10), FR(11))
コード例 #3
0
def test_Union_and():
    x = (Interval(0, 1) | FR(1)) & (FN('a'))
    assert x is EmptySet
    x = (FN('x', b=True) | Interval(0, 1) | FR(1)) & (FN('a'))
    assert x == FN('a')
    x = (FN('x') | Interval(0, 1) | FR(1)) & (FN('a'))
    assert x is EmptySet
    x = (FN('x') | Interval.open(0, 1) | FR(7)) & (
        (FN('x')) | FR(.5) | Interval(.75, 1.2))
    assert x == Union(FR(.5), FN('x'), Interval.Ropen(.75, 1))
    x = (FN('x') | Interval.open(0, 1) | FR(7)) & (FR(3))
    assert x is EmptySet
    x = (Interval.Lopen(-5, inf)) & (Interval(0, inf) | FR(inf))
    assert x == Interval(0, inf)
    x = (FR(1, 2) | Interval.Ropen(-inf, 0)) & Interval(0, inf)
    assert x == FR(1, 2)
    x = (FR(1, 12) | Interval(0, 5) | Interval(7, 10)) & Interval(4, 12)
    assert x == Union(Interval(4, 5), Interval(7, 10), FR(12))
コード例 #4
0
def test_Union_or():
    x = Interval(0, 1) | Interval(5, 6) | Interval(10, 11)
    assert x == Union(Interval(0, 1), Interval(5, 6), Interval(10, 11))
    x = Interval.Ropen(0, 1) | Interval.Lopen(1, 2) | Interval(10, 11)
    assert x == Union(Interval.Ropen(0, 1), Interval.Lopen(1, 2),
                      Interval(10, 11))
    x = Interval.Ropen(0, 1) | Interval.Lopen(1, 2) | Interval(10, 11) | FR(1)
    assert x == Union(Interval(0, 2), Interval(10, 11))
    x = (Interval.Ropen(0, 1) | Interval.Lopen(1, 2)) | (Interval(10, 11)
                                                         | FR(1))
    assert x == Union(Interval(0, 2), Interval(10, 11))
    x = FR(1) | ((Interval.Ropen(0,1) | Interval.Lopen(1,2) | FR(10,13)) \
            | (Interval.Lopen(10,11) | FR(7)))
    assert x == Union(Interval(0, 2), Interval(10, 11), FR(13, 7))
    assert 2 in x
    assert 13 in x
    x = FN('f') | (FR(1) | FN('g', b=True))
    assert x == Union(FR(1), FN('g', b=True))
    assert 'w' in x
    assert 'g' not in x
コード例 #5
0
def test_FiniteNominal_in():
    with pytest.raises(Exception):
        FN()
    assert 'a' in FN('a')
    assert 'b' not in FN('a')
    assert 'b' in FN('a', b=True)
    assert 'a' not in FN('a', b=True)
    assert 'a' in FN(b=True)
コード例 #6
0
def test_FiniteReal_in():
    with pytest.raises(Exception):
        FR()
    assert 1 in FN(1, 2)
    assert 2 not in FN(1)
コード例 #7
0
def test_FiniteNominal_or():
    # EmptySet
    assert FN('a', 'b') | EmptySet == FN('a', 'b')
    # Nominal
    assert FN('a', 'b') | FN('c') == FN('a', 'b', 'c')
    assert FN('a', 'b', 'c') | FN('a') == FN('a', 'b', 'c')
    assert FN('a', 'b', 'c') | FN(b=True) == FN(b=True)
    assert FN('a', 'b', 'c', b=True) | FN('a') == FN('b', 'c', b=True)
    assert FN('a', 'b', 'c', b=True) | FN('d', 'a', 'b') == FN('c', b=True)
    assert FN('a', 'b', 'c', b=True) | FN('d') == FN('a', 'b', 'c', b=True)
    assert FN('a', 'b', 'c') | FN('a', b=True) == FN(b=True)
    assert FN('a', 'b', 'c') | FN('d', 'a', 'b', b=True) == FN('d', b=True)
    assert FN('a', 'b', 'c') | FN('d', b=True) == FN('d', b=True)
    assert FN('a', 'b', 'c', b=True) | FN('d', b=True) == FN(b=True)
    assert FN('a', 'b', 'c', b=True) | FN('a', b=True) == FN('a', b=True)
    assert FN(b=True) | FN(b=True) == FN(b=True)
    # FiniteReal
    assert FN('a') | FR(1) == Union(FN('a'), FR(1))
    assert FN('a', b=True) | FR(1) == Union(FR(1), FN('a', b=True))
    # Interval
    assert FN('a') | Interval(0, 1) == Union(FN('a'), Interval(0, 1))
コード例 #8
0
def test_FiniteNominal_and():
    assert FN('a', 'b') & EmptySet is EmptySet
    assert FN('a', 'b') & FN('c') is EmptySet
    assert FN('a', 'b', 'c') & FN('a') == FN('a')
    assert FN('a', 'b', 'c') & FN(b=True) == FN('a', 'b', 'c')
    assert FN('a', 'b', 'c') & FN('a') == FN('a')
    assert FN('a', 'b', 'c', b=True) & FN('a') is EmptySet
    assert FN('a', 'b', 'c', b=True) & FN('d', 'a', 'b') == FN('d')
    assert FN('a', 'b', 'c', b=True) & FN('d') == FN('d')
    assert FN('a', 'b', 'c') & FN('a', b=True) == FN('b', 'c')
    assert FN('a', 'b', 'c') & FN('d', 'a', 'b', b=True) == FN('c')
    assert FN('a', 'b', 'c') & FN('d', b=True) == FN('a', 'b', 'c')
    assert FN('a', 'b', 'c', b=True) & FN('d', b=True) == FN('a',
                                                             'b',
                                                             'c',
                                                             'd',
                                                             b=True)
    assert FN('a', 'b', 'c', b=True) & FN('a', b=True) == FN('a',
                                                             'b',
                                                             'c',
                                                             b=True)
    assert FN(b=True) & FN(b=True) == FN(b=True)
    # FiniteReal
    assert FN('a') & FR(1) is EmptySet
    assert FN('a', b=True) & FR(1) is EmptySet
    # Interval
    assert FN('a') & Interval(0, 1) is EmptySet
コード例 #9
0
def test_FiniteNominal_invert():
    assert ~(FN('a')) == FN('a', b=True)
    assert ~(FN('a', b=True)) == FN('a')
    assert ~FN(b=True) == EmptySet