/* ĊĠĠ ĠCopyright Ġ 2 0 1 7 - 2 0 1 9 ĠChar les ĠK orn . ĊĊĠĠ Ġ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 Ġb ate ct . execution Ċ Ċ import Ġb ate ct . config . Configuration Ċ import Ġb ate ct . config . Container Map Ċ import Ġb ate ct . config . Task Ċ import Ġb ate ct . config . Task Map Ċ import Ġb ate ct . config . Task Run Configuration Ċ import Ġb ate ct . test utils . given Ċ import Ġcom . nat pr y ce . ham k rest . assertion . assertThat Ċ import Ġcom . nat pr y ce . ham k rest . equalTo Ċ import Ġcom . nat pr y ce . ham k rest . isEmpty Ċ import Ġorg . spe k framework . spe k 2 . Spe k Ċ import Ġorg . spe k framework . spe k 2 . style . specification . describe Ċ Ċ object ĠTask Suggest er Spec Ġ: ĠSpe k ({ ĊĠĠĠ Ġdescribe (" a Ġtask Ġsuggest er ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Run Configuration Ġ= ĠTask Run Configuration (" some - container ") ĊĠĠĠĠĠĠĠ Ġval Ġtask 1 Ġ= ĠTask (" task 1 ", Ġtask Run Configuration ) ĊĠĠĠĠĠĠĠ Ġval Ġtask 2 Ġ= ĠTask (" task 1 2 3 4 ", Ġtask Run Configuration ) ĊĠĠĠĠĠĠĠ Ġval Ġtask 3 Ġ= ĠTask (" w ack y - things ", Ġtask Run Configuration ) ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠConfiguration (" the - project ", ĠTask Map ( task 1 , Ġtask 2 , Ġtask 3 ), ĠContainer Map ()) ĊĠĠĠĠĠĠĠ Ġval Ġsuggest er Ġ= ĠTask Suggest er () ĊĊĠĠĠĠĠĠĠ Ġgiven (" there Ġare Ġno Ġclose Ġmatches Ġto Ġthe Ġoriginal Ġtask Ġname ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsuggest er . suggest Corre ctions ( config , Ġ" comp let ely - different - task - name ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" returns Ġan Ġempty Ġlist ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result , ĠisEmpty ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgiven (" there Ġis Ġone Ġclose Ġmatch Ġto Ġthe Ġoriginal Ġtask Ġname ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsuggest er . suggest Corre ctions ( config , Ġ" task - 1 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" returns Ġthat Ġclose Ġmatch ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result , ĠequalTo ( listOf (" task 1 "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgiven (" there Ġare Ġmultiple Ġclose Ġmatches Ġto Ġthe Ġoriginal Ġtask Ġname ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsuggest er . suggest Corre ctions ( config , Ġ" task 2 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" returns Ġthose Ġmatches , Ġwith Ġthe Ġclosest Ġmatch Ġfirst ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result , ĠequalTo ( listOf (" task 1 ", Ġ" task 1 2 3 4 "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ