package Ġcom . will mad ison . battle ship . bo Ċ Ċ import Ġjunit . framework . TestCase .* Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠBoard Tests Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġboard : ĠBoard ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġship : ĠShip ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġboard Ġ= ĠBoard ( 4 ) ĊĠĠĠĠĠĠĠ Ġship Ġ= ĠC ru iser () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠInvalid Location Range Exception :: class ) ĊĠĠĠ Ġfun Ġship Placement Invalid Location _ throws () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrange Ġ= ĠLocation Range (" A 4 ", Ġ" A 1 ") ĊĠĠĠĠĠĠĠ Ġboard . place ( ship , Ġrange ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġship Placement Valid Location Range () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrange Ġ= ĠLocation Range (" A 1 ", Ġ" A 3 ") ĊĠĠĠĠĠĠĠ Ġboard . place ( ship , Ġrange ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġoccup ancy () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrange Ġ= ĠLocation Range (" A 1 ", Ġ" A 3 ") ĊĠĠĠĠĠĠĠ Ġboard . place ( ship , Ġrange ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( location Ġin ĠlistOf ( Location (' A ', Ġ 1 ), ĠLocation (' A ', Ġ 2 ), ĠLocation (' A ', Ġ 3 ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( board . is Occup ied ( location )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( location Ġin ĠlistOf ( Location (' B ', Ġ 1 ), ĠLocation (' B ', Ġ 2 ), ĠLocation (' B ', Ġ 3 ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( board . is Occup ied ( location )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠInvalid Ship Placement Exception :: class ) ĊĠĠĠ Ġfun Ġship Placement Over lapping Sh ips () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrange Ġ= ĠLocation Range (" A 1 ", Ġ" A 3 ") ĊĠĠĠĠĠĠĠ Ġboard . place ( ship , Ġrange ) ĊĊĊĠĠĠĠĠĠĠ Ġrange Ġ= ĠLocation Range (" A 2 ", Ġ" C 2 ") ĊĠĠĠĠĠĠĠ Ġboard . place ( C ru iser (), Ġrange ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġship Placement Non Over lapping Sh ips () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrange Ġ= ĠLocation Range (" A 1 ", Ġ" A 3 ") ĊĠĠĠĠĠĠĠ Ġboard . place ( ship , Ġrange ) ĊĊĠĠĠĠĠĠĠ Ġrange Ġ= ĠLocation Range (" A 4 ", Ġ" C 4 ") ĊĠĠĠĠĠĠĠ Ġboard . place ( C ru iser (), Ġrange ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( location Ġin ĠlistOf ( Location (' A ', Ġ 4 ), ĠLocation (' B ', Ġ 4 ), ĠLocation (' C ', Ġ 4 ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( board . is Occup ied ( location )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġboard Display () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals (""" =========== Ċ . Ġ 1 Ġ 2 Ġ 3 Ġ 4 Ċ A Ċ B Ċ C Ċ D Ċ ========== ="" ", ĠBoard ( 4 ). display ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ================== Ċ . Ġ 1 Ġ 2 Ġ 3 Ġ 4 Ġ 5 Ġ 6 Ġ 7 Ġ 8 Ċ A Ċ B Ċ C Ċ D Ċ E Ċ F Ċ G Ċ H Ċ ================ = ="" ", ĠBoard ( 8 ). display ()) ĊĊĠĠĠĠĠ ĠassertEquals (""" ================ ============= Ċ . Ġ 1 Ġ 2 Ġ 3 Ġ 4 Ġ 5 Ġ 6 Ġ 7 Ġ 8 Ġ 9 Ġ 1 0 Ġ 1 1 Ġ 1 2 Ċ A Ċ B Ċ C Ċ D Ċ E Ċ F Ċ G Ċ H Ċ I Ċ J Ċ K Ċ L Ċ ================ ============ ="" ", ĠBoard ( 1 2 ). display ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġattack Sequence () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrange Ġ= ĠLocation Range (" A 1 ", Ġ" A 3 ") ĊĠĠĠĠĠĠĠ Ġboard . place ( ship , Ġrange ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġboard . attack ( Location (' A ', Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Hit . ĠC ru iser .", Ġresult ) ĊĊĠĠĠĠĠĠĠ Ġboard . attack ( Location (' A ', Ġ 1 )) ĊĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġboard . attack ( Location (' B ', Ġ 1 7 )) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Invalid ĠLocation ĠB 1 7 . ĠPlease Ġselect Ġanother Ġlocation .", Ġresult ) ĊĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġboard . attack ( Location (' B ', Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Miss !", Ġresult ) ĊĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġboard . attack ( Location (' A ', Ġ 3 )) ĊĠĠĠĠĠĠĠ ĠassertEquals (" S unk ĠC ru iser Ġof Ġlength Ġ 3 !", Ġresult ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" =========== Ċ . Ġ 1 Ġ 2 Ġ 3 Ġ 4 Ċ A ĠH ĠH ĠH Ċ B ĠM Ċ C Ċ D Ċ ========== ="" ", Ġboard . display ()) ĊĠĠĠ Ġ} Ċ }