def test_ior_branchingTree(self):
     t2 = "cba"
     t3 = "cde"
     tree2 = tokentree.TokenTrie(t2)
     tree2 |= tokentree.TokenTrie(t3)
     self.assertTrue(t2 in tree2, "Testing t2: <{}>".format(t2))
     self.assertTrue(t3 in tree2, "Testing t3: <{}>".format(t3))
 def test_ior_empty(self):
     t2 = "cba"
     t3 = "cde"
     tree1 = tokentree.TokenTrie()
     tree1 |= tokentree.TokenTrie(t2)
     tree1 |= tokentree.TokenTrie(t3)
     self.assertTrue(t2 in tree1, "Testing t2: <{}>".format(t2))
     self.assertTrue(t3 in tree1, "Testing t3: <{}>".format(t3))
 def test_ior_substringTreeDoesNotChangeOther(self):
     substrLen = 3
     tree = tokentree.TokenTrie(self.alpha6)
     tree2 = tokentree.TokenTrie(self.alpha6[:substrLen])
     tree |= tree2
     self.assertFalse(self.alpha6 in tree2)
     self.assertTrue(self.alpha6[:substrLen] in tree2)
     self.assertFalse(self.alpha6[:substrLen + 1] in tree2)
     self.assertFalse(self.alpha6[:substrLen - 1] in tree2)
 def test_iadd_branchingTreeAppended(self):
     t1 = "abc"
     t2 = "cba"
     t3 = "cde"
     tree1 = tokentree.TokenTrie(t1)
     tree2 = tokentree.TokenTrie(t2)
     tree2 |= tokentree.TokenTrie(t3)  # Union merges trees
     tree1 += tree2  # Append concatenates token sequences
     token1 = t1 + t2
     token2 = t1 + t3
     self.assertTrue(token1 in tree1, "Testing <{}>".format(token1))
     self.assertTrue(token2 in tree1, "Testing <{}>".format(token2))
     self.assertFalse(t1 in tree1, "Testing t1<{}>".format(t1))  # t1  should no longer be a valid token
 def test_ior_substring(self):
     substrLen = 4
     tree = tokentree.TokenTrie(self.alpha6)
     tree |= self.alpha6[:substrLen]
     self.assertTrue(self.alpha6 in tree)
     self.assertTrue(self.alpha6[:substrLen] in tree)
     self.assertFalse(self.alpha6[:substrLen + 1] in tree)
     self.assertFalse(self.alpha6[:substrLen - 1] in tree)
    def test_insert_branchingTree_self(self):
        ts = ["abc", "cba", "cde"]
        tree = tokentree.TokenTrie()
        for t in ts:
            tree.insert(t)

        for t in ts:
            self.assertTrue(t in tree, t)
    def test_iadd_branchingTree_self(self):
        ts = ["abc", "cba", "cde"]
        tree = tokentree.TokenTrie()
        for t in ts:
            tree.insert(t)
        tree += tree

        for t1 in ts:
            self.assertFalse(t in tree, t)
            for t2 in ts:
                token = ''.join([t1, t2])
                self.assertTrue(token in tree, token)
 def test_len_emptyTree(self):
     tree = tokentree.TokenTrie()
     self.assertEqual(1, len(tree))
 def test_contains_emptyToken(self):
     tree = tokentree.TokenTrie("")
     self.assertTrue("" in tree)
 def test_contains_alpha6_tooShort(self):
     tree = tokentree.TokenTrie(self.alpha6)
     self.assertFalse(self.alpha6[:-1] in tree)
 def test_contains_alpha6_tooLong(self):
     tree = tokentree.TokenTrie(self.alpha6)
     self.assertFalse(self.alpha6 + "a" in tree)
 def test_contains_alpha6(self):
     tree = tokentree.TokenTrie(self.alpha6)
     self.assertTrue(self.alpha6 in tree)
 def test_len_alpha6(self):
     tree = tokentree.TokenTrie(self.alpha6)
     self.assertEqual(1 + len(self.alpha6), len(tree))
 def test_add_self(self):
     tree = tokentree.TokenTrie(self.alpha6)
     tree += tree
     self.assertFalse(self.alpha6 in tree)
     self.assertTrue(self.alpha6 * 2 in tree)
 def test_add_substring(self):
     substrLen = 4
     tree = tokentree.TokenTrie(self.alpha6)
     tree.insert(self.alpha6[:substrLen])
     self.assertTrue(self.alpha6 in tree)
     self.assertTrue(self.alpha6[:substrLen] in tree)