@@ -31,6 +31,62 @@ describe('Day 24 challenge', () => {
31
31
right : { value : 5 , left : { value : 4 , left : null , right : null } , right : null } ,
32
32
}
33
33
34
+ const treeC = {
35
+ value : 1 ,
36
+ left : {
37
+ value : 2 ,
38
+ left : { value : 3 , left : null , right : null } ,
39
+ right : { value : 4 , left : null , right : null } ,
40
+ } ,
41
+ right : {
42
+ value : 5 ,
43
+ left : { value : 6 , left : null , right : null } ,
44
+ right : { value : 7 , left : null , right : null } ,
45
+ } ,
46
+ }
47
+
48
+ const treeCInverse = {
49
+ value : 1 ,
50
+ left : {
51
+ value : 5 ,
52
+ left : { value : 7 , left : null , right : null } ,
53
+ right : { value : 6 , left : null , right : null } ,
54
+ } ,
55
+ right : {
56
+ value : 2 ,
57
+ left : { value : 4 , left : null , right : null } ,
58
+ right : { value : 3 , left : null , right : null } ,
59
+ } ,
60
+ }
61
+
62
+ const treeCPartialInverseTopBranches = {
63
+ value : 1 ,
64
+ left : {
65
+ value : 5 ,
66
+ left : { value : 3 , left : null , right : null } ,
67
+ right : { value : 4 , left : null , right : null } ,
68
+ } ,
69
+ right : {
70
+ value : 2 ,
71
+ left : { value : 6 , left : null , right : null } ,
72
+ right : { value : 7 , left : null , right : null } ,
73
+ } ,
74
+ }
75
+
76
+ const treeCPartialInverseBottomBranches = {
77
+ value : 1 ,
78
+ left : {
79
+ value : 2 ,
80
+ left : { value : 3 , left : null , right : null } ,
81
+ right : { value : 4 , left : null , right : null } ,
82
+ } ,
83
+ right : {
84
+ value : 5 ,
85
+ left : { value : 7 , left : null , right : null } ,
86
+ right : { value : 6 , left : null , right : null } ,
87
+ } ,
88
+ }
89
+
34
90
test ( 'returns true when comparing the same tree' , ( ) => {
35
91
expect ( checkIsSameTree ( treeA , treeA ) ) . toBeTruthy ( )
36
92
} )
@@ -50,4 +106,18 @@ describe('Day 24 challenge', () => {
50
106
test ( 'returns false when comparing a tree & its partial inverse version (only an inner branch)' , ( ) => {
51
107
expect ( checkIsSameTree ( treeB , treeBPartialInverse ) ) . toBeFalsy ( )
52
108
} )
109
+
110
+ test ( 'returns true when comparing a balanced tree & its inverse version' , ( ) => {
111
+ expect ( checkIsSameTree ( treeC , treeCInverse ) ) . toBeTruthy ( )
112
+ } )
113
+
114
+ test ( 'returns false when comparing a balanced tree & its partial inverse version (top branches)' , ( ) => {
115
+ expect ( checkIsSameTree ( treeC , treeCPartialInverseTopBranches ) ) . toBeFalsy ( )
116
+ } )
117
+
118
+ test ( 'returns false when comparing a balanced tree & its partial inverse version (bottom branches)' , ( ) => {
119
+ expect (
120
+ checkIsSameTree ( treeC , treeCPartialInverseBottomBranches )
121
+ ) . toBeFalsy ( )
122
+ } )
53
123
} )
0 commit comments