package Ġcom . mapbox . search Ċ Ċ import Ġcom . mapbox . geojson . BoundingBox Ċ import Ġcom . mapbox . geojson . Point Ċ import Ġcom . mapbox . search . tests _ support . create Test Core Search Options Ċ import Ġcom . mapbox . search . utils . extension . map To Core Ċ import Ġcom . mapbox . test . dsl . TestCase Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . jupiter . api . Test Factory Ċ import Ġjava . util . Locale Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ @ Suppress (" Large Class ") Ċ internal Ġclass ĠSearch Options Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdefault Locale : ĠLocale ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Locale Ġ= ĠLocale . getDefault () ĊĠĠĠĠĠĠĠ ĠLocale . setDefault ( TEST _ LOCAL E ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ ĠLocale . setDefault ( default Locale ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` Check ĠSearch Options Ġdefault Ġbuilder `() Ġ= ĠTestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġbuilder ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Build Ġnew ĠSearch Options Ġwith Ġdefault Ġvalues ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Options Ġ= ĠSearch Options . Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Options Ġ= ĠSearch Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprox imity Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounding Box Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountries Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuzzy Match Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguages Ġ= ĠlistOf ( Language ( TEST _ LOCAL E . language )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtypes Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest De bounce Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Options Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Options Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunsafe Parameters Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Index able Records Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex able Records Distance Threshold Met ers Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" Options Ġshould Ġbe Ġequal ", Ġexpected Options , Ġactual Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` Check ĠSearch Options Ġbuilder Ġwith Ġall Ġvalues Ġset `() Ġ= ĠTestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġbuilder ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Build Ġnew ĠSearch Options Ġwith Ġall Ġvalues Ġset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Options Ġ= ĠSearch Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. prox imity ( TEST _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bounding Box ( TEST _ BOUND ING _ BOX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. countries ( Country . UNIT ED _ K ING DOM , ĠCountry . B EL AR US ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request De bounce ( 3 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fuzzy Match ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. languages ( Language . EN GL ISH , ĠLanguage (" by ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. limit ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. types ( Query Type . ADDRESS , ĠQuery Type . COUNTRY , ĠQuery Type . DI STRICT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. origin ( TEST _ ORIGIN _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigation Options ( TEST _ NAV _ OPTIONS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. route Options ( TEST _ ROUTE _ OPTIONS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. unsafe Parameters ( TEST _ UN SAFE _ PARAMETERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ignore Index able Records ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. index able Records Distance Threshold Met ers ( 5 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Options Ġ= ĠSearch Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprox imity Ġ= ĠTEST _ POINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounding Box Ġ= ĠTEST _ BOUND ING _ BOX , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountries Ġ= ĠlistOf ( Country . UNIT ED _ K ING DOM , ĠCountry . B EL AR US ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuzzy Match Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguages Ġ= ĠlistOf ( Language . EN GL ISH , ĠLanguage (" by ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtypes Ġ= ĠlistOf ( Query Type . ADDRESS , ĠQuery Type . COUNTRY , ĠQuery Type . DI STRICT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest De bounce Ġ= Ġ 3 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Ġ= ĠTEST _ ORIGIN _ POINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Options Ġ= ĠTEST _ NAV _ OPTIONS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Options Ġ= ĠTEST _ ROUTE _ OPTIONS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunsafe Parameters Ġ= ĠTEST _ UN SAFE _ PARAMETERS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Index able Records Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex able Records Distance Threshold Met ers Ġ= Ġ 5 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" Options Ġshould Ġbe Ġequal ", Ġexpected Options , Ġactual Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` Check ĠSearch Options Ġbuilder Ġwith Ġall Ġvalues Ġset Ġusing Ġlist Ġfunctions `() Ġ= ĠTestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġbuilder ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Build Ġnew ĠSearch Options Ġwith Ġall Ġvalues Ġset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Options Ġ= ĠSearch Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. prox imity ( TEST _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bounding Box ( TEST _ BOUND ING _ BOX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. countries ( listOf ( Country . UNIT ED _ K ING DOM , ĠCountry . B EL AR US )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request De bounce ( 3 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fuzzy Match ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. languages ( listOf ( Language . EN GL ISH , ĠLanguage (" by "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. limit ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. types ( listOf ( Query Type . ADDRESS , ĠQuery Type . COUNTRY , ĠQuery Type . DI STRICT )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. origin ( TEST _ ORIGIN _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigation Options ( TEST _ NAV _ OPTIONS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. route Options ( TEST _ ROUTE _ OPTIONS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. unsafe Parameters ( TEST _ UN SAFE _ PARAMETERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ignore Index able Records ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. index able Records Distance Threshold Met ers ( 1 0 0 . 1 2 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Options Ġ= ĠSearch Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprox imity Ġ= ĠTEST _ POINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounding Box Ġ= ĠTEST _ BOUND ING _ BOX , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountries Ġ= ĠlistOf ( Country . UNIT ED _ K ING DOM , ĠCountry . B EL AR US ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuzzy Match Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguages Ġ= ĠlistOf ( Language . EN GL ISH , ĠLanguage (" by ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtypes Ġ= ĠlistOf ( Query Type . ADDRESS , ĠQuery Type . COUNTRY , ĠQuery Type . DI STRICT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest De bounce Ġ= Ġ 3 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Ġ= ĠTEST _ ORIGIN _ POINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Options Ġ= ĠTEST _ NAV _ OPTIONS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Options Ġ= ĠTEST _ ROUTE _ OPTIONS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunsafe Parameters Ġ= ĠTEST _ UN SAFE _ PARAMETERS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Index able Records Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex able Records Distance Threshold Met ers Ġ= Ġ 1 0 0 . 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" Options Ġshould Ġbe Ġequal ", Ġexpected Options , Ġactual Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` Check Ġempty ĠSearch Options Ġmap To Core () Ġfunction `() Ġ= ĠTestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġbuilder ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Build Ġnew ĠSearch Options Ġwith Ġall Ġvalues Ġset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Options Ġ= ĠSearch Options (). map To Core () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Options Ġ= Ġcreate Test Core Search Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= ĠlistOf ( TEST _ LOCAL E . language ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" Options Ġshould Ġbe Ġas Ġexpected ", Ġexpected Options , Ġactual Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` Check Ġfilled ĠSearch Options Ġmap To Core () Ġfunction `() Ġ= ĠTestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġbuilder ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Build Ġnew ĠSearch Options Ġwith Ġall Ġvalues Ġset ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Options Ġ= ĠSearch Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. prox imity ( TEST _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bounding Box ( TEST _ BOUND ING _ BOX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. countries ( listOf ( Country . UNIT ED _ K ING DOM , ĠCountry . B EL AR US )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request De bounce ( 3 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fuzzy Match ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. languages ( listOf ( Language . EN GL ISH , ĠLanguage (" by "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. limit ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. types ( listOf ( Query Type . ADDRESS , ĠQuery Type . COUNTRY , ĠQuery Type . DI STRICT )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. origin ( TEST _ ORIGIN _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigation Options ( TEST _ NAV _ OPTIONS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. route Options ( TEST _ ROUTE _ OPTIONS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. unsafe Parameters ( TEST _ UN SAFE _ PARAMETERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ignore Index able Records ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. index able Records Distance Threshold Met ers ( 1 5 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Options Ġ= Ġoriginal Options . map To Core () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Options Ġ= Ġcreate Test Core Search Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprox imity Ġ= ĠTEST _ POINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Ġ= ĠTEST _ ORIGIN _ POINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Profile Ġ= ĠTEST _ NAV _ OPTIONS . navigation Profile . raw Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeta Type Ġ= ĠTEST _ NAV _ OPTIONS . eta Type ?. raw Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbbox Ġ= ĠTEST _ BOUND ING _ BOX . map To Core (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountries Ġ= ĠlistOf ( Country . UNIT ED _ K ING DOM , ĠCountry . B EL AR US ). map Ġ{ Ġit . code Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuzzy Match Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= ĠlistOf ( Language . EN GL ISH , ĠLanguage (" by ")). map Ġ{ Ġit . code Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtypes Ġ= ĠlistOf ( Query Type . ADDRESS , ĠQuery Type . COUNTRY , ĠQuery Type . DI STRICT ). map Ġ{ Ġit . map To Core () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore UR Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġur Distance Threshold Ġ= Ġ 1 5 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest De bounce Ġ= Ġ 3 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠTEST _ ROUTE _ OPTIONS . route , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsar Type Ġ= Ġ" iso chr one ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime De viation Ġ= ĠTEST _ ROUTE _ OPTIONS . time De viation Minutes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddon API Ġ= ĠHashMap ( TEST _ UN SAFE _ PARAMETERS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" Options Ġshould Ġbe Ġequal ", Ġexpected Options , Ġactual Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` Check Ġfilled ĠSearch Options Ġto Builder () Ġfunction `() Ġ= ĠTestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven (" Search Options ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Use Ġto Builder () Ġfunction Ġand Ġthen Ġbuild Ġnew ĠSearch Options ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠSearch Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprox imity Ġ= ĠTEST _ POINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounding Box Ġ= ĠTEST _ BOUND ING _ BOX , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountries Ġ= ĠlistOf ( Country . UNIT ED _ K ING DOM , ĠCountry . B EL AR US ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuzzy Match Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguages Ġ= ĠlistOf ( Language . EN GL ISH , ĠLanguage (" by ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġ 1 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtypes Ġ= ĠlistOf ( Query Type . ADDRESS , ĠQuery Type . COUNTRY , ĠQuery Type . DI STRICT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest De bounce Ġ= Ġ 3 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorigin Ġ= ĠTEST _ ORIGIN _ POINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Options Ġ= ĠTEST _ NAV _ OPTIONS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Options Ġ= ĠTEST _ ROUTE _ OPTIONS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunsafe Parameters Ġ= ĠTEST _ UN SAFE _ PARAMETERS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Index able Records Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex able Records Distance Threshold Met ers Ġ= Ġ 1 1 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" Options Ġshould Ġbe Ġequal ", Ġoptions , Ġoptions . to Builder (). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` Check Ġlimit Ġfield Ġfor ĠSearch Options Ġbuilder Ġand Ġconstructor `() Ġ= ĠTestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( 1 , Ġ 1 0 , ĠInt . MAX _ VALUE ). forEach Ġ{ Ġinput Value Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġwith Ġvalid Ġlimit Ġ= Ġ$ input Value ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Create ĠSearch Options Ġwith Ġbuilder ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Options Ġ= ĠSearch Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. limit ( input Value ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Value Ġ= Ġsearch Options . limit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" It Ġshould Ġbe Ġ<$ input Value >", Ġinput Value , Ġactual Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Create ĠSearch Options Ġwith Ġconstructor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Options Ġ= ĠSearch Options ( limit Ġ= Ġinput Value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Value Ġ= Ġsearch Options . limit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" It Ġshould Ġbe Ġ<$ input Value >", Ġinput Value , Ġactual Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠlistOf ( 0 , ĠInt . MIN _ VALUE , Ġ- 1 ). forEach Ġ{ Ġinput Value Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġwith Ġin el igible Ġlimit Ġ= Ġ$ input Value ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhen Throws (" Create ĠSearch Options Ġwith Ġbuilder ", ĠIllegalArgumentException :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. limit ( input Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhen Throws (" Create ĠSearch Options Ġwith Ġconstructor ", ĠIllegalArgumentException :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Options ( limit Ġ= Ġinput Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test Factory ĊĠĠĠ Ġfun Ġ` check Ġindex able Records Distance Threshold Met ers Ġfield Ġinitialization `() Ġ= ĠTestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf (. 0 , Ġ 1 . 0 , ĠDouble . POSITIVE _ INFINITY ). forEach Ġ{ Ġinput Value Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġwith Ġvalid Ġindex able Records Distance Threshold Met ers Ġ= Ġ$ input Value ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Create ĠSearch Options Ġwith Ġconstructor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Options Ġ= ĠSearch Options ( index able Records Distance Threshold Met ers Ġ= Ġinput Value ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Value Ġ= Ġsearch Options . index able Records Distance Threshold Met ers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" It Ġshould Ġbe Ġ<$ input Value >", Ġinput Value , Ġactual Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" Create ĠSearch Options Ġwith Ġbuilder ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Options Ġ= ĠSearch Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. index able Records Distance Threshold Met ers ( input Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Value Ġ= Ġsearch Options . index able Records Distance Threshold Met ers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" It Ġshould Ġbe Ġ<$ input Value >", Ġinput Value , Ġactual Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠlistOf (- 0 . 9 , Ġ- 1 . 0 , ĠDouble . NEGATIVE _ INFINITY ). forEach Ġ{ Ġinput Value Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" Search Options Ġwith Ġin el igible Ġindex able Records Distance Threshold Met ers Ġ= Ġ$ input Value ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhen Throws (" Create ĠSearch Options Ġwith Ġconstructor ", ĠIllegalArgumentException :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Options ( index able Records Distance Threshold Met ers Ġ= Ġinput Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWhen Throws (" Create ĠSearch Options Ġwith Ġbuilder ", ĠIllegalArgumentException :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. index able Records Distance Threshold Met ers ( input Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠTEST _ LOCAL E : ĠLocale Ġ= ĠLocale . EN GL ISH ĊĊĠĠĠĠĠĠĠ Ġval ĠTEST _ BOUND ING _ BOX : ĠBounding Box Ġ= ĠBounding Box . from Points ( Point . from Lng Lat ( 1 0 . 0 , Ġ 2 0 . 0 ), ĠPoint . from Lng Lat ( 2 0 . 0 , Ġ 3 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġval ĠTEST _ POINT : ĠPoint Ġ= ĠPoint . from Lng Lat ( 1 0 . 0 , Ġ 1 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġval ĠTEST _ ORIGIN _ POINT : ĠPoint Ġ= ĠPoint . from Lng Lat ( 2 0 . 0 , Ġ 2 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġval ĠTEST _ NAV _ OPTIONS : ĠSearch Navigation Options Ġ= ĠSearch Navigation Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Profile Ġ= ĠSearch Navigation Profile . DR IV ING , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeta Type Ġ= ĠE ta Type . NAV IG ATION ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠTEST _ ROUTE _ OPTIONS Ġ= ĠRoute Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠlistOf ( Point . from Lng Lat ( 1 . 0 , Ġ 2 . 0 ), ĠPoint . from Lng Lat ( 3 . 0 , Ġ 4 . 0 ), ĠPoint . from Lng Lat ( 5 . 0 , Ġ 6 . 0 )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeviation Ġ= ĠRoute Options . De viation . Time ( value Ġ= Ġ 5 , Ġunit Ġ= ĠTimeUnit . MIN UTES , Ġsar Type Ġ= ĠRoute Options . De viation . Sar Type . ISO CH ROME ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠTEST _ UN SAFE _ PARAMETERS : ĠMap < String , ĠString > Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" routing " Ġto Ġ" true ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" autocomplete " Ġto Ġ" false ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ