package Ġcom . github . ad ri ank uta . data structure . tree Ċ Ċ import Ġorg . hamcrest . Core Matchers .` is ` Ċ import Ġorg . hamcrest . Core Matchers . null Value Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertThat Ċ import Ġorg . junit . Test Ċ Ċ class ĠTreeNode Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġremove Node Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= ĠTreeNode (" Root ") ĊĠĠĠĠĠĠĠ Ġval Ġbe verage s Node Ġ= ĠTreeNode (" Be verage s ") ĊĠĠĠĠĠĠĠ Ġval Ġcur d Node Ġ= ĠTreeNode (" Cur d ") ĊĠĠĠĠĠĠĠ Ġroot . addChild ( be verage s Node ) ĊĠĠĠĠĠĠĠ Ġroot . addChild ( cur d Node ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtea Node Ġ= ĠTreeNode (" tea ") ĊĠĠĠĠĠĠĠ Ġval Ġcoffee Node Ġ= ĠTreeNode (" coffee ") ĊĠĠĠĠĠĠĠ Ġval Ġmil k Sh ake Node Ġ= ĠTreeNode (" M ilk ĠSh ake ") ĊĠĠĠĠĠĠĠ Ġbe verage s Node . addChild ( tea Node ) ĊĠĠĠĠĠĠĠ Ġbe verage s Node . addChild ( coffee Node ) ĊĠĠĠĠĠĠĠ Ġbe verage s Node . addChild ( mil k Sh ake Node ) ĊĊĠĠĠĠĠĠĠ Ġval Ġg inger Te a Node Ġ= ĠTreeNode (" ging er Ġtea ") ĊĠĠĠĠĠĠĠ Ġval Ġnormal Te a Node Ġ= ĠTreeNode (" normal Ġtea ") ĊĠĠĠĠĠĠĠ Ġtea Node . addChild ( ging er Te a Node ) ĊĠĠĠĠĠĠĠ Ġtea Node . addChild ( normal Te a Node ) ĊĊĠĠĠĠĠĠĠ Ġval Ġy og urt Node Ġ= ĠTreeNode (" y og urt ") ĊĠĠĠĠĠĠĠ Ġval Ġ lass i Node Ġ= ĠTreeNode (" lass i ") ĊĠĠĠĠĠĠĠ Ġcur d Node . addChild ( y og urt Node ) ĊĠĠĠĠĠĠĠ Ġcur d Node . addChild ( lass i Node ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Root \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĶľâĶĢâĶĢ ĠBe verage s \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĶĤ ĠĠ ĠâĶľâĶĢâĶĢ Ġtea \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĶĤ ĠĠ ĠâĶĤ ĠĠ ĠâĶľâĶĢâĶĢ Ġg inger Ġtea \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĶĤ ĠĠ ĠâĶĤ ĠĠ ĠâĶĶâĶĢâĶĢ Ġnormal Ġtea \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĶĤ ĠĠ ĠâĶľâĶĢâĶĢ Ġcoffee \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĶĤ ĠĠ ĠâĶĶâĶĢâĶĢ ĠM ilk ĠSh ake \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĶĶ âĶĢâĶĢ ĠCur d \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ ĠâĶľâĶĢâĶĢ Ġy og urt \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ ĠâĶĶâĶĢâĶĢ Ġ lass i \ n ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . pretty String () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprintln (" Remove : Ġ${ cur d Node . value }") ĊĠĠĠĠĠĠĠ Ġroot . removeChild ( cur d Node ) ĊĠĠĠĠĠĠĠ Ġprintln (" Remove : Ġ${ ging er Te a Node . value }") ĊĠĠĠĠĠĠĠ Ġroot . removeChild ( ging er Te a Node ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Root \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" âĶĶ âĶĢâĶĢ ĠBe verage s \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ ĠâĶľâĶĢâĶĢ Ġtea \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ ĠâĶĤ ĠĠ ĠâĶĶâĶĢâĶĢ Ġnormal Ġtea \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ ĠâĶľâĶĢâĶĢ Ġcoffee \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ ĠâĶĶâĶĢâĶĢ ĠM ilk ĠSh ake \ n ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . pretty String () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġclear Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= ĠTreeNode (" Root ") ĊĠĠĠĠĠĠĠ Ġval Ġbe verage s Node Ġ= ĠTreeNode (" Be verage s ") ĊĠĠĠĠĠĠĠ Ġval Ġcur d Node Ġ= ĠTreeNode (" Cur d ") ĊĠĠĠĠĠĠĠ Ġroot . addChild ( be verage s Node ) ĊĠĠĠĠĠĠĠ Ġroot . addChild ( cur d Node ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtea Node Ġ= ĠTreeNode (" tea ") ĊĠĠĠĠĠĠĠ Ġval Ġcoffee Node Ġ= ĠTreeNode (" coffee ") ĊĠĠĠĠĠĠĠ Ġval Ġmil k Sh ake Node Ġ= ĠTreeNode (" M ilk ĠSh ake ") ĊĠĠĠĠĠĠĠ Ġbe verage s Node . addChild ( tea Node ) ĊĠĠĠĠĠĠĠ Ġbe verage s Node . addChild ( coffee Node ) ĊĠĠĠĠĠĠĠ Ġbe verage s Node . addChild ( mil k Sh ake Node ) ĊĊĠĠĠĠĠĠĠ Ġval Ġg inger Te a Node Ġ= ĠTreeNode (" ging er Ġtea ") ĊĠĠĠĠĠĠĠ Ġval Ġnormal Te a Node Ġ= ĠTreeNode (" normal Ġtea ") ĊĠĠĠĠĠĠĠ Ġtea Node . addChild ( ging er Te a Node ) ĊĠĠĠĠĠĠĠ Ġtea Node . addChild ( normal Te a Node ) ĊĊĠĠĠĠĠĠĠ Ġval Ġy og urt Node Ġ= ĠTreeNode (" y og urt ") ĊĠĠĠĠĠĠĠ Ġval Ġ lass i Node Ġ= ĠTreeNode (" lass i ") ĊĠĠĠĠĠĠĠ Ġcur d Node . addChild ( y og urt Node ) ĊĠĠĠĠĠĠĠ Ġcur d Node . addChild ( lass i Node ) ĊĊĠĠĠĠĠĠĠ Ġprintln ( root . toString ()) ĊĠĠĠĠĠĠĠ Ġprintln ( cur d Node . height ()) ĊĊĠĠĠĠĠĠĠ Ġroot . clear () ĊĠĠĠĠĠĠĠ ĠassertThat ( root . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( be verage s Node . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( cur d Node . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( tea Node . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( coffee Node . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( mil k Sh ake Node . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( ging er Te a Node . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( normal Te a Node . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( y og urt Node . children , Ġ` is `( emptyList ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( lass i Node . children , Ġ` is `( emptyList ())) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( root . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( be verage s Node . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( cur d Node . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( tea Node . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( coffee Node . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( mil k Sh ake Node . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( ging er Te a Node . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( normal Te a Node . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( y og urt Node . parent , Ġ` is `( null Value ())) ĊĠĠĠĠĠĠĠ ĠassertThat ( lass i Node . parent , Ġ` is `( null Value ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġkotlin Ext Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= ĠTreeNode (" World ") ĊĠĠĠĠĠĠĠ Ġval Ġnorth A Ġ= ĠTreeNode (" North ĠAmerica ") ĊĠĠĠĠĠĠĠ Ġval Ġe urope Ġ= ĠTreeNode (" Europe ") ĊĠĠĠĠĠĠĠ Ġroot . addChild ( north A ) ĊĠĠĠĠĠĠĠ Ġroot . addChild ( e urope ) ĊĊĠĠĠĠĠĠĠ Ġval Ġusa Ġ= ĠTreeNode (" USA ") ĊĠĠĠĠĠĠĠ Ġnorth A . addChild ( usa ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpol and Ġ= ĠTreeNode (" Pol and ") ĊĠĠĠĠĠĠĠ Ġval Ġfr ance Ġ= ĠTreeNode (" Fr ance ") ĊĠĠĠĠĠĠĠ Ġe urope . addChild ( pol and ) ĊĠĠĠĠĠĠĠ Ġe urope . addChild ( france ) ĊĊĠĠĠĠĠĠĠ Ġval Ġroot Ext Ġ= Ġtree (" World ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" North ĠAmerica ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" USA ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" Europe ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" Pol and ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild (" Fr ance ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( root . pretty String (), Ġroot Ext . pretty String ()) ĊĠĠĠ Ġ} Ċ }