/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 2 1 ĠThe ĠBoard Game Work ĠAuthors Ċ Ġ* ĠĠĠ ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġutil . stack Ċ Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠP eek Test : ĠStack TestBase () Ġ{ ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek Ġon Ġempty ĠStack ") Ċ ĉ fun Ġtest Peek On Empty Stack () Ġ{ Ċĉ ĉ assertEquals ( 0 , Ġempty Stack . size ) Ċĉ ĉ assert Fails With < NoSuch ElementException > Ġ{ Ġempty Stack . peek () Ġ} Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek OrNull Ġon Ġempty ĠStack ") Ċ ĉ fun Ġtest Peek OrNull On Empty Stack () Ġ{ Ċĉ ĉ assertEquals ( 0 , Ġempty Stack . size ) Ċĉ ĉ assertEquals ( null , Ġempty Stack . peek OrNull ()) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek ") Ċ ĉ fun Ġtest Peek () Ġ{ Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċĉ ĉ assertEquals ( order [ 0 ], Ġstack . peek ()) Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek OrNull ") Ċ ĉ fun Ġtest Peek OrNull () Ġ{ Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċĉ ĉ assertEquals ( order [ 0 ], Ġstack . peek OrNull ()) Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek All Ġfor Ġall Ġelements ") Ċ ĉ fun Ġtest Peek All ForAll () Ġ{ Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) ĊĉĉĊĉ ĉ assertEquals ( order , Ġstack . peek All ( order . size )) ĊĉĉĊĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek All Ġfor Ġsome Ġelements ") Ċ ĉ fun Ġtest Peek All For Some () Ġ{ Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) ĊĉĉĊĉ ĉ assertEquals ( order . sub List ( 0 , 3 ), Ġstack . peek All ( 3 )) ĊĉĉĊĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek All Ġfor Ġone Ġelement ") Ċ ĉ fun Ġtest Peek All For One () Ġ{ Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) ĊĉĉĊĉ ĉ assertEquals ( listOf ( order [ 0 ]), Ġstack . peek All ( 1 )) ĊĉĉĊĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek All Ġfor Ġzero Ġargument ") Ċ ĉ fun Ġtest Peek All For Zero () Ġ{ Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) ĊĉĉĊĉ ĉ assertEquals ( listOf (), Ġstack . peek All ( 0 )) ĊĉĉĊĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek All Ġfor Ġnegative Ġargument ") Ċ ĉ fun Ġtest Peek All For Negative () Ġ{ Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) ĊĉĉĊĉ ĉ assert Fails With < IllegalArgumentException > Ġ{ Ġstack . peek All (- 1 ) Ġ} ĊĉĉĊĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġpeek All Ġfor Ġlarge Ġargument ") Ċ ĉ fun Ġtest Peek All For Large () Ġ{ Ċĉ ĉ assertEquals ( 5 , Ġstack . size ) ĊĉĉĊĉ ĉ assert Fails With < IllegalArgumentException > Ġ{ Ġstack . peek All ( 6 ) Ġ} ĊĉĉĊĉ ĉ assertEquals ( 5 , Ġstack . size ) Ċ ĉ } Ċ }