/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 . ĠK EST I Ġco , Ġl td Ċ Ġ* Ġ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 Ġdeb op 4 k . core . collections . per mutations Ċ Ċ import Ġdeb op 4 k . core . collections . per mutations . samples . pri mes Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Test Ċ Ċ class ĠScan Test Ġ: ĠAbstract Per mutation Test () Ġ{ ĊĊĠ Ġ@ Test Ġfun Ġtest Initial Element With Empty Seq () Ġ{ ĊĠĠĠ Ġval Ġscanned : ĠPer mutation < Int > Ġ= Ġempty Int Per mutation . scan ( 0 ) Ġ{ Ġacc , Ġc Ġ-> Ġacc Ġ+ Ġc Ġ} ĊĠĠĠ ĠassertThat ( sc anned ). isEqualTo ( permutation Of ( 0 )) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġtest Sc anned Fixed Seq () Ġ{ ĊĠĠĠ Ġval Ġfixed Ġ= Ġpermutation Of ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĊĠĠĠ Ġval Ġscanned Ġ= Ġfixed . scan ( 0 ) Ġ{ Ġacc , Ġc Ġ-> Ġacc Ġ+ Ġc Ġ} ĊĠĠĠ ĠassertThat ( sc anned ). isEqualTo ( permutation Of ( 0 , Ġ 1 , Ġ 3 , Ġ 6 , Ġ 1 0 )) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġtest Sc anned Fixed Seq Of Strings () Ġ{ ĊĠĠĠ Ġval Ġfixed Ġ= Ġcontin ually ("* "). take ( 5 ) ĊĊĠĠĠ Ġval Ġscanned Ġ= Ġfixed . scan ("") Ġ{ Ġacc , Ġc Ġ-> Ġacc Ġ+ Ġc Ġ} ĊĠĠĠ ĠassertThat ( sc anned ). isEqualTo ( permutation Of ("", Ġ"*", Ġ"** ", Ġ" *** ", Ġ" **** ", Ġ" ***** ")) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġtest Scan Infinite Seq () Ġ{ ĊĠĠĠ Ġval Ġpri mes Ġ= Ġpri mes () ĊĊĠĠĠ Ġval Ġscanned Ġ= Ġpri mes . scan ( 1 ) Ġ{ Ġacc , Ġc Ġ-> Ġacc Ġ* Ġc Ġ} ĊĊĠĠĠ ĠassertThat ( sc anned . take ( 4 )). isEqualTo ( permutation Of ( 1 , Ġ 1 Ġ* Ġ 2 , Ġ 1 Ġ* Ġ 2 Ġ* Ġ 3 , Ġ 1 Ġ* Ġ 2 Ġ* Ġ 3 Ġ* Ġ 5 )) ĊĠ Ġ} Ċ }