package Ġnl . kel pin . f le ur . ad vent 2 0 1 8 Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Tag Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠDay 0 6 Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= ĠDay 0 6 ( resource As List (" day 0 6 - sample . txt ")) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠDay 0 6 ( resource As List (" day 0 6 . txt ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Load s Ġdefault Ġinput `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( sample . points ). isEqualTo ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint ( 1 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint ( 1 , Ġ 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint ( 8 , Ġ 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint ( 3 , Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint ( 5 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint ( 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ranges `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( sample . x Range ). isEqualTo ( 1 .. 8 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( sample . y Range ). isEqualTo ( 1 .. 9 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` man h att an Ġdistance Ġis Ġdefined Ġproperly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠPoint ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= ĠPoint ( 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( a . distance To ( b )). isEqualTo ( 1 5 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( b . distance To ( a )). isEqualTo ( 1 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` closest Ġpoint `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( sample . closest Point ( Point ( 3 , 2 ))). isEqualTo ( Point ( 3 , Ġ 4 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( sample . closest Point ( Point ( 0 , 4 ))). isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Part Ġ 1 Ġsample Ġdata `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( sample . part 1 ()). isEqualTo ( 1 7 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Tag (" Solution ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Part Ġ 1 Ġsolution `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( actual . part 1 ()). isEqualTo ( 5 3 6 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Total Ġdistance `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( sample . total Distance ( Point ( 4 , 3 ))). isEqualTo ( 3 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Part Ġ 2 Ġsample Ġdata `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( sample . part 2 ( 3 2 )). isEqualTo ( 1 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Tag (" Solution ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Part Ġ 2 Ġsolution `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( actual . part 2 ( 1 0 _ 0 0 0 )). isEqualTo ( 4 2 5 1 3 ) ĊĠĠĠ Ġ} Ċ }