package Ġdata structures . queue Ċ Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertNull Ċ Ċ /** Ċ Ġ* ĠRuns Ġa Ġset Ġof Ġtests Ġagainst Ġthe Ġgiven ĠString - based Ġqueue . Ċ Ġ*/ Ċ internal Ġfun Ġenqueue De queue ( queue : ĠI Queue < String >) Ġ{ ĊĠĠĠ ĠassertEquals ( 0 , Ġqueue . size ()) ĊĊĠĠĠ Ġ// Add Ġelements Ġlike Ġthis : ĠHead Ġ-> Ġhello , Ġworld , Ġhow , Ġare , Ġyou Ġ<- ĠTail ĊĠĠĠ Ġqueue . enqueue (" hello ") ĊĠĠĠ Ġqueue . enqueue (" world ") ĊĠĠĠ Ġqueue . enqueue (" how ") ĊĠĠĠ Ġqueue . enqueue (" are ") ĊĠĠĠ Ġqueue . enqueue (" you ") ĊĠĠĠ ĠassertEquals ( 5 , Ġqueue . size ()) ĊĊĠĠĠ Ġ// When Ġdoing Ġa Ġde queue Ġwe Ġexpect Ġ" hello " Ġfirst , Ġthen Ġ" world " Ġetc ... ĠFIFO Ġfashion ĊĠĠĠ ĠassertEquals (" hello ", Ġqueue . de queue ()) ĊĠĠĠ ĠassertEquals (" world ", Ġqueue . de queue ()) ĊĠĠĠ ĠassertEquals ( 3 , Ġqueue . size ()) ĊĊĠĠĠ Ġ// Add Ġtwo Ġmore Ġelements ĊĠĠĠ Ġqueue . enqueue (" do ing ") ĊĠĠĠ Ġqueue . enqueue (" today ") ĊĠĠĠ ĠassertEquals ( 5 , Ġqueue . size ()) ĊĊĠĠĠ Ġ// Remove Ġall Ġelements ĊĠĠĠ ĠassertEquals (" how ", Ġqueue . de queue ()) ĊĠĠĠ ĠassertEquals (" are ", Ġqueue . de queue ()) ĊĠĠĠ ĠassertEquals (" you ", Ġqueue . de queue ()) ĊĠĠĠ ĠassertEquals (" do ing ", Ġqueue . de queue ()) ĊĠĠĠ ĠassertEquals (" today ", Ġqueue . de queue ()) ĊĠĠĠ ĠassertEquals ( 0 , Ġqueue . size ()) ĊĊĠĠĠ Ġ// Expected Ġresult Ġwhen Ġcalling Ġde queue Ġon Ġan Ġempty Ġqueue Ġis Ġnull ĊĠĠĠ ĠassertNull ( queue . de queue ()) Ċ }