package Ġcom . contracts And States . states Ċ Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠTile Corner Index Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġreject s Ġa Ġnegative Ġindex `() Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index (- 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġreject s Ġa Ġtoo Ġlarge Ġindex `() Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( Hex Tile . SIDE _ COUNT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` value Ġis Ġwhat Ġyou Ġpass Ġto Ġthe Ġconstructor `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , ĠTile Corner Index ( 3 ). value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġgets Ġthe Ġright Ġnext `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 0 ), ĠTile Corner Index ( 5 ). next ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 1 ), ĠTile Corner Index ( 0 ). next ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 2 ), ĠTile Corner Index ( 1 ). next ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 3 ), ĠTile Corner Index ( 2 ). next ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 4 ), ĠTile Corner Index ( 3 ). next ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 5 ), ĠTile Corner Index ( 4 ). next ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġgets Ġthe Ġright Ġprevious `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 0 ), ĠTile Corner Index ( 1 ). previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 1 ), ĠTile Corner Index ( 2 ). previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 2 ), ĠTile Corner Index ( 3 ). previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 3 ), ĠTile Corner Index ( 4 ). previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 4 ), ĠTile Corner Index ( 5 ). previous ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 5 ), ĠTile Corner Index ( 0 ). previous ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġgets Ġthe Ġright Ġopposite `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 0 ), ĠTile Corner Index ( 3 ). op pos ite ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 1 ), ĠTile Corner Index ( 4 ). op pos ite ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 2 ), ĠTile Corner Index ( 5 ). op pos ite ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 3 ), ĠTile Corner Index ( 0 ). op pos ite ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 4 ), ĠTile Corner Index ( 1 ). op pos ite ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Tile Corner Index ( 5 ), ĠTile Corner Index ( 2 ). op pos ite ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġgets Ġthe Ġright Ġadjacent Ġsides `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Side Index ( 0 ), ĠTile Side Index ( 1 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 1 ). get Adjacent Side s ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Side Index ( 1 ), ĠTile Side Index ( 2 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 2 ). get Adjacent Side s ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Side Index ( 2 ), ĠTile Side Index ( 3 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 3 ). get Adjacent Side s ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Side Index ( 3 ), ĠTile Side Index ( 4 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 4 ). get Adjacent Side s ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Side Index ( 4 ), ĠTile Side Index ( 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 5 ). get Adjacent Side s ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Side Index ( 5 ), ĠTile Side Index ( 0 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 0 ). get Adjacent Side s ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġgets Ġthe Ġright Ġnext Ġover l apped Ġcorner `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 1 ). getNext Over l apped Corner ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 2 ). getNext Over l apped Corner ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 3 ). getNext Over l apped Corner ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 4 ). getNext Over l apped Corner ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 5 ). getNext Over l apped Corner ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 0 ). getNext Over l apped Corner ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġgets Ġthe Ġright Ġover l apped Ġcorners `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Corner Index ( 3 ), ĠTile Corner Index ( 5 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 1 ). get Over l apped C orners ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Corner Index ( 4 ), ĠTile Corner Index ( 0 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 2 ). get Over l apped C orners ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Corner Index ( 5 ), ĠTile Corner Index ( 1 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 3 ). get Over l apped C orners ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Corner Index ( 0 ), ĠTile Corner Index ( 2 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 4 ). get Over l apped C orners ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Corner Index ( 1 ), ĠTile Corner Index ( 3 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 5 ). get Over l apped C orners ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Tile Corner Index ( 2 ), ĠTile Corner Index ( 4 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTile Corner Index ( 0 ). get Over l apped C orners ()) ĊĠĠĠ Ġ} Ċ }