/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 2 1 ĠThe ĠBoard Game Work ĠAuthors Ċ Ġ* ĠĠĠ ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ Ġ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 Ġutil . coordinates Ċ Ċ import ĠDOUBLE _ TO LER ANCE Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġtools . a qua . bg w . util . Coordinate Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNot Equals Ċ Ċ class ĠCoordinate Test Ġ{ ĊĉĊ ĉ private Ġlateinit Ġvar Ġcoordinate A : ĠCoordinate Ċ ĉ private Ġlateinit Ġvar Ġcoordinate B : ĠCoordinate ĊĉĊ ĉ @ BeforeEach Ċ ĉ fun ĠsetUp () Ġ{ Ċĉ ĉ coordinate A Ġ= ĠCoordinate ( 5 0 , Ġ 1 0 0 ) Ċĉ ĉ coordinate B Ġ= ĠCoordinate (- 3 0 , Ġ 2 5 ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġget ") Ċ ĉ fun ĠtestGet () Ġ{ Ċĉ ĉ assertEquals ( 5 0 . 0 , Ġcoordinate A . x Coord ) Ċĉ ĉ assertEquals ( 1 0 0 . 0 , Ġcoordinate A . y Coord ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġplus ") Ċ ĉ fun Ġtest Plus () Ġ{ Ċĉ ĉ val Ġcoordinate C Ġ= Ġcoordinate A Ġ+ Ġcoordinate B Ċĉ ĉ assertEquals ( 2 0 . 0 , Ġcoordinate C . x Coord ) Ċĉ ĉ assertEquals ( 1 2 5 . 0 , Ġcoordinate C . y Coord ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġminus ") Ċ ĉ fun Ġtest Minus () Ġ{ Ċĉ ĉ val Ġcoordinate C Ġ= Ġcoordinate A Ġ- Ġcoordinate B Ċĉ ĉ assertEquals ( 8 0 . 0 , Ġcoordinate C . x Coord ) Ċĉ ĉ assertEquals ( 7 5 . 0 , Ġcoordinate C . y Coord ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġrotation ") Ċ ĉ fun Ġtest Rotation () Ġ{ Ċĉ ĉ val Ġcoordinate C Ġ= Ġcoordinate A . rot ated ( 9 0 . 0 ) Ċĉ ĉ assertEquals (- 1 0 0 . 0 , Ġcoordinate C . x Coord , ĠDOUBLE _ TO LER ANCE ) Ċĉ ĉ assertEquals ( 5 0 . 0 , Ġcoordinate C . y Coord , ĠDOUBLE _ TO LER ANCE ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġrotation Ġaround Ġpivot ") Ċ ĉ fun Ġtest Rotation Pivot () Ġ{ Ċĉ ĉ val Ġcoordinate C Ġ= Ġcoordinate A . rot ated ( 9 0 . 0 , ĠCoordinate ( 5 0 , Ġ 5 0 )) Ċĉ ĉ assertEquals ( 0 . 0 , Ġcoordinate C . x Coord , ĠDOUBLE _ TO LER ANCE ) Ċĉ ĉ assertEquals ( 5 0 . 0 , Ġcoordinate C . y Coord , ĠDOUBLE _ TO LER ANCE ) Ċ ĉ } ĊĉĊ ĉ @ Test Ċ ĉ @ DisplayName (" Test Ġequals Ġand ĠhashCode ") Ċ ĉ fun Ġtest Equals () Ġ{ Ċĉ ĉ assertEquals ( coordinate A , ĠCoordinate ( coordinate A . x Coord , Ġcoordinate A . y Coord )) Ċĉ ĉ assertEquals ( coordinate A . hashCode (), ĠCoordinate ( coordinate A . x Coord , Ġcoordinate A . y Coord ). hashCode ()) ĊĉĉĊĉ ĉ assertNot Equals ( coordinate A , Ġcoordinate B ) Ċĉ ĉ assertNot Equals ( coordinate A . hashCode (), Ġcoordinate B . hashCode ()) Ċ ĉ } Ċ }