USING: accessors arrays colors colors.constants 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 { COLOR: red } [ 2 3 dup { 1 1 } COLOR: red set-block { 1 1 } block ] unit-test { t } [ 2 3 { 1 1 } block-free? ] unit-test { f } [ 2 3 dup { 1 1 } COLOR: red set-block { 1 1 } block-free? ] unit-test { t } [ 2 3 dup { 1 1 } COLOR: red set-block { 1 2 } block-free? ] unit-test { t } [ 2 3 dup { 1 1 } COLOR: 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 } COLOR: 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 } COLOR: red set-block remove-full-rows rows>> ] unit-test { { { f } { f } } } [ 1 2 dup { 0 1 } COLOR: red set-block dup check-rows drop rows>> ] unit-test