Esempio n. 1
0
 def test_str__has_addsub(self):
     node = MulDiv([Value(3), AddSub([Value(4), Value(6)], [])],
                   [Value(5), AddSub([Value(7), Value(8)], [])])
     assert str(node) == "3*(4+6)/5/(7+8)"
Esempio n. 2
0
 def test_eval(self):
     node = Value(10)
     assert node.eval() == 10
Esempio n. 3
0
 def test_str(self):
     node = MulDiv([Value(3), Value(4)], [Value(5), Value(7)])
     assert str(node) == "3*4/5/7"
Esempio n. 4
0
 def test_eval(self):
     node = AddSub([Value(1), Value(2)], [Value(5), Value(9)])
     assert node.eval() == -11
Esempio n. 5
0
 def test_eq__noteq(self):
     node1 = AddSub([Value(3)], [Value(4)])
     node2 = AddSub([Value(4)], [Value(4)])
     assert not (node1 == node2)
Esempio n. 6
0
 def test_str(self):
     node = AddSub([Value(3), Value(4)], [Value(5), Value(7)])
     assert str(node) == "3+4-5-7"
Esempio n. 7
0
 def test_str__has_muldiv(self):
     node = AddSub([Value(3), MulDiv([Value(4), Value(6)], [])],
                   [Value(5), MulDiv([Value(7), Value(8)], [])])
     assert str(node) == "3+4*6-5-7*8"
Esempio n. 8
0
def wrapvalue(args):
    for x in args:
        if isinstance(x, float) or isinstance(x, int):
            yield Value(x)
        else:
            yield x
Esempio n. 9
0
 def test_str(self):
     node = Value(3)
     assert str(node) == "3"
Esempio n. 10
0
 def test_hash(self):
     node1 = Value(3)
     assert Value(3) in set([node1])
     assert Value(4) not in set([node1])
Esempio n. 11
0
def test_single_exprs__1sub1_2_3():
    terms = [Value(2), Value(3), sub(1, 1)]
    # 0となる項を含むので乗算のみ生成
    assert set(single_exprs(terms)) == set(
        [MulDiv([Value(2), Value(3), sub(1, 1)], [])])
Esempio n. 12
0
 def test_eq__not_equal(self):
     node1 = Value(3)
     node2 = Value(4)
     assert not (node1 == node2)
Esempio n. 13
0
def test_build_exprs__single_atom() -> None:
    actual = list(build_exprs([3]))
    assert actual == [Value(3)]
Esempio n. 14
0
 def test_eq(self):
     node1 = Value(3)
     node2 = Value(3)
     assert node1 == node2
Esempio n. 15
0
 def test_eq__noteq(self):
     node1 = MulDiv([Value(3)], [Value(4)])
     node2 = MulDiv([Value(4)], [Value(4)])
     assert not (node1 == node2)
Esempio n. 16
0
 def test_eval(self):
     node = MulDiv([Value(6), Value(10)], [Value(5), Value(3)])
     assert node.eval() == 4