USING: accessors arrays colors kernel tetris.board tetris.piece tools.test ; [ { { f f } { f f } { f f } } ] [ 2 3 make-rows ] unit-test [ { { f f } { f f } { f f } } ] [ 2 3 rows>> ] unit-test [ 1 { f f } ] [ 2 3 { 1 1 } board@block ] unit-test [ f ] [ 2 3 { 1 1 } block ] unit-test [ 2 3 { 2 3 } block ] must-fail red 1array [ 2 3 dup { 1 1 } red set-block { 1 1 } block ] unit-test [ t ] [ 2 3 { 1 1 } block-free? ] unit-test [ f ] [ 2 3 dup { 1 1 } red set-block { 1 1 } block-free? ] unit-test [ t ] [ 2 3 dup { 1 1 } red set-block { 1 2 } block-free? ] unit-test [ t ] [ 2 3 dup { 1 1 } red set-block { 0 1 } block-free? ] unit-test [ t ] [ 2 3 { 0 0 } block-in-bounds? ] unit-test [ f ] [ 2 3 { -1 0 } block-in-bounds? ] unit-test [ t ] [ 2 3 { 1 2 } block-in-bounds? ] unit-test [ f ] [ 2 3 { 2 2 } block-in-bounds? ] unit-test [ t ] [ 2 3 { 1 1 } location-valid? ] unit-test [ f ] [ 2 3 dup { 1 1 } red set-block { 1 1 } location-valid? ] unit-test [ t ] [ 10 10 10 piece-valid? ] unit-test [ f ] [ 2 3 10 { 1 2 } >>location piece-valid? ] unit-test [ { { f } { f } } ] [ 1 1 add-row rows>> ] unit-test [ { { f } } ] [ 1 2 dup { 0 1 } red set-block remove-full-rows rows>> ] unit-test [ { { f } { f } } ] [ 1 2 dup { 0 1 } red set-block dup check-rows drop rows>> ] unit-test