package Ġcom . ably . tracking . publisher Ċ Ċ import Ġcom . ably . tracking . test . common . any Location Ċ import Ġcom . ably . tracking . test . common . create Location Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ internal Ġclass ĠThreshold Checker Test Ġ{ ĊĠĠĠ Ġval Ġthreshold Checker Ġ= ĠThreshold Checker () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġnot Ġreached Ġwhen Ġcurrent Ġlocation Ġis Ġnot Ġwithin Ġspatial Ġthreshold Ġfrom Ġdestination `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( spatial Ġ= Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Location Ġ= Ġcreate Location ( 1 0 . 0 , Ġ 1 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĠDestination ( 1 . 0 , Ġ 1 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Location , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( is Threshold Reached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġreached Ġwhen Ġcurrent Ġlocation Ġis Ġwithin Ġspatial Ġthreshold Ġfrom Ġdestination `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( spatial Ġ= Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Location Ġ= Ġcreate Location ( 1 . 0 0 0 0 0 1 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĠDestination ( 1 . 0 , Ġ 1 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Location , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( is Threshold Reached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġnot Ġreached Ġwhen Ġcurrent Ġtime Ġis Ġnot Ġwithin Ġtemporal Ġthreshold Ġfrom Ġestimated Ġar rival Ġtime `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( temporal Ġ= Ġ 5 0 0 L ) ĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġestimated Arrival TimeIn Milliseconds Ġ= ĠcurrentTime Ġ+ Ġ 1 0 0 0 L ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġany Location (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Arrival TimeIn Milliseconds ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( is Threshold Reached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġreached Ġwhen Ġcurrent Ġtime Ġis Ġwithin Ġtemporal Ġthreshold Ġfrom Ġestimated Ġar rival Ġtime `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( temporal Ġ= Ġ 5 0 0 L ) ĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġestimated Arrival TimeIn Milliseconds Ġ= ĠcurrentTime Ġ+ Ġ 3 0 0 L ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġany Location (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Arrival TimeIn Milliseconds ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( is Threshold Reached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġreached Ġwhen Ġspatial Ġthreshold Ġis Ġreached Ġbut Ġtemporal Ġthreshold Ġisn 't Ġreached `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( spatial Ġ= Ġ 1 . 0 , Ġtemporal Ġ= Ġ 5 0 0 L ) ĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Location Ġ= Ġcreate Location ( 1 . 0 0 0 0 0 1 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĠDestination ( 1 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġestimated Arrival TimeIn Milliseconds Ġ= ĠcurrentTime Ġ+ Ġ 1 5 0 0 L ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Location , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Arrival TimeIn Milliseconds ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( is Threshold Reached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġreached Ġwhen Ġspatial Ġthreshold Ġisn 't Ġreached Ġbut Ġtemporal Ġthreshold Ġis Ġreached `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( spatial Ġ= Ġ 1 . 0 , Ġtemporal Ġ= Ġ 5 0 0 L ) ĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Location Ġ= Ġcreate Location ( 2 0 . 0 , Ġ 2 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĠDestination ( 1 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġestimated Arrival TimeIn Milliseconds Ġ= ĠcurrentTime Ġ+ Ġ 3 0 0 L ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Location , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Arrival TimeIn Milliseconds ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( is Threshold Reached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġreached Ġwhen Ġboth Ġspatial Ġthreshold Ġand Ġtemporal Ġthresholds Ġare Ġreached `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( spatial Ġ= Ġ 1 . 0 , Ġtemporal Ġ= Ġ 5 0 0 L ) ĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Location Ġ= Ġcreate Location ( 1 . 1 , Ġ 1 . 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĠDestination ( 1 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġestimated Arrival TimeIn Milliseconds Ġ= ĠcurrentTime Ġ+ Ġ 3 0 0 L ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Location , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Arrival TimeIn Milliseconds ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( is Threshold Reached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġnot Ġreached Ġwhen Ġboth Ġspatial Ġthreshold Ġand Ġtemporal Ġthresholds Ġaren 't Ġreached `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( spatial Ġ= Ġ 1 . 0 , Ġtemporal Ġ= Ġ 5 0 0 L ) ĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Location Ġ= Ġcreate Location ( 2 0 . 0 , Ġ 2 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĠDestination ( 1 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġestimated Arrival TimeIn Milliseconds Ġ= ĠcurrentTime Ġ+ Ġ 1 5 0 0 L ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Location , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Arrival TimeIn Milliseconds ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( is Threshold Reached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` threshold Ġis Ġnot Ġreached Ġwhen Ġboth Ġdestination Ġand Ġestimated Ġar rival Ġtime Ġare Ġnull s `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġthreshold Ġ= ĠDefault Prox imity ( spatial Ġ= Ġ 1 . 0 , Ġtemporal Ġ= Ġ 5 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġis Threshold Reached Ġ= Ġthreshold Checker . is Threshold Reached ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreshold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġany Location (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( is Threshold Reached ) ĊĠĠĠ Ġ} Ċ } Ċ