test_DominatorTreeNode_insert_03.js (2579B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 // Test inserting new children into an existing DominatorTreeNode at the root. 6 7 const tree = makeTestDominatorTreeNode({ nodeId: 666 }, [ 8 makeTestDominatorTreeNode({}), 9 makeTestDominatorTreeNode({}, [ 10 makeTestDominatorTreeNode({}), 11 makeTestDominatorTreeNode({}), 12 makeTestDominatorTreeNode({}), 13 ]), 14 makeTestDominatorTreeNode({}), 15 ]); 16 17 const path = [666]; 18 19 const newChildren = [ 20 makeTestDominatorTreeNode({ 21 nodeId: 777, 22 parentId: 666, 23 }), 24 makeTestDominatorTreeNode({ 25 nodeId: 888, 26 parentId: 666, 27 }), 28 ]; 29 30 const moreChildrenAvailable = false; 31 32 const expected = { 33 nodeId: 666, 34 label: undefined, 35 parentId: undefined, 36 shallowSize: 1, 37 retainedSize: 7, 38 children: [ 39 { 40 nodeId: 0, 41 label: undefined, 42 shallowSize: 1, 43 retainedSize: 1, 44 parentId: 666, 45 moreChildrenAvailable: true, 46 children: undefined, 47 }, 48 { 49 nodeId: 4, 50 label: undefined, 51 shallowSize: 1, 52 retainedSize: 4, 53 parentId: 666, 54 children: [ 55 { 56 nodeId: 1, 57 label: undefined, 58 shallowSize: 1, 59 retainedSize: 1, 60 parentId: 4, 61 moreChildrenAvailable: true, 62 children: undefined, 63 }, 64 { 65 nodeId: 2, 66 label: undefined, 67 shallowSize: 1, 68 retainedSize: 1, 69 parentId: 4, 70 moreChildrenAvailable: true, 71 children: undefined, 72 }, 73 { 74 nodeId: 3, 75 label: undefined, 76 shallowSize: 1, 77 retainedSize: 1, 78 parentId: 4, 79 moreChildrenAvailable: true, 80 children: undefined, 81 }, 82 ], 83 moreChildrenAvailable: true, 84 }, 85 { 86 nodeId: 5, 87 label: undefined, 88 shallowSize: 1, 89 retainedSize: 1, 90 parentId: 666, 91 moreChildrenAvailable: true, 92 children: undefined, 93 }, 94 { 95 nodeId: 777, 96 label: undefined, 97 shallowSize: 1, 98 retainedSize: 1, 99 parentId: 666, 100 moreChildrenAvailable: true, 101 children: undefined, 102 }, 103 { 104 nodeId: 888, 105 label: undefined, 106 shallowSize: 1, 107 retainedSize: 1, 108 parentId: 666, 109 moreChildrenAvailable: true, 110 children: undefined, 111 }, 112 ], 113 moreChildrenAvailable: false, 114 }; 115 116 function run_test() { 117 assertDominatorTreeNodeInsertion( 118 tree, 119 path, 120 newChildren, 121 moreChildrenAvailable, 122 expected 123 ); 124 }