Пример #1
0
def test_r2b_1():
    ch = SList()
    ch.append(RNode(2))
    ch.append(RNode(3))
    rn = RNode(1, ch)
    res = rn.r2b()
    exp = Node(1, Node(2, Leaf(None), Node(3, Leaf(None), Leaf(None))),
               Leaf(None))
    assert res == exp
Пример #2
0
def test_r2b_2():
    rn5 = RNode(5)
    rn6 = RNode(6)
    rn3 = RNode(3, SList([rn5, rn6]))
    rn2 = RNode(2)
    rn4 = RNode(4)
    rn1 = RNode(1, SList([rn2, rn3, rn4]))
    res = rn1.r2b()
    exp = \
        Node(1,
             Node(2,
                  Leaf(None),
                  Node(3,
                       Node(5,
                            Leaf(None),
                            Node(6,
                                 Leaf(None),
                                 Leaf(None)
                                 )
                            ),
                       Node(4,
                            Leaf(None),
                            Leaf(None)
                            )
                       )
                  ),
             Leaf(None)
             )
    assert res == exp
Пример #3
0
def test_b2r_node_from_rt():
    bt = Node(
        1,
        Node(
            2, Leaf(None),
            Node(3, Node(5, Leaf(None), Node(6, Leaf(None), Leaf(None))),
                 Node(4, Leaf(None), Leaf(None)))), Leaf(None))
    rn5 = RNode(5)
    rn6 = RNode(6)
    rn3 = RNode(3, SList([rn5, rn6]))
    rn2 = RNode(2)
    rn4 = RNode(4)
    exp = RNode(1, SList([rn2, rn3, rn4]))
    res = RNode(bt)

    assert res == exp
Пример #4
0
def test_reduce():
    rt = RNode(15, [RNode(24), RNode(32, [RNode(56), RNode(63)]), RNode(41)])
    res = rt.reduce(operator.add, operator.mul)
    exp = 3503055
    assert res == exp
Пример #5
0
def test_map():
    rt = RNode(15, [RNode(24), RNode(32, [RNode(56), RNode(63)]), RNode(41)])
    res = rt.map(str)
    exp = RNode(
        "15",
        [RNode("24"),
         RNode("32", [RNode("56"), RNode("63")]),
         RNode("41")])
    assert res == exp
Пример #6
0
def test_b2r_leaf():
    bt = Leaf(1)
    res = RNode(bt)
    exp = RNode(1)
    assert res == exp
Пример #7
0
def test_racc():
    rt = RNode(15, [RNode(24), RNode(32, [RNode(56), RNode(63)]), RNode(41)])
    res = rt.racc(operator.add, 0)
    exp = RNode(0, [RNode(0), RNode(24, [RNode(0), RNode(56)]), RNode(56)])
    assert res == exp
Пример #8
0
def test_uacc():
    rt = RNode(15, [RNode(24), RNode(32, [RNode(56), RNode(63)]), RNode(41)])
    res = rt.uacc(operator.add, operator.mul)
    exp = RNode(
        3503055,
        [RNode(24), RNode(3560, [RNode(56), RNode(63)]),
         RNode(41)])
    assert res == exp
Пример #9
0
def test_b2r_leaf_none():
    bt = Leaf(None)
    with pytest.raises(ConstructorError):
        RNode(bt)