2008-01-22 23:13:08 -05:00
|
|
|
! Copyright (C) 2007 Alex Chapman
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2008-07-02 16:57:38 -04:00
|
|
|
USING: arrays jamshred.oint jamshred.tunnel kernel math.vectors sequences tools.test float-arrays ;
|
2008-03-01 17:00:45 -05:00
|
|
|
IN: jamshred.tunnel.tests
|
2007-09-30 02:48:43 -04:00
|
|
|
|
2008-05-07 11:08:48 -04:00
|
|
|
[ 0 ] [ T{ segment f { 0 0 0 } f f f 0 }
|
|
|
|
T{ segment f { 1 1 1 } f f f 1 }
|
2007-09-30 02:48:43 -04:00
|
|
|
T{ oint f { 0 0 0.25 } }
|
|
|
|
nearer-segment segment-number ] unit-test
|
|
|
|
|
2007-10-03 08:26:51 -04:00
|
|
|
[ 0 ] [ T{ oint f { 0 0 0 } } <straight-tunnel> find-nearest-segment segment-number ] unit-test
|
|
|
|
[ 1 ] [ T{ oint f { 0 0 -1 } } <straight-tunnel> find-nearest-segment segment-number ] unit-test
|
|
|
|
[ 2 ] [ T{ oint f { 0 0.1 -2.1 } } <straight-tunnel> find-nearest-segment segment-number ] unit-test
|
2007-09-30 02:48:43 -04:00
|
|
|
|
2007-10-03 08:26:51 -04:00
|
|
|
[ 3 ] [ <straight-tunnel> T{ oint f { 0 0 -3.25 } } 0 nearest-segment-forward segment-number ] unit-test
|
2007-09-30 02:48:43 -04:00
|
|
|
|
2007-11-24 23:57:46 -05:00
|
|
|
[ F{ 0 0 0 } ] [ <straight-tunnel> T{ oint f { 0 0 -0.25 } } over first nearest-segment oint-location ] unit-test
|
2008-05-07 11:08:48 -04:00
|
|
|
|
|
|
|
: test-segment-oint ( -- oint )
|
|
|
|
{ 0 0 0 } { 0 0 -1 } { 0 1 0 } { -1 0 0 } <oint> ;
|
|
|
|
|
|
|
|
[ { -1 0 0 } ] [ test-segment-oint { 1 0 0 } vector-to-centre ] unit-test
|
|
|
|
[ { 1 0 0 } ] [ test-segment-oint { -1 0 0 } vector-to-centre ] unit-test
|
|
|
|
[ { 0 -1 0 } ] [ test-segment-oint { 0 1 0 } vector-to-centre ] unit-test
|
|
|
|
[ { 0 1 0 } ] [ test-segment-oint { 0 -1 0 } vector-to-centre ] unit-test
|
|
|
|
[ { -1 0 0 } ] [ test-segment-oint { 1 0 -1 } vector-to-centre ] unit-test
|
|
|
|
[ { 1 0 0 } ] [ test-segment-oint { -1 0 -1 } vector-to-centre ] unit-test
|
|
|
|
[ { 0 -1 0 } ] [ test-segment-oint { 0 1 -1 } vector-to-centre ] unit-test
|
|
|
|
[ { 0 1 0 } ] [ test-segment-oint { 0 -1 -1 } vector-to-centre ] unit-test
|
|
|
|
|
|
|
|
: simplest-straight-ahead ( -- oint segment )
|
|
|
|
{ 0 0 0 } { 0 0 -1 } { 0 1 0 } { -1 0 0 } <oint>
|
|
|
|
initial-segment ;
|
|
|
|
|
|
|
|
[ { 0 0 0 } ] [ simplest-straight-ahead sideways-heading ] unit-test
|
|
|
|
[ { 0 0 0 } ] [ simplest-straight-ahead sideways-relative-location ] unit-test
|
|
|
|
|
|
|
|
: simple-collision-up ( -- oint segment )
|
|
|
|
{ 0 0 0 } { 0 1 0 } { 0 0 1 } { -1 0 0 } <oint>
|
|
|
|
initial-segment ;
|
|
|
|
|
|
|
|
[ { 0 1 0 } ] [ simple-collision-up sideways-heading ] unit-test
|
|
|
|
[ { 0 0 0 } ] [ simple-collision-up sideways-relative-location ] unit-test
|
2008-05-11 20:34:51 -04:00
|
|
|
[ { 0 1 0 } ]
|
2008-05-29 00:14:18 -04:00
|
|
|
[ simple-collision-up collision-vector 0 0 0 3array v+ ] unit-test
|