package Ġorg . code to me . z ir con . api . beta . component Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . code to me . z ir con . api . Cell Ċ import Ġorg . code to me . z ir con . api . Position Ċ import Ġorg . code to me . z ir con . api . Size Ċ import Ġorg . code to me . z ir con . api . builder . Text Character Builder Ċ import Ġorg . code to me . z ir con . api . builder . Text Image Builder Ċ import Ġorg . code to me . z ir con . api . game . Position 3 D Ċ import Ġorg . code to me . z ir con . api . game . Size 3 D Ċ import Ġorg . code to me . z ir con . internal . game . Text Image Game Area Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠText Image Game Area Test Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġtarget : ĠText Image Game Area ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget Ġ= ĠText Image Game Area ( SIZE , ĠLE VEL S ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Return Characters From Level 0 () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( target . get Characters At ( Position 3 D . from 2 D Position ( OTHER _ CHAR _ POS , Ġ 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( OTHER _ CHAR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Return Characters From Level 1 () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( target . get Characters At ( Position 3 D . from 2 D Position ( OTHER _ CHAR _ POS , Ġ 1 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( OTHER _ CHAR , ĠOTHER _ CHAR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Return Segment From Level 0 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtarget . get Segment At ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= ĠPosition 3 D . from 2 D Position ( OTHER _ CHAR _ POS , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠSize . of ( 2 , Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . layers ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . layers . first (). fetch Cells (). toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 0 , Ġ 0 ), ĠOTHER _ CHAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 1 , Ġ 0 ), ĠLE VEL 0 _ FIL LER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 0 , Ġ 1 ), ĠLE VEL 0 _ FIL LER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 1 , Ġ 1 ), ĠLE VEL 0 _ FIL LER )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Pro per ly Return Segment From Level 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtarget . get Segment At ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ= ĠPosition 3 D . from 2 D Position ( OTHER _ CHAR _ POS , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠSize . of ( 2 , Ġ 2 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . layers ). has Size ( 2 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . layers [ 0 ]. fetch Cells (). toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 0 , Ġ 0 ), ĠOTHER _ CHAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 1 , Ġ 0 ), ĠLE VEL 1 _ 0 _ FIL LER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 0 , Ġ 1 ), ĠLE VEL 1 _ 0 _ FIL LER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 1 , Ġ 1 ), ĠLE VEL 1 _ 0 _ FIL LER )) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . layers [ 1 ]. fetch Cells (). toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 0 , Ġ 0 ), ĠOTHER _ CHAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 1 , Ġ 0 ), ĠLE VEL 1 _ 1 _ FIL LER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 0 , Ġ 1 ), ĠLE VEL 1 _ 1 _ FIL LER ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCell ( Position . of ( 1 , Ġ 1 ), ĠLE VEL 1 _ 1 _ FIL LER )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠOTHER _ CHAR Ġ= ĠText Character Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. character (' z ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval ĠOTHER _ CHAR _ POS Ġ= ĠPosition . of ( 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval ĠCOL UMNS Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġval ĠRO WS Ġ= Ġ 5 ĊĠĠĠĠĠĠĠ Ġval ĠLE VEL _ SIZE Ġ= ĠSize . of ( COLUMNS , ĠRO WS ) ĊĠĠĠĠĠĠĠ Ġval ĠLE VEL 0 _ FIL LER Ġ= ĠText Character Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. character (' a ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval ĠLE VEL 0 Ġ= ĠText Image Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill er ( LEVEL 0 _ FIL LER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( LEVEL _ SIZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval ĠLE VEL 1 _ 0 _ FIL LER Ġ= ĠText Character Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. character (' b ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval ĠLE VEL 1 _ 0 Ġ= ĠText Image Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill er ( LEVEL 1 _ 0 _ FIL LER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( LEVEL _ SIZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval ĠLE VEL 1 _ 1 _ FIL LER Ġ= ĠText Character Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. character (' c ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval ĠLE VEL 1 _ 1 Ġ= ĠText Image Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill er ( LEVEL 1 _ 1 _ FIL LER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( LEVEL _ SIZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLE VEL 0 . set Character At ( OTHER _ CHAR _ POS , ĠOTHER _ CHAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLE VEL 1 _ 0 . set Character At ( OTHER _ CHAR _ POS , ĠOTHER _ CHAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLE VEL 1 _ 1 . set Character At ( OTHER _ CHAR _ POS , ĠOTHER _ CHAR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠSIZE Ġ= ĠSize 3 D . of ( COLUMNS , ĠRO WS , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval ĠLE VEL S Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 0 , Ġmutable ListOf ( LEVEL 0 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 1 , Ġmutable ListOf ( LEVEL 1 _ 0 , ĠLE VEL 1 _ 1 ))) ĊĠĠĠ Ġ} Ċ }