/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 2 ĠNew ĠVector ĠLtd Ċ Ġ* Ċ Ġ* Ġ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 Ġim . vector . app . features . location . domain . use case Ċ Ċ import Ġcom . air bnb . mv rx . test . Mv Rx Test Rule Ċ import Ġim . vector . app . features . location . Location Data Ċ import Ġim . vector . app . test . f akes . Fake Session Ċ import Ġio . mock k . Mock K Annotations Ċ import Ġio . mock k . impl . annotations . Override Mock Ks Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ Ċ class ĠCompare Locations UseCase Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġmv Rx Test Rule Ġ= ĠM v Rx Test Rule () ĊĊĠĠĠ Ġprivate Ġval Ġsession Ġ= ĠFake Session () ĊĊĠĠĠ Ġ@ Override Mock Ks ĊĠĠĠ Ġlateinit Ġvar Ġcompare Locations UseCase : ĠCompare Locations UseCase ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġ 2 Ġvery Ġnear Ġlocations Ġwhen Ġcalling Ġexecute Ġthen Ġthese Ġlocations Ġare Ġconsidered Ġas Ġequal `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġlocation 1 Ġ= ĠLocation Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġ 4 8 . 8 5 8 2 6 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude Ġ= Ġ 2 . 2 9 4 5 5 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuncertainty Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlocation 2 Ġ= ĠLocation Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġ 4 8 . 8 5 8 2 7 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude Ġ= Ġ 2 . 2 9 4 5 4 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuncertainty Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġare Equal Ġ= Ġcompare Locations UseCase . execute ( location 1 , Ġlocation 2 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġassert ( are Equal ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` given Ġ 2 Ġfar Ġaway Ġlocations Ġwhen Ġcalling Ġexecute Ġthen Ġthese Ġlocations Ġare Ġconsidered Ġas Ġnot Ġequal `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġlocation 1 Ġ= ĠLocation Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġ 4 8 . 8 5 8 2 6 9 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude Ġ= Ġ 2 . 2 9 4 5 5 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuncertainty Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlocation 2 Ġ= ĠLocation Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġ 4 8 . 8 6 1 7 7 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude Ġ= Ġ 2 . 2 8 9 3 4 8 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuncertainty Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġare Equal Ġ= Ġcompare Locations UseCase . execute ( location 1 , Ġlocation 2 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġassert ( are Equal . not ()) ĊĠĠĠ Ġ} Ċ } Ċ