package Ġorg . hex works . z ir con . api . data Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . hex works . z ir con . api . Positions Ċ import Ġorg . hex works . z ir con . api . builder . component . Panel Builder Ċ import Ġorg . hex works . z ir con . api . component . Component Ċ import Ġorg . hex works . z ir con . api . data . impl . Grid Position Ċ import Ġorg . hex works . z ir con . api . data . impl . Pixel Position Ċ import Ġorg . hex works . z ir con . internal . resource . BuiltIn CP 4 3 7 Tile set Resource Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠPosition Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcomponent Stub : ĠComponent ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponent Stub Ġ= ĠPanel Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Position ( COMPONENT _ POSITION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Size ( COMPONENT _ SIZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠshouldBe Unknown When Unknown () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . unknown (). is Unknown ). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Not Be Unknown When Not Unknown () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . unknown (). isNot Unknown ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠshouldBe GreaterThan When Y Is Greater () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 1 , Ġ 2 )). is GreaterThan ( Position . create ( 1 , Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġshould Throw Exception When Trying To Plus Different Types () Ġ{ ĊĠĠĠĠĠĠĠ ĠPixel Position . create ( 1 , Ġ 2 ) Ġ+ ĠGrid Position . create ( 1 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġshould Throw Exception When Trying To Minus Different Types () Ġ{ ĊĠĠĠĠĠĠĠ ĠPixel Position . create ( 1 , Ġ 2 ) Ġ- ĠGrid Position . create ( 1 , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠshouldBe GreaterThan When Y Is Equal And X Is Greater () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 2 , Ġ 2 )). is GreaterThan ( Position . create ( 1 , Ġ 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠshouldBe Equal Than When Y Is Equal And X Is Equal () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 2 , Ġ 2 )). isEqual By Comp aring To ( Position . create ( 2 , Ġ 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠshouldBe Less Then When Y Is LessThan () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 1 , Ġ 2 )). is LessThan ( Position . create ( 1 , Ġ 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly ConvertTo Pixel Position () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 2 , Ġ 2 ). to Pixel Position ( BuiltIn CP 4 3 7 Tile set Resource . W AND ER L UST _ 1 6 X 1 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Pixel Position . create ( 3 2 , Ġ 3 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Plus Two Positions When Both Are Positive () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Positions . create ( 1 , Ġ 2 ). plus ( Positions . create ( 2 , Ġ 3 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Positions . create ( 3 , Ġ 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Plus Two Positions When One Is Negative () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Positions . create (- 1 , Ġ- 2 ). plus ( Positions . create ( 2 , Ġ 3 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Positions . create ( 1 , Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Plus Two Pixel Positions When Both Are Positive () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Pixel Position . create ( 1 , Ġ 2 ). plus ( Pixel Position . create ( 2 , Ġ 3 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Pixel Position . create ( 3 , Ġ 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Plus Two Pixel Positions When One Is Negative () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Pixel Position . create (- 1 , Ġ- 2 ). plus ( Pixel Position . create ( 2 , Ġ 3 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Pixel Position . create ( 1 , Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Minus Two Positions When Both Are Positive () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Positions . create ( 5 , Ġ 4 ). minus ( Positions . create ( 1 , Ġ 2 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Positions . create ( 4 , Ġ 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Minus Two Positions When One Is Negative () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Positions . create (- 1 , Ġ- 2 ). minus ( Positions . create ( 2 , Ġ 3 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Positions . create (- 3 , Ġ- 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Minus Two Pixel Positions When Both Are Positive () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Pixel Position . create ( 5 , Ġ 4 ). minus ( Pixel Position . create ( 1 , Ġ 2 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Pixel Position . create ( 4 , Ġ 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Minus Two Pixel Positions When One Is Negative () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Pixel Position . create (- 1 , Ġ- 2 ). minus ( Pixel Position . create ( 2 , Ġ 3 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Pixel Position . create (- 3 , Ġ- 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Create New Position With Y When With Y Is Called () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠTHREE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠInt . MAX _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Y ( TWO )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( TWO _ TH REE _ POS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Create New Position With Relative Y When With Relative Y Is Called () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠTHREE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠTWO Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Relative Y ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( TWO _ TH REE _ POS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Create New Position With X When With X Is Called () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠInt . MAX _ VALUE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠTWO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with X ( TH REE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( TWO _ TH REE _ POS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Create New Position With Relative X When With Relative X Is Called () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠTHREE Ġ- Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠTWO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Relative X ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( TWO _ TH REE _ POS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Create New Position With Relative Values When With Relative Is Called () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠTHREE Ġ- Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠTWO Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Relative ( Position . create ( 1 , Ġ 1 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( TWO _ TH REE _ POS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould CompareTo Equal When Y Is Equal And X Is Equal () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( TWO _ TH REE _ POS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( TWO _ TH REE _ POS ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Add Two Positions () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 5 , Ġ 4 ) Ġ+ ĠPosition . create ( 1 , Ġ 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Position . create ( 6 , Ġ 7 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Subtract Two Positions () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 5 , Ġ 4 ) Ġ- ĠPosition . create ( 4 , Ġ 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Position . create ( 1 , Ġ 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Top Left When New Pos Would Be Top Left With X () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 1 , Ġ 0 ). with X ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Same As ( Position . zero ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Top Left When New Pos Would Be Top Left With Relative X () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 1 , Ġ 0 ). with Relative X (- 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Same As ( Position . zero ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Top Left When New Pos Would Be Top Left With Y () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 0 , Ġ 1 ). with Y ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Same As ( Position . zero ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Top Left When New Pos Would Be Top Left With Relative Y () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( Position . create ( 0 , Ġ 1 ). with Relative Y (- 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Same As ( Position . zero ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Pro per Position Using Relative To Top Of Component () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠPosition . create ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPosition . create ( 3 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġposition . relative To Top Of ( component Stub ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Pro per Position Using Relative To Top Of Component When New Position Would Be Negative () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠPosition . create ( 1 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPosition . create ( 3 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġposition . relative To Top Of ( component Stub ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Pro per Position Using Relative To Right Of Component () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠPosition . create ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPosition . create ( 7 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġposition . relative To Right Of ( component Stub ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Pro per Position Using Relative To Bottom Of Component () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠPosition . create ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPosition . create ( 3 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġposition . relative To Bottom Of ( component Stub ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Pro per Position Using Relative To Left Of Component () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠPosition . create ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPosition . create ( 1 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġposition . relative To Left Of ( component Stub ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Pro per Position Using Relative To Left Of Component When New Position Would Be Negative () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= ĠPosition . create ( 9 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠPosition . create ( 0 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġposition . relative To Left Of ( component Stub ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠCOMPONENT _ POSITION Ġ= ĠPosition . create ( 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval ĠCOMPONENT _ SIZE Ġ= ĠSize . create ( 4 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTWO Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTHREE Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġval ĠTWO _ TH REE _ POS Ġ= ĠPosition . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠTHREE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠTWO ) ĊĠĠĠ Ġ} Ċ } Ċ