import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ Ċ class ĠL ost Robot Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ robot _ on _ edge _ of _ north _ bounds _ when _ moving _ out _ of _ bounds _ then _ mark _ as _ lost _ and _ leave _ sc ent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 0 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . NORTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 0 , Ġ 1 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ robot _ on _ edge _ of _ east _ bounds _ when _ moving _ out _ of _ bounds _ then _ mark _ as _ lost _ and _ leave _ sc ent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . EAST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 0 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ robot _ on _ edge _ of _ south _ bounds _ when _ moving _ out _ of _ bounds _ then _ mark _ as _ lost _ and _ leave _ sc ent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 0 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . SO UTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 0 , Ġ 0 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ robot _ on _ edge _ of _ west _ bounds _ when _ moving _ out _ of _ bounds _ then _ mark _ as _ lost _ and _ leave _ sc ent () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 0 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . WEST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 0 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 0 , Ġ 0 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ north _ side _ and _ facing _ north _ when _ moving _ forward _ then _ do _ nothing () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . NORTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ north _ side _ and _ facing _ east _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . EAST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ north _ side _ and _ facing _ south _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . SO UTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ north _ side _ and _ facing _ west _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . WEST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ east _ side _ and _ facing _ north _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 2 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . NORTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 2 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 2 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ east _ side _ and _ facing _ east _ when _ moving _ forward _ then _ do _ nothing () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 2 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . EAST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 2 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 2 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ east _ side _ and _ facing _ south _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 2 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . SO UTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 2 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 2 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ east _ side _ and _ facing _ west _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 2 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . WEST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 2 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 2 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ south _ side _ and _ facing _ north _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . NORTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 0 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ south _ side _ and _ facing _ east _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . EAST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 0 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ south _ side _ and _ facing _ south _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . SO UTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 0 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ south _ side _ and _ facing _ south _ when _ moving _ forward _ then _ do _ nothing () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . SO UTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 0 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ south _ side _ and _ facing _ west _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 1 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . WEST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 1 , 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 1 , Ġ 0 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ west _ side _ and _ facing _ north _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 0 , 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . NORTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 0 , 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 0 , Ġ 0 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ west _ side _ and _ facing _ east _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 0 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . EAST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 0 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 0 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ west _ side _ and _ facing _ south _ when _ moving _ forward _ then _ move _ if _ room () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 0 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . SO UTH ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 0 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 0 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġgiven _ sc ent _ on _ west _ side _ and _ facing _ west _ when _ moving _ forward _ then _ do _ nothing () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcoordinate Ġ= ĠCoordinate ( 0 , 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠOrientation . WEST ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠBounds ( 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠEnvironment ( bounds ) ĊĠĠĠĠĠĠĠ Ġenvironment . add Sc ent ( Coordinate ( 0 , 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġrobot Ġ= ĠRobot ( coordinate , Ġorientation , Ġenvironment ) ĊĠĠĠĠĠĠĠ Ġval Ġinstruction Ġ= ĠInstruction . FORWARD ĊĠĠĠĠĠĠĠ Ġrobot . in struct ( instruction ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( false , Ġrobot . is Lost ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( true , Ġenvironment . has Sc ent ( Coordinate ( 0 , Ġ 1 ))) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 0 , Ġrobot . coordinate . x ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġrobot . coordinate . y ) ĊĠĠĠ Ġ} Ċ Ċ }