( Title: Search-order extension library tests File: order-test.fs Log File: order.log Author: David N. Williams License: Public Domain Version: 1.3.1 Revised: October 2, 2011 ) [UNDEFINED] \\ [IF] \ for degugging : \\ ( -- ) -1 parse 2drop BEGIN refill 0= UNTIL ; [THEN] s" ttester-xf.fs" INCLUDED s" tester-display.fs" INCLUDED s" xtester-errors.fs" INCLUDED s" otester.fs" INCLUDED s" otester-errors.fs" INCLUDED s" order.fs" INCLUDED true VERBOSE ! \ before the first displayed line PFE-HOST IFORTH-HOST or [IF] ?.cr [THEN] : ?.errors ( -- ) VERBOSE @ IF blue-text ." XT-#ERRORS: " normal-text XT-#ERRORS @ . cr blue-text ." OT-#ERRORS: " normal-text OT-#ERRORS @ . THEN ; : ={ O{ T{ ; : => O-> -> ; : }= }O }T ; PFE-HOST [IF] ?." Host is pfe [THEN] GFORTH-HOST [IF] ?." Host is gforth [THEN] IFORTH-HOST [IF] ?." Host is iForth [THEN] wordlist constant wid1 wordlist constant wid2 wordlist constant wid3 TESTING >ORDER ORDER> ORDER@ ORDER! ={ wid1 >order previous => }= ={ get-order wid1 >order order> => get-order wid1 }= ={ get-order wid1 => get-order wid1 >order order> }= ={ wid1 >order get-order order> >order => wid1 >order get-order }= : >o: ( wid <"name"> -- ) create , DOES> ( o: -- wid ) @ >order ; wid1 >o: wid1>o wid2 >o: wid2>o wid3 >o: wid3>o ={ wid1>o => wid1 >order }= ={ wid2>o => wid2 >order }= ={ wid3>o => wid3 >order }= ={ wid1>o order@ previous => wid1 }= ={ wid1>o wid2 order! => wid2>o }= TESTING -ORDER +ORDER \ Tests using ALSO on the start order could be problematic here, \ because both pfe and gforth have repetitions of FORTH in the \ start order, with FORTH on top. So we don't do that. ={ wid1 -order => }= ={ wid1>o wid2>o wid3>o wid1 -order => wid2>o wid3>o }= ={ wid1>o wid2>o wid3>o wid2 -order => wid1>o wid3>o }= ={ wid1>o wid2>o wid3>o wid3 -order => wid1>o wid2>o }= ={ wid1>o also wid2>o wid3>o wid1 -order => wid2>o wid3>o }= ={ wid1>o wid2>o also wid3>o wid2 -order => wid1>o wid3>o }= ={ wid1>o wid2>o wid3>o also wid3 -order => wid1>o wid2>o }= ={ wid1>o also wid2>o wid3>o wid1>o wid1 -order => wid2>o wid3>o }= ={ wid1 +order => wid1>o }= ={ wid1>o wid2>o wid3>o wid1 +order => wid2>o wid3>o wid1>o }= ={ wid1>o wid2>o wid3>o wid2 +order => wid1>o wid3>o wid2>o }= ={ wid1>o wid2>o wid3>o wid3 +order => wid1>o wid2>o wid3>o }= ={ wid1>o also wid2>o wid3>o wid1 +order => wid2>o wid3>o wid1>o }= ={ wid1>o wid2>o also wid3>o wid2 +order => wid1>o wid3>o wid2>o }= ={ wid1>o wid2>o wid3>o also wid3 +order => wid1>o wid2>o wid3>o }= ?.errors GFORTH-HOST [IF] ?.cr [THEN]