import { pretty } from "../lib/util/pretty.js"; import { insert, emptyTrie, growPrefix, suggest } from "../lib/util/trie.js"; // insertion const with1Item = insert(emptyTrie)('abba')('dancing queen'); console.log(pretty(with1Item)); const with2Items = insert(with1Item)('aboriginal')('australia'); console.log(pretty(with2Items)); const with3Items = insert(with2Items)('food')('pizza'); console.log(pretty(with3Items)); const with4Items = insert(with3Items)('absent')('not here'); console.log(pretty(with4Items)); const with5Items = insert(with4Items)('000')('000'); console.log(pretty(with5Items)); const with6Items = insert(with5Items)('aboriginally')('??'); console.log(pretty(with6Items)); const with7Items = insert(with6Items)('ab')('yup'); console.log(pretty(with7Items)); const with8Items = insert(with7Items)('')('hi!'); console.log(pretty(with8Items)); // grow key (for auto-complete) console.log(growPrefix(with6Items)("a")); // b console.log(growPrefix(with6Items)("ab")); // (empty string) console.log(growPrefix(with6Items)("abb")); // a console.log(growPrefix(with6Items)("f")); // ood console.log(growPrefix(with6Items)("abo")); // riginal // suggest (also for auto-complete) console.log(suggest(with8Items)("a")(3)); // 'ab', 'abba', 'aboriginal' console.log(suggest(with8Items)("a")(4)); // 'ab', 'abba', 'aboriginal', 'aboriginally' console.log(suggest(with8Items)("a")(5)); // 'ab', 'abba', 'aboriginal', 'aboriginally', 'absent'