package Ġit . ld software . k 8 bit . hardware . pre defined Ċ Ċ import Ġit . ld software . k 8 bit . expand Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Test Ċ Ċ class ĠGraph ic Memory Spec Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` expand Ġshould Ġcorrectly Ġrepresent Ġa Ġbinary Ġstring Ġto Ġzero - one Ġarray `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Ġ= Ġ 0 b 1 0 0 1 0 0 1 0 ĊĠĠĠĠĠĠĠ ĠassertThat ( test . expand ()). isEqualTo ( listOf ( 1 , Ġ 0 , Ġ 0 , Ġ 1 , Ġ 0 , Ġ 0 , Ġ 1 , Ġ 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` draw Ġshould Ġdraw Ġthe Ġcorrect Ġpixels Ġon Ġan Ġempty Ġmemory Ġand Ġreturn Ġno Ġcollision `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠGraph ic Memory () ĊĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= ĠarrayOf ( 0 xF 0 , Ġ 0 x 1 0 , Ġ 0 x 2 0 , Ġ 0 x 4 0 , Ġ 0 x 4 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcollisions Ġ= Ġsubject . draw ( x , Ġy , Ġlines ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( coll isions ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 0 4 0 , Ġ 1 0 4 4 )). isEqualTo ( array Of ( 1 , Ġ 1 , Ġ 1 , Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 1 0 4 , Ġ 1 1 0 8 )). isEqualTo ( array Of ( 0 , Ġ 0 , Ġ 0 , Ġ 1 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 1 6 8 , Ġ 1 1 7 2 )). isEqualTo ( array Of ( 0 , Ġ 0 , Ġ 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 2 3 2 , Ġ 1 2 3 6 )). isEqualTo ( array Of ( 0 , Ġ 1 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 2 9 6 , Ġ 1 3 0 0 )). isEqualTo ( array Of ( 0 , Ġ 1 , Ġ 0 , Ġ 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` draw Ġshould Ġreturn Ġcollisions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠGraph ic Memory () ĊĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= ĠarrayOf ( 0 xF 0 , Ġ 0 x 1 0 , Ġ 0 x 2 0 , Ġ 0 x 4 0 , Ġ 0 x 4 0 ) ĊĊĠĠĠĠĠĠĠ Ġsubject . draw ( x , Ġy , Ġlines ) ĊĠĠĠĠĠĠĠ Ġval Ġcollisions Ġ= Ġsubject . draw ( x , Ġy , Ġlines ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( coll isions ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 0 4 0 , Ġ 1 0 4 4 )). isEqualTo ( array Of ( 0 , Ġ 0 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 1 0 4 , Ġ 1 1 0 8 )). isEqualTo ( array Of ( 0 , Ġ 0 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 1 6 8 , Ġ 1 1 7 2 )). isEqualTo ( array Of ( 0 , Ġ 0 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 2 3 2 , Ġ 1 2 3 6 )). isEqualTo ( array Of ( 0 , Ġ 0 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( subject . subset ( 1 2 9 6 , Ġ 1 3 0 0 )). isEqualTo ( array Of ( 0 , Ġ 0 , Ġ 0 , Ġ 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` clear Ġshould Ġempty Ġthe Ġmemory `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubject Ġ= ĠGraph ic Memory () ĊĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= ĠarrayOf ( 0 xF 0 , Ġ 0 x 1 0 , Ġ 0 x 2 0 , Ġ 0 x 4 0 , Ġ 0 x 4 0 ) ĊĊĠĠĠĠĠĠĠ Ġsubject . draw ( x , Ġy , Ġlines ) ĊĠĠĠĠĠĠĠ Ġsubject . clear () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( subject . get Screen ()). does Not Contain ( 1 ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ