| OLD | NEW |
| (Empty) | |
| 1 var trie; |
| 2 TestRunner.addResult(`Verify "trie" functionality.`); |
| 3 |
| 4 TestRunner.runTests([ |
| 5 function testAddWord() |
| 6 { |
| 7 var trie = new Common.Trie(); |
| 8 addWord(trie, "hello"); |
| 9 hasWord(trie, "he"); |
| 10 hasWord(trie, "hello"); |
| 11 hasWord(trie, "helloo"); |
| 12 }, |
| 13 |
| 14 function testAddWords() |
| 15 { |
| 16 var trie = new Common.Trie(); |
| 17 addWord(trie, "foo"); |
| 18 addWord(trie, "bar"); |
| 19 addWord(trie, "bazz"); |
| 20 hasWord(trie, "f"); |
| 21 hasWord(trie, "ba"); |
| 22 hasWord(trie, "baz"); |
| 23 hasWord(trie, "bar"); |
| 24 hasWord(trie, "bazz"); |
| 25 }, |
| 26 |
| 27 function testRemoveWord() |
| 28 { |
| 29 var trie = new Common.Trie(); |
| 30 addWord(trie, "foo"); |
| 31 removeWord(trie, "f"); |
| 32 removeWord(trie, "fo"); |
| 33 removeWord(trie, "fooo"); |
| 34 hasWord(trie, "foo"); |
| 35 removeWord(trie, "foo"); |
| 36 hasWord(trie, "foo"); |
| 37 }, |
| 38 |
| 39 function testAddAfterRemove() |
| 40 { |
| 41 var trie = new Common.Trie(); |
| 42 addWord(trie, "foo"); |
| 43 removeWord(trie, "foo"); |
| 44 addWord(trie, "bar"); |
| 45 hasWord(trie, "foo"); |
| 46 hasWord(trie, "bar"); |
| 47 }, |
| 48 |
| 49 function testWordOverwrite() |
| 50 { |
| 51 var trie = new Common.Trie(); |
| 52 addWord(trie, "foo"); |
| 53 addWord(trie, "foo"); |
| 54 removeWord(trie, "foo"); |
| 55 hasWord(trie, "foo"); |
| 56 }, |
| 57 |
| 58 function testRemoveNonExisting() |
| 59 { |
| 60 var trie = new Common.Trie(); |
| 61 addWord(trie, "foo"); |
| 62 removeWord(trie, "bar"); |
| 63 removeWord(trie, "baz"); |
| 64 hasWord(trie, "foo"); |
| 65 }, |
| 66 |
| 67 function testEmptyWord() |
| 68 { |
| 69 var trie = new Common.Trie(); |
| 70 addWord(trie, ""); |
| 71 hasWord(trie, ""); |
| 72 removeWord(trie, ""); |
| 73 hasWord(trie, ""); |
| 74 }, |
| 75 |
| 76 function testAllWords() |
| 77 { |
| 78 var trie = new Common.Trie(); |
| 79 addWord(trie, "foo"); |
| 80 addWord(trie, "bar"); |
| 81 addWord(trie, "bazzz"); |
| 82 words(trie); |
| 83 words(trie, "f"); |
| 84 words(trie, "g"); |
| 85 words(trie, "b"); |
| 86 words(trie, "ba"); |
| 87 words(trie, "bar"); |
| 88 words(trie, "barz"); |
| 89 words(trie, "baz"); |
| 90 }, |
| 91 |
| 92 function testOneCharWords() |
| 93 { |
| 94 var trie = new Common.Trie(); |
| 95 addWord(trie, "a"); |
| 96 addWord(trie, "b"); |
| 97 addWord(trie, "c"); |
| 98 words(trie); |
| 99 }, |
| 100 |
| 101 function testChainWords() |
| 102 { |
| 103 var trie = new Common.Trie(); |
| 104 addWord(trie, "f"); |
| 105 addWord(trie, "fo"); |
| 106 addWord(trie, "foo"); |
| 107 addWord(trie, "foo"); |
| 108 words(trie); |
| 109 }, |
| 110 |
| 111 function testClearTrie() |
| 112 { |
| 113 var trie = new Common.Trie(); |
| 114 addWord(trie, "foo"); |
| 115 addWord(trie, "bar"); |
| 116 words(trie); |
| 117 clear(trie); |
| 118 words(trie); |
| 119 }, |
| 120 |
| 121 function testLongestPrefix() |
| 122 { |
| 123 var trie = new Common.Trie(); |
| 124 addWord(trie, "fo"); |
| 125 addWord(trie, "food"); |
| 126 longestPrefix(trie, "fear", false); |
| 127 longestPrefix(trie, "fear", true); |
| 128 longestPrefix(trie, "football", false); |
| 129 longestPrefix(trie, "football", true); |
| 130 longestPrefix(trie, "bar", false); |
| 131 longestPrefix(trie, "bar", true); |
| 132 longestPrefix(trie, "foo", false); |
| 133 longestPrefix(trie, "foo", true); |
| 134 }, |
| 135 ]); |
| 136 |
| 137 function hasWord(trie, word) |
| 138 { |
| 139 TestRunner.addResult(`trie.has("${word}") = ${trie.has(word)}`); |
| 140 } |
| 141 |
| 142 function addWord(trie, word) |
| 143 { |
| 144 TestRunner.addResult(`trie.add("${word}")`); |
| 145 trie.add(word); |
| 146 } |
| 147 |
| 148 function removeWord(trie, word) |
| 149 { |
| 150 TestRunner.addResult(`trie.remove("${word}") = ${trie.remove(word)}`); |
| 151 } |
| 152 |
| 153 function words(trie, prefix) |
| 154 { |
| 155 var title = prefix ? `trie.words("${prefix}")` : `trie.words()`; |
| 156 var words = trie.words(prefix); |
| 157 var text = words.length ? `[\n ${words.join(",\n ")}\n]` : "[]"; |
| 158 TestRunner.addResult(title + " = " + text); |
| 159 } |
| 160 |
| 161 function clear(trie) |
| 162 { |
| 163 trie.clear(); |
| 164 TestRunner.addResult("trie.clear()"); |
| 165 } |
| 166 |
| 167 function longestPrefix(trie, word, fullWordOnly) |
| 168 { |
| 169 TestRunner.addResult(`trie.longestPrefix("${word}", ${fullWordOnly}) = "${tr
ie.longestPrefix(word, fullWordOnly)}"`); |
| 170 } |
| OLD | NEW |