GUI: trie utility operations, and test code.
Change-Id: I7f41d84b880a8e2075cf1c983be9a4a2def01856
diff --git a/web/gui/src/main/webapp/_sdh/trie-test.js b/web/gui/src/main/webapp/_sdh/trie-test.js
new file mode 100644
index 0000000..2c8716c
--- /dev/null
+++ b/web/gui/src/main/webapp/_sdh/trie-test.js
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Test code illustrating use of trie functions
+ */
+
+(function () {
+ 'use strict';
+
+ // injected refs
+ var $log, fs;
+
+ // internal state
+ var out,
+ trie = {},
+ counter = 5000;
+
+ function write(string) {
+ out.append('div').text(string);
+ }
+
+ function lookup(word) {
+ var result = fs.trieLookup(trie, word),
+ f = fs.isF(result),
+ show = f ? '{function}' : result;
+
+
+ write('------> ' + word + ' ==> ' + show);
+
+ f && f();
+ }
+
+ function add(word, data) {
+ var result = fs.addToTrie(trie, word, data);
+ write(' ADD> ' + word + ' [' + data + '] ==> ' + result);
+ }
+
+ function remove(word) {
+ var result = fs.removeFromTrie(trie, word);
+ write('REMOVE> ' + word + ' ==> ' + result);
+ }
+
+ function func1() {
+ counter++;
+ write('** function call ** ' + counter);
+ }
+
+ function func2() {
+ counter += 11;
+ write('** alternate call ** ' + counter);
+ }
+
+ function runTests() {
+ lookup('cat');
+
+ add('cat', 101);
+
+ lookup('ca');
+ lookup('cat');
+ lookup('cats');
+
+ add('cab', 103);
+ add('cog', 105);
+
+ lookup('cut');
+ lookup('cab');
+
+ remove('cab');
+
+ lookup('cab');
+ lookup('cat');
+
+ add('fun', func1);
+
+ lookup('fun');
+ lookup('fun');
+ lookup('fun');
+ lookup('cat');
+ lookup('fun');
+
+ add('fun', func2);
+
+ lookup('fun');
+ lookup('fun');
+ lookup('fun');
+
+ remove('fun');
+
+ lookup('fun');
+ }
+
+ angular.module('trie', ['onosUtil'])
+ .controller('OvTrieTest', ['$log', 'FnService',
+
+ function (_$log_, _fs_) {
+ $log = _$log_;
+ fs = _fs_;
+ out = d3.select('#output');
+
+ runTests();
+ }]);
+}());