@@ -528,6 +528,150 @@ public void BinaryTreeDiameterClassTestCase1()
528528 var expected = 6 ;
529529 var actual = new BinaryTreeDiameterClass ( ) . BinaryTreeDiameter ( root ) ;
530530 Assert . True ( expected == actual ) ;
531+ }
532+ #endregion
533+
534+ #region FindSuccessor
535+ [ Fact ]
536+ public void FindSuccessorClassTestCase1 ( )
537+ {
538+ FindSuccessorClass . BinaryTree root = new FindSuccessorClass . BinaryTree ( 1 ) ;
539+ root . left = new FindSuccessorClass . BinaryTree ( 2 ) ;
540+ root . left . parent = root ;
541+ root . right = new FindSuccessorClass . BinaryTree ( 3 ) ;
542+ root . right . parent = root ;
543+ root . left . left = new FindSuccessorClass . BinaryTree ( 4 ) ;
544+ root . left . left . parent = root . left ;
545+ root . left . right = new FindSuccessorClass . BinaryTree ( 5 ) ;
546+ root . left . right . parent = root . left ;
547+ root . left . left . left = new FindSuccessorClass . BinaryTree ( 6 ) ;
548+ root . left . left . left . parent = root . left . left ;
549+ FindSuccessorClass . BinaryTree node = root . left . right ;
550+ FindSuccessorClass . BinaryTree expected = root ;
551+ FindSuccessorClass . BinaryTree actual = new FindSuccessorClass ( ) . FindSuccessor ( root , node ) ;
552+ Assert . Equal ( expected , actual ) ;
553+ }
554+ #endregion
555+
556+ #region HeightBalancedBinaryTree
557+ [ Fact ]
558+ public void HeightBalancedBinaryTreeClassTestCase ( )
559+ {
560+ HeightBalancedBinaryTreeClass . BinaryTree root = new HeightBalancedBinaryTreeClass . BinaryTree ( 1 ) ;
561+ root = new HeightBalancedBinaryTreeClass . BinaryTree ( 1 ) ;
562+ root . left = new HeightBalancedBinaryTreeClass . BinaryTree ( 2 ) ;
563+ root . right = new HeightBalancedBinaryTreeClass . BinaryTree ( 3 ) ;
564+ root . left . left = new HeightBalancedBinaryTreeClass . BinaryTree ( 4 ) ;
565+ root . left . right = new HeightBalancedBinaryTreeClass . BinaryTree ( 5 ) ;
566+ root . right . right = new HeightBalancedBinaryTreeClass . BinaryTree ( 6 ) ;
567+ root . left . right . left = new HeightBalancedBinaryTreeClass . BinaryTree ( 7 ) ;
568+ root . left . right . right = new HeightBalancedBinaryTreeClass . BinaryTree ( 8 ) ;
569+ bool expected = true ;
570+ var actual = new HeightBalancedBinaryTreeClass ( ) . HeightBalancedBinaryTree ( root ) ;
571+ Assert . True ( expected == actual ) ;
572+ }
573+ #endregion
574+
575+ #region MergeBinaryTrees
576+ [ Fact ]
577+ public void MergeBinaryTreesTestCase1 ( )
578+ {
579+ MergeBinaryTreesClass . BinaryTree tree1 = new MergeBinaryTreesClass . BinaryTree ( 1 ) ;
580+ tree1 . left = new MergeBinaryTreesClass . BinaryTree ( 3 ) ;
581+ tree1 . left . left = new MergeBinaryTreesClass . BinaryTree ( 7 ) ;
582+ tree1 . left . right = new MergeBinaryTreesClass . BinaryTree ( 4 ) ;
583+ tree1 . right = new MergeBinaryTreesClass . BinaryTree ( 2 ) ;
584+
585+ MergeBinaryTreesClass . BinaryTree tree2 = new MergeBinaryTreesClass . BinaryTree ( 1 ) ;
586+ tree2 . left = new MergeBinaryTreesClass . BinaryTree ( 5 ) ;
587+ tree2 . left . left = new MergeBinaryTreesClass . BinaryTree ( 2 ) ;
588+ tree2 . right = new MergeBinaryTreesClass . BinaryTree ( 9 ) ;
589+ tree2 . right . left = new MergeBinaryTreesClass . BinaryTree ( 7 ) ;
590+ tree2 . right . right = new MergeBinaryTreesClass . BinaryTree ( 6 ) ;
591+
592+ MergeBinaryTreesClass . BinaryTree expected = new MergeBinaryTreesClass . BinaryTree ( 2 ) ;
593+ expected . left = new MergeBinaryTreesClass . BinaryTree ( 8 ) ;
594+ expected . left . left = new MergeBinaryTreesClass . BinaryTree ( 9 ) ;
595+ expected . left . right = new MergeBinaryTreesClass . BinaryTree ( 4 ) ;
596+ expected . right = new MergeBinaryTreesClass . BinaryTree ( 11 ) ;
597+ expected . right . left = new MergeBinaryTreesClass . BinaryTree ( 7 ) ;
598+ expected . right . right = new MergeBinaryTreesClass . BinaryTree ( 6 ) ;
599+
600+ MergeBinaryTreesClass . BinaryTree actual = new MergeBinaryTreesClass ( ) . MergeBinaryTrees ( tree1 , tree2 ) ;
601+
602+ Assert . True ( areTreesEqual ( expected , actual ) ) ;
603+ }
604+
605+ public bool areTreesEqual (
606+ MergeBinaryTreesClass . BinaryTree tree1 , MergeBinaryTreesClass . BinaryTree tree2
607+ )
608+ {
609+ if ( tree1 == null && tree2 == null ) return true ;
610+
611+ if ( tree1 == null && tree2 != null )
612+ {
613+ return false ;
614+ }
615+ else if ( tree1 != null && tree2 == null )
616+ {
617+ return false ;
618+ }
619+
620+ if ( tree1 . value != tree2 . value ) return false ;
621+ return areTreesEqual ( tree1 . left , tree2 . left ) &&
622+ areTreesEqual ( tree1 . right , tree2 . right ) ;
623+ }
624+ #endregion
625+
626+ #region SymmetricalTree
627+ [ Fact ]
628+ public void SymmetricalTreeTestCase1 ( )
629+ {
630+ SymmetricalTreeClass . BinaryTree tree = new SymmetricalTreeClass . BinaryTree ( 10 ) ;
631+ tree . left = new SymmetricalTreeClass . BinaryTree ( 5 ) ;
632+ tree . right = new SymmetricalTreeClass . BinaryTree ( 5 ) ;
633+ tree . left . left = new SymmetricalTreeClass . BinaryTree ( 7 ) ;
634+ tree . left . right = new SymmetricalTreeClass . BinaryTree ( 9 ) ;
635+ tree . right . left = new SymmetricalTreeClass . BinaryTree ( 9 ) ;
636+ tree . right . right = new SymmetricalTreeClass . BinaryTree ( 7 ) ;
637+ var expected = true ;
638+ var actual = new SymmetricalTreeClass ( ) . SymmetricalTree ( tree ) ;
639+ Assert . True ( expected == actual ) ;
640+ }
641+ #endregion
642+
643+ #region SplitBinaryTreeClass
644+ [ Fact ]
645+ public void SplitBinaryTreeClassTestCase1 ( )
646+ {
647+ SplitBinaryTreeClass . BinaryTree tree = new SplitBinaryTreeClass . BinaryTree ( 2 ) ;
648+ tree . left = new SplitBinaryTreeClass . BinaryTree ( 4 ) ;
649+ tree . left . left = new SplitBinaryTreeClass . BinaryTree ( 4 ) ;
650+ tree . left . right = new SplitBinaryTreeClass . BinaryTree ( 6 ) ;
651+ tree . right = new SplitBinaryTreeClass . BinaryTree ( 10 ) ;
652+ tree . right . left = new SplitBinaryTreeClass . BinaryTree ( 3 ) ;
653+ tree . right . right = new SplitBinaryTreeClass . BinaryTree ( 3 ) ;
654+ int expected = 16 ;
655+ int actual = new SplitBinaryTreeClass ( ) . SplitBinaryTree ( tree ) ;
656+ Assert . True ( expected == actual ) ;
657+ }
658+ #endregion
659+
660+ #region MaxSubsetSumNoAdjacent
661+ [ Fact ]
662+ public void MaxSubsetSumNoAdjacentTestCase1 ( )
663+ {
664+ int [ ] input = { 75 , 105 , 120 , 75 , 90 , 135 } ;
665+ Assert . True ( MaxSubsetSumNoAdjacentClass . MaxSubsetSumNoAdjacent ( input ) == 330 ) ;
666+ }
667+ #endregion
668+
669+ #region NumberOfWaysToMakeChange
670+ [ Fact ]
671+ public void NumberOfWaysToMakeChange ( )
672+ {
673+ int [ ] input = { 1 , 5 } ;
674+ Assert . True ( NumberOfWaysToMakeChangeClass . NumberOfWaysToMakeChange ( 6 , input ) == 2 ) ;
531675 }
532676 #endregion
533677
@@ -536,6 +680,20 @@ public void BinaryTreeDiameterClassTestCase1()
536680
537681
538682
683+
684+
685+
686+
687+
688+
689+
690+
691+
692+
693+
694+
695+
696+
539697
540698
541699 #region TaskAssignment
0 commit comments