def test_add_on()-> None: x = SimplePrefixTree('sum') x.add('ab', 0.5, ['a', 'b']) x.add_on('abc', 0.2, ['a', 'b', 'c']) assert x.weight == 0.7 assert x.value == [] assert x.subtrees[0].value == ['a'] assert x.subtrees[0].weight == 0.7 assert x.subtrees[0].subtrees[0].value == ['a', 'b'] assert x.subtrees[0].subtrees[0].weight == 0.7 assert x.subtrees[0].subtrees[0].subtrees[0].value == 'ab' assert x.subtrees[0].subtrees[0].subtrees[0].weight == 0.5 assert x.subtrees[0].subtrees[0].subtrees[1].value == ['a', 'b', 'c'] assert x.subtrees[0].subtrees[0].subtrees[1].weight == 0.2 assert x.subtrees[0].subtrees[0].subtrees[1].subtrees[0].value == 'abc' assert x.subtrees[0].subtrees[0].subtrees[1].subtrees[0].weight == 0.2 y = SimplePrefixTree('sum') y.add('abc', 0.2, ['a', 'b', 'c']) y.add_on('ab', 0.5, ['a', 'b']) assert y.weight == 0.7 assert y.value == [] assert y.subtrees[0].value == ['a'] assert y.subtrees[0].weight == 0.7 assert y.subtrees[0].subtrees[0].value == ['a', 'b'] assert y.subtrees[0].subtrees[0].weight == 0.7 assert y.subtrees[0].subtrees[0].subtrees[0].value == 'ab' assert y.subtrees[0].subtrees[0].subtrees[0].weight == 0.5 assert y.subtrees[0].subtrees[0].subtrees[1].value == ['a', 'b', 'c'] assert y.subtrees[0].subtrees[0].subtrees[1].weight == 0.2 assert y.subtrees[0].subtrees[0].subtrees[1].subtrees[0].value == 'abc' assert y.subtrees[0].subtrees[0].subtrees[1].subtrees[0].weight == 0.2
def test_add()-> None: x = SimplePrefixTree('sum') x.add('ab', 0.5, ['a', 'b']) assert str(x) == \ "[] (0.5)\n ['a'] (0.5)\n ['a', 'b'] (0.5)\n ab (0.5)\n" y = SimplePrefixTree('sum') y.add('hello', 0.3, ['h','e','l','l','o']) assert str(y) == "[] (0.3)\n ['h'] (0.3)\n ['h', 'e'] (0.3)\n " + \ "['h', 'e', 'l'] (0.3)\n ['h', 'e', 'l', 'l'] (0.3)\n " + \ " ['h', 'e', 'l', 'l', 'o'] (0.3)\n hello (0.3)\n" x = SimplePrefixTree('average') x.add('ab', 0.5, ['a', 'b']) assert str(x) == \ "[] (0.5)\n ['a'] (0.5)\n ['a', 'b'] (0.5)\n ab (0.5)\n" y = SimplePrefixTree('average') y.add('hello', 0.3, ['h', 'e', 'l', 'l', 'o']) assert str(y) == "[] (0.3)\n ['h'] (0.3)\n ['h', 'e'] (0.3)\n " + \ "['h', 'e', 'l'] (0.3)\n ['h', 'e', 'l', 'l'] (0.3)\n " + \ " ['h', 'e', 'l', 'l', 'o'] (0.3)\n hello (0.3)\n"