/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 . Ġxmm mm mo vo Ċ Ġ*/ Ċ Ċ package Ġfundamental Ċ Ċ import Ġds . Stack Deque Ċ import Ġorg . junit . jupiter . api .* Ċ Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . platform . commons . logging . LoggerFactory Ċ Ċ internal Ġclass ĠStack Deque Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsd Ġ= ĠStack Deque < Int >() ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Stack Deque Test :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġ@ Before All ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" Stack Deque Test Ġstart " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ After All ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġafter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" Stack Deque Test Ġend " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠisEmpty () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" isEmpty Ġtesting " Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġsd . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġsd . push Left ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġsd . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġsd . pop Left () ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġsd . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġsd . push Right ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġsd . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġsd . pop Right () ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġsd . isEmpty ()) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpush Left () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" push Left Ġtesting " Ġ} ĊĊĠĠĠĠĠĠĠ Ġsd . push Left ( 1 ) ĊĠĠĠĠĠĠĠ Ġsd . push Left ( 2 ) ĊĠĠĠĠĠĠĠ Ġsd . push Left ( 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsd . pop Right ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsd . pop Right ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsd . pop Right ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpush Right () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" push Right Ġtesting " Ġ} ĊĊĠĠĠĠĠĠĠ Ġsd . push Right ( 1 ) ĊĠĠĠĠĠĠĠ Ġsd . push Right ( 2 ) ĊĠĠĠĠĠĠĠ Ġsd . push Right ( 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsd . pop Left ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsd . pop Left ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsd . pop Left ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpop Left () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" pop Left Ġtesting " Ġ} ĊĊĠĠĠĠĠĠĠ Ġsd . push Left ( 1 ) ĊĠĠĠĠĠĠĠ Ġsd . push Left ( 2 ) ĊĠĠĠĠĠĠĠ Ġsd . push Left ( 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsd . pop Left ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsd . pop Left ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsd . pop Left ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpop Right () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" pop Right Ġtesting " Ġ} ĊĊĠĠĠĠĠĠĠ Ġsd . push Right ( 1 ) ĊĠĠĠĠĠĠĠ Ġsd . push Right ( 2 ) ĊĠĠĠĠĠĠĠ Ġsd . push Right ( 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġsd . pop Right ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsd . pop Right ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsd . pop Right ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Size () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" getSize Ġtesting " Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġsd . size ) ĊĠĠĠĠĠĠĠ Ġsd . push Left ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsd . size ) ĊĠĠĠĠĠĠĠ Ġsd . push Right ( 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsd . size ) ĊĠĠĠĠĠĠĠ Ġsd . pop Right () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġsd . size ) ĊĠĠĠĠĠĠĠ Ġsd . pop Left () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġsd . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest ToString () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info Ġ{ Ġ" test ToString Ġtesting " Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (" [] ", Ġsd . toString ()) ĊĠĠĠĠĠĠĠ Ġsd . push Left ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 1 ]", Ġsd . toString ()) ĊĠĠĠĠĠĠĠ Ġsd . push Left ( 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 2 , Ġ 1 ]", Ġsd . toString ()) ĊĠĠĠĠĠĠĠ Ġsd . pop Right () ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 2 ]", Ġsd . toString ()) ĊĠĠĠ Ġ} Ċ }