deno.land / x / masx200_leetcode_test@10.6.5 / encode-n-ary-tree-to-binary-tree / test.ts
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203import { TreeNode } from "../binary-tree-inorder-traversal/TreeNode.ts";import { assert, assertEquals } from "../deps.ts";import { Node } from "../n-ary-tree-level-order-traversal/Node.ts";import { decode, encode } from "./index.ts";
Deno.test("encode-n-ary-tree-to-binary-tree-1", () => { const examples: { node: Node; tree: TreeNode }[] = [ { node: new Node(1, [ new Node(2), new Node(3, [ new Node(6), new Node(7, [new Node(11, [new Node(14)])]), ]), new Node(4, [new Node(8, [new Node(12)])]), new Node(5, [new Node(9, [new Node(13)]), new Node(10)]), ]), tree: { val: 1, left: { val: 2, left: null, right: { val: 3, left: { val: 6, left: null, right: { val: 7, left: { val: 11, left: { val: 14, left: null, right: null }, right: null, }, right: null, }, }, right: { val: 4, left: { val: 8, left: { val: 12, left: null, right: null }, right: null, }, right: { val: 5, left: { val: 9, left: { val: 13, left: null, right: null }, right: { val: 10, left: null, right: null }, }, right: null, }, }, }, }, right: null, }, }, { node: new Node(1, [ new Node(3, [new Node(5), new Node(6)]), new Node(2), new Node(4), ]), tree: { val: 1, left: { val: 3, left: { val: 5, left: null, right: { val: 6, left: null, right: null }, }, right: { val: 2, left: null, right: { val: 4, left: null, right: null }, }, }, right: null, }, }, ]; examples.forEach(({ node: node, tree: tree }) => { const entree = encode(node); assertEquals(JSON.stringify(tree), JSON.stringify(entree)); // console.log(JSON.stringify(tree)); const cloned = decode(entree); assert(node !== cloned); assertEquals(node, cloned); });});Deno.test("encode-n-ary-tree-to-binary-tree-2", () => { const root = new Node(1, [ new Node(3, [new Node(5), new Node(6)]), new Node(2), new Node(4, [ new Node(13, [ new Node(15), new Node(16, [ new Node(43, [ new Node(25), new Node(26, [ new Node(14, [ new Node(23, [ new Node(45), new Node(46, [ new Node(33, [ new Node(35), new Node(36), ]), ]), ]), ]), ]), ]), ]), ]), ]), ]); const entree = encode(root); const expected = { val: 1, left: { val: 3, left: { val: 5, left: null, right: { val: 6, left: null, right: null }, }, right: { val: 2, left: null, right: { val: 4, left: { val: 13, left: { val: 15, left: null, right: { val: 16, left: { val: 43, left: { val: 25, left: null, right: { val: 26, left: { val: 14, left: { val: 23, left: { val: 45, left: null, right: { val: 46, left: { val: 33, left: { val: 35, left: null, right: { val: 36, left: null, right: null, }, }, right: null, }, right: null, }, }, right: null, }, right: null, }, right: null, }, }, right: null, }, right: null, }, }, right: null, }, right: null, }, }, }, right: null, }; assertEquals(JSON.stringify(entree), JSON.stringify(expected)); const cloned = decode(entree); assert(root !== cloned); assertEquals(root, cloned);});
Version Info