def testLabel(self): """Tests a single label passes unchanged.""" # 'a' => 'a' node1 = ( 'a', [ None ] ) source = [ node1 ] self.assertEqual(make_dafsa.join_labels(source), source)
def testCompositeLabels(self): """Tests a sequence of multi character labels can be joined.""" # 'ab' -> 'cd' => 'abcd' node2 = ( 'cd', [ None ] ) node1 = ( 'ab', [ node2 ] ) source1 = [ node1 ] node3 = ( 'abcd', [ None ] ) source2 = [ node3 ] self.assertEqual(make_dafsa.join_labels(source1), source2)
def testLabels(self): """Tests a sequence of labels can be joined.""" # 'a' -> 'b' => 'ab' node2 = ( 'b', [ None ] ) node1 = ( 'a', [ node2 ] ) source1 = [ node1 ] node3 = ( 'ab', [ None ] ) source2 = [ node3 ] self.assertEqual(make_dafsa.join_labels(source1), source2)
def testInnerTerminator(self): """Tests a sequence with an inner terminator passes unchanged.""" # 'a' -> 'b' 'a' -> 'b' # \ => \ # {sink} {sink} node2 = ( 'b', [ None ] ) node1 = ( 'a', [ node2, None ] ) source = [ node1 ] self.assertEqual(make_dafsa.join_labels(source), source)
def testReverseAtomicTrie(self): """Tests a reverse trie formed DAFSA with atomic labels passes unchanged.""" # 'a' 'a' # \ \ # 'c' => 'c' # / / # 'b' 'b' node3 = ( 'c', [ None ] ) node2 = ( 'b', [ node3 ] ) node1 = ( 'a', [ node3 ] ) source = [ node1, node2 ] self.assertEqual(make_dafsa.join_labels(source), source)
def testReverseChainedTrie(self): """Tests a reverse trie formed DAFSA with chained labels can be joined.""" # 'a' -> 'b' 'ab' # \ \ # 'e' -> 'f' => 'ef' # / / # 'c' -> 'd' 'cd' node6 = ( 'f', [ None ] ) node5 = ( 'e', [ node6 ] ) node4 = ( 'd', [ node5 ] ) node3 = ( 'c', [ node4 ] ) node2 = ( 'b', [ node5 ] ) node1 = ( 'a', [ node2 ] ) source1 = [ node1, node3 ] node9 = ( 'ef', [ None ] ) node8 = ( 'cd', [ node9 ] ) node7 = ( 'ab', [ node9 ] ) source2 = [ node7, node8 ] self.assertEqual(make_dafsa.join_labels(source1), source2)