package Ġorg . dom nik l . data _ structures Ċ Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ class ĠQueue Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġget Ġsize Ġof Ġqueue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġqueue Ġ= ĠQueue < String >() ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġqueue . size ) ĊĊĠĠĠĠĠĠĠ Ġqueue . add (" A ") ĊĠĠĠĠĠĠĠ Ġqueue . add (" B ") ĊĠĠĠĠĠĠĠ Ġqueue . add (" C ") ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 3 , Ġqueue . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġpop Ġelement Ġfrom Ġqueue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġqueue Ġ= ĠQueue < String >() ĊĠĠĠĠĠĠĠ Ġqueue . add (" A ") ĊĠĠĠĠĠĠĠ Ġqueue . add (" B ") ĊĠĠĠĠĠĠĠ Ġqueue . add (" C ") ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" A ", Ġqueue . remove ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" B ", Ġqueue . remove ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" C ", Ġqueue . remove ()) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġqueue . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġcheck Ġif Ġqueue Ġis Ġempty `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġqueue Ġ= ĠQueue < Int >() ĊĊĠĠĠĠĠĠĠ Ġassert ( queue . isEmpty ()) ĊĊĠĠĠĠĠĠĠ Ġqueue . add ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġassert (! queue . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġpeek Ġon Ġthe Ġqueue `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġqueue Ġ= ĠQueue < Int >(). also Ġ{ Ġit . add ( 1 ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġqueue . peek ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalStateException :: class ) ĊĠĠĠ Ġfun Ġ` throws Ġexception Ġwhen Ġtrying Ġto Ġpeek Ġon Ġempty Ġqueue `() Ġ{ ĊĠĠĠĠĠĠĠ ĠQueue < Int >(). peek () ĊĠĠĠ Ġ} Ċ }