import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠTests Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Spaces Reach able () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 5 , Ġy = 2 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 7 , Ġx = 4 9 5 .. 5 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 1 , Ġy = 3 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 8 , Ġy = 2 .. 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 6 , Ġy = 1 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 8 , Ġy = 1 0 .. 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 4 , Ġy = 1 0 .. 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 1 3 , Ġx = 4 9 8 .. 5 0 4 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 9 , ĠGround Map . parse ( input ). spaces Reach able ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Spaces Reach able _ does Not Count Above Min Y () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 9 , Ġy = 2 .. 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 2 , Ġy = 2 .. 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 3 , Ġx = 5 0 0 .. 5 0 1 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠGround Map . parse ( input ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .+ .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| #### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnd Ġstate Ġlooks Ġlike Ġthis , Ġbut Ġthe Ġspaces Ġat Ġy = 1 Ġdon 't Ġcount : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ.. + ... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| |||| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~~ # | ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| #### | ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġstate . spaces Reach able ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Parse () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 5 , Ġy = 2 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 7 , Ġx = 4 9 5 .. 5 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 1 , Ġy = 3 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 8 , Ġy = 2 .. 4 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 5 , Ġ 2 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 5 , Ġ 3 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 5 , Ġ 4 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 5 , Ġ 5 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 5 , Ġ 6 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 5 , Ġ 7 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 6 , Ġ 7 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 7 , Ġ 7 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 8 , Ġ 2 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 8 , Ġ 3 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 8 , Ġ 4 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 8 , Ġ 7 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 4 9 9 , Ġ 7 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 5 0 0 , Ġ 7 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 5 0 1 , Ġ 7 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 5 0 0 , Ġ 0 ) Ġto ĠSpace . Spring , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 5 0 1 , Ġ 3 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 5 0 1 , Ġ 4 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 5 0 1 , Ġ 5 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 5 0 1 , Ġ 6 ) Ġto ĠSpace . C lay , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCoord ( 5 0 1 , Ġ 6 ) Ġto ĠSpace . C lay ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , ĠGround Map . parse ( input ). spaces ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest ToString () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 5 , Ġy = 2 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 7 , Ġx = 4 9 5 .. 5 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 1 , Ġy = 3 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 8 , Ġy = 2 .. 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 6 , Ġy = 1 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 8 , Ġy = 1 0 .. 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 4 , Ġy = 1 0 .. 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 1 3 , Ġx = 4 9 8 .. 5 0 4 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ..... + ...... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ........ ... # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. # ....... # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. # .. # ..... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. # .. # ..... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ..... # ..... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ..... # ..... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ####### ..... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ........ .... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ........ .... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... # ..... # .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... # ..... # .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... # ..... # .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... ####### .. ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , ĠGround Map . parse ( input ). toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠNote : ĠThis Ġtest Ġis Ġmore Ġdiagnostic Ġthan Ġdescriptive . ĠIt Ġexercises Ġimplementation ĊĠĠĠ Ġ// Ġdetails Ġrather Ġthan Ġany Ġwell - defined Ġexternal Ġbehavior . ĠIf Ġthe Ġother Ġtests Ġpass ĊĠĠĠ Ġ// Ġand Ġthis Ġone Ġfails , Ġthen Ġthis Ġone Ġis Ġprobably Ġ" wrong ". ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Advance () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 7 , Ġy = 1 .. 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 1 , Ġy = 1 .. 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 9 , Ġy = 2 .. 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 5 , Ġx = 4 9 7 .. 5 0 0 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠGround Map . parse ( input ) ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... +. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. | # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .# | # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .# | # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~~~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ##### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... +. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. | # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .# | # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .# ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~~~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ##### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... +. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. | # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .# ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .# ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~~~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ##### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... +. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ||| # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # | # ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~ # ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~~~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ##### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... +. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ||| # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~ # ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~ # ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~~~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ##### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... +. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~~~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~ # ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~ # ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # ~~~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ##### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Advance _ does Not Spread Ac ross Bottom () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 9 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 1 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 3 , Ġx = 4 9 9 .. 5 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 7 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 3 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠGround Map . parse ( input ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... + ... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ....... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .# .# .# ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. ### .. ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... + ... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| . |||| |. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # | # ~ # | # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .| ### |. ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Advance _ does Not Spread Ac ross Bottom _ more Complex Case () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 6 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 4 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 9 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 1 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 3 , Ġx = 4 9 9 .. 5 0 1 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠGround Map . parse ( input ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .... + .... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .... ..... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. # .# .. # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... ### ... ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .... + .... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. |||| | .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .| # ~ # |. # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. | ### | .. ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Advance _ sp ill To Edge () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 9 , Ġy = 2 .. 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 2 , Ġy = 1 .. 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 3 , Ġx = 5 0 0 .. 5 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 3 , Ġx = 4 9 7 .. 4 9 7 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠGround Map . parse ( input ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... + .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ..... # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. # .. # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| #. #### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... + .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| . |||| # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .| # ~~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # | #### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Advance _ sp ill To Both Edges () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 9 , Ġy = 2 .. 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 2 , Ġy = 2 .. 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 3 , Ġx = 5 0 0 .. 5 0 1 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠGround Map . parse ( input ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .+ .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| # .. # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| #### ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. + ... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| |||| | ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| # ~~ # | ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| #### | ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Advance _ drop On to Water () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 4 9 9 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 1 , Ġy = 2 .. 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 3 , Ġx = 4 9 9 .. 5 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 3 , Ġy = 5 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 1 , Ġy = 6 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| x = 5 0 2 , Ġy = 7 .. 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| y = 9 , Ġx = 4 9 7 .. 5 0 1 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠGround Map . parse ( input ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ... + ... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ....... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. # .# .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. ### .. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ....... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ...... # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .... # .# ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .... ### ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ....... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ##### .. ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĠĠĠĠĠĠĠ Ġstate . advance () ĊĊĠĠĠĠĠĠĠ ĠassertEquals (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .... + ... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. |||| |. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. | # ~ # |. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. | ### |. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. | ... |. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. |. ||| # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. |. | # ~ # ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| .. |. | ### ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| |||| || . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ##### |. ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin (), Ġstate . toString ()) ĊĠĠĠ Ġ} Ċ }