import Ġcom . google . common . truth . Truth Ċ import Ġcom . planes _ multi player . single _ player _ engine . Coordinate 2 D Ċ import Ġcom . planes _ multi player . single _ player _ engine . Orientation Ċ import Ġcom . planes _ multi player . single _ player _ engine . Plane Ċ import Ġcom . planes _ multi player . single _ player _ engine . Plane Point Iterator Ċ import Ġorg . junit . Test Ċ Ċ class ĠPlane Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠPlane _ add () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpl Ġ= ĠPlane ( 0 , Ġ 0 , ĠOrientation . East West ) ĊĠĠĠĠĠĠĠ Ġval Ġpl _ copy Ġ= Ġpl . clone () Ġas ĠPlane ĊĠĠĠĠĠĠĠ Ġval Ġpl _ add Ġ= Ġpl . add ( Coordinate 2 D ( 1 , Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl _ add . head (). x () Ġ== Ġ 1 ). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl _ add . head (). y () Ġ== Ġ 2 ). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl . orientation () Ġ=== Ġpl _ copy . orientation ()). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠPlane _ rotate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpl Ġ= ĠPlane ( 0 , Ġ 0 , ĠOrientation . East West ) ĊĠĠĠĠĠĠĠ Ġval Ġpl _ copy Ġ= Ġpl . clone () Ġas ĠPlane ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpl . rotate () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl . head (). equals ( pl _ copy . head ())). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl . equals ( pl _ copy )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠPlane _ translate When Head Pos Valid () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġval Ġcols Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġval Ġpl Ġ= ĠPlane ( rows Ġ/ Ġ 2 , Ġ 0 , ĠOrientation . North South ) ĊĠĠĠĠĠĠĠ Ġpl . translate When Head Pos Valid (- 1 , Ġ- 1 , Ġrows , Ġcols ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl . head ()). isEqualTo ( Coordinate 2 D ( rows Ġ/ Ġ 2 , Ġ 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠPlane _ contains Point () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpl Ġ= ĠPlane ( 0 , Ġ 0 , ĠOrientation . East West ) ĊĠĠĠĠĠĠĠ Ġval Ġp pi Ġ= ĠPlane Point Iterator ( pl ) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( ppi . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= Ġp pi . next () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl . contains Point ( point )). isTrue () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpl 1 Ġ= ĠPlane ( 0 , Ġ 0 , ĠOrientation . West East ) ĊĠĠĠĠĠĠĠ Ġval Ġp pi 1 Ġ= ĠPlane Point Iterator ( pl 1 ) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( ppi 1 . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= Ġp pi 1 . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( point . equals ( pl 1 . head ())) Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl . contains Point ( point )). isFalse () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠPlane _ is Position Valid () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġval Ġcols Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġval Ġpl Ġ= ĠPlane ( rows Ġ/ Ġ 2 , Ġcols Ġ/ Ġ 2 , ĠOrientation . West East ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl . is Position Valid ( rows , Ġcols )). isTrue () ĊĠĠĠĠĠĠĠ Ġval Ġpl 1 Ġ= ĠPlane ( 1 , Ġcols Ġ/ Ġ 2 , ĠOrientation . North South ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( pl 1 . is Position Valid ( rows , Ġcols )). isFalse () ĊĠĠĠ Ġ} Ċ }