package Ġio . null ables . api . playground . algorithms . data Ċ Ċ import Ġio . null ables . api . playground . algorithms . Stack Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ class ĠStack Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= ĠStack < Int >() ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġstack . size ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( stack . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠNoSuch ElementException :: class ) ĊĠĠĠ Ġfun Ġexception Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= ĠStack < Int >() ĊĠĠĠĠĠĠĠ Ġstack . peek () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġna ive Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= ĠStack < Int >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . push ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 0 Ġdown To Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( i , Ġstack . peek ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( i , Ġstack . poll ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġstack . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġna ive Iterator Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= ĠStack < Int >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . push ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġk Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġstack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( i , Ġk --) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġna ive Contains Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= ĠStack < Int >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack . push ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( stack . contains ( i )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( stack . contains ( 1 0 0 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( stack . contains ( 1 0 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( stack . contains ( 1 0 3 )) ĊĠĠĠ Ġ} Ċ } Ċ