USING: ui.gadgets ui.gadgets.grids tools.test kernel arrays namespaces math.rectangles accessors ui.gadgets.grids.private ui.gadgets.debug sequences classes ; IN: ui.gadgets.grids.tests [ { 0 0 } ] [ { } pref-dim ] unit-test : 100x100 ( -- gadget ) { 100 100 } >>dim ; : 200x200 ( -- gadget ) { 200 200 } >>dim ; [ { 100 100 } ] [ 100x100 1array 1array pref-dim ] unit-test [ { 100 100 } ] [ 100x100 1array 1array pref-dim ] unit-test [ { 200 100 } ] [ 100x100 100x100 2array 1array pref-dim ] unit-test [ { 100 200 } ] [ 100x100 100x100 [ 1array ] bi@ 2array pref-dim ] unit-test [ ] [ 100x100 100x100 [ 1array ] bi@ 2array layout ] unit-test [ { 230 120 } { 100 100 } { 100 100 } ] [ 100x100 dup "a" set 100x100 dup "b" set 2array 1array { 10 10 } >>gap dup prefer dup layout dim>> "a" get dim>> "b" get dim>> ] unit-test [ ] [ 100x100 dup "a" set 100x100 dup "b" set 100x100 dup "c" set [ 1array ] tri@ 3array { 10 10 } >>gap "g" set ] unit-test [ ] [ "g" get prefer ] unit-test [ ] [ "g" get layout ] unit-test [ { 10 10 } ] [ "a" get loc>> ] unit-test [ { 100 100 } ] [ "a" get dim>> ] unit-test [ { 10 120 } ] [ "b" get loc>> ] unit-test [ { 100 100 } ] [ "b" get dim>> ] unit-test [ { 10 230 } ] [ "c" get loc>> ] unit-test [ { 100 100 } ] [ "c" get dim>> ] unit-test 5 10 { 10 10 } 10 10 { 10 10 } 2array 1array f >>fill? "g" set [ ] [ "g" get prefer ] unit-test [ { 20 15 } ] [ "g" get dim>> ] unit-test [ V{ { 0 5 } { 10 0 } } ] [ "g" get dup layout children>> [ loc>> ] map ] unit-test ! children-on logic was insufficient [ ] [ 100x100 dup "a" set 200x200 2array 100x100 dup "b" set 200x200 2array 2array f >>fill? "g" set ] unit-test [ ] [ "g" get prefer ] unit-test [ ] [ "g" get layout ] unit-test [ { 0 50 } ] [ "a" get loc>> ] unit-test [ { 0 250 } ] [ "b" get loc>> ] unit-test [ gadget { 200 200 } ] [ { 120 20 } "g" get pick-up [ class-of ] [ dim>> ] bi ] unit-test [ gadget { 200 200 } ] [ { 120 220 } "g" get pick-up [ class-of ] [ dim>> ] bi ] unit-test