Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(601)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/inspector-unit/trie.html

Issue 2385093002: DevTools: introduce Trie data structure (Closed)
Patch Set: rebaseline Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/inspector-unit/trie.html
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-unit/trie.html b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/trie.html
new file mode 100644
index 0000000000000000000000000000000000000000..c0835c4c46fe42d08f10180642b32662262b699b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/trie.html
@@ -0,0 +1,173 @@
+<html>
+<head>
+<base href="/inspector-debug/"></base>
+<script src="/inspector-debug/Runtime.js"></script>
+<script src="/inspector-unit/inspector-unit-test.js"></script>
+<script>
+function test() {
+ var trie;
+
+ UnitTest.addResult("\nTest add:");
dgozman 2016/10/03 20:32:57 Useless one.
lushnikov 2016/10/03 22:56:22 Done.
+
+ UnitTest.runTests([
+ function testAddWord()
+ {
+ var trie = new Trie();
+ addWord(trie, "hello");
+ hasWord(trie, "he");
+ hasWord(trie, "hello");
+ hasWord(trie, "helloo");
+ },
+
+ function testAddWords()
+ {
+ var trie = new Trie();
+ addWord(trie, "foo");
+ addWord(trie, "bar");
+ addWord(trie, "bazz");
+ hasWord(trie, "f");
+ hasWord(trie, "ba");
+ hasWord(trie, "baz");
+ hasWord(trie, "bar");
+ hasWord(trie, "bazz");
+ },
+
+ function testRemoveWord()
+ {
+ var trie = new Trie();
+ addWord(trie, "foo");
+ removeWord(trie, "f");
+ removeWord(trie, "fo");
+ removeWord(trie, "fooo");
+ hasWord(trie, "foo");
+ removeWord(trie, "foo");
+ hasWord(trie, "foo");
+ },
+
+ function testWordOverwrite()
+ {
+ var trie = new Trie();
+ addWord(trie, "foo");
+ addWord(trie, "foo");
+ removeWord(trie, "foo");
+ hasWord(trie, "foo");
+ },
+
+ function testRemoveNonExisting()
+ {
+ var trie = new Trie();
+ addWord(trie, "foo");
+ removeWord(trie, "bar");
+ removeWord(trie, "baz");
+ hasWord(trie, "foo");
+ },
+
+ function testEmptyWord()
+ {
+ var trie = new Trie();
+ addWord(trie, "");
+ hasWord(trie, "");
+ removeWord(trie, "");
+ hasWord(trie, "");
+ },
+
+ function testAllWords()
+ {
+ var trie = new Trie();
+ addWord(trie, "foo");
+ addWord(trie, "bar");
+ addWord(trie, "bazzz");
+ words(trie);
+ words(trie, "f");
+ words(trie, "g");
+ words(trie, "b");
+ words(trie, "ba");
+ words(trie, "bar");
+ words(trie, "barz");
+ words(trie, "baz");
+ },
+
+ function testOneCharWords()
+ {
+ var trie = new Trie();
+ addWord(trie, "a");
+ addWord(trie, "b");
+ addWord(trie, "c");
+ words(trie);
+ },
+
+ function testChainWords()
+ {
+ var trie = new Trie();
+ addWord(trie, "f");
+ addWord(trie, "fo");
+ addWord(trie, "foo");
+ addWord(trie, "foo");
+ words(trie);
+ },
+
+ function testClearTrie()
+ {
+ var trie = new Trie();
+ addWord(trie, "foo");
+ addWord(trie, "bar");
+ words(trie);
+ clear(trie);
+ words(trie);
+ },
+
+ function testLongestPrefix()
+ {
+ var trie = new Trie();
+ addWord(trie, "fo");
+ addWord(trie, "food");
+ longestPrefix(trie, "fear", false);
+ longestPrefix(trie, "fear", true);
+ longestPrefix(trie, "football", false);
+ longestPrefix(trie, "football", true);
+ longestPrefix(trie, "bar", false);
+ longestPrefix(trie, "bar", true);
+ },
+ ]);
+
+ function hasWord(trie, word)
+ {
+ UnitTest.addResult(`trie.has("${word}") = ${trie.has(word)}`);
+ }
+
+ function addWord(trie, word)
+ {
+ UnitTest.addResult(`trie.add("${word}")`);
+ trie.add(word);
+ }
+
+ function removeWord(trie, word)
+ {
+ UnitTest.addResult(`trie.remove("${word}") = ${trie.remove(word)}`);
+ }
+
+ function words(trie, prefix)
+ {
+ var title = prefix ? `trie.words("${prefix}")` : `trie.words()`;
+ var words = trie.words(prefix);
+ var text = words.length ? `[\n ${words.join(",\n ")}\n]` : "[]";
+ UnitTest.addResult(title + " = " + text);
+ }
+
+ function clear(trie)
+ {
+ trie.clear();
+ UnitTest.addResult("trie.clear()");
+ }
+
+ function longestPrefix(trie, word, fullWordOnly)
+ {
+ UnitTest.addResult(`trie.longestPrefix("${word}", ${fullWordOnly}) = "${trie.longestPrefix(word, fullWordOnly)}"`);
+ }
+}
+</script>
+</head>
+<body>
+Verify "trie" functionality.
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698