]> gitweb.factorcode.org Git - factor.git/blob - basis/circular/circular-tests.factor
105e3790aa9b4b8d240b6c7caeb8bb452ba78155
[factor.git] / basis / circular / circular-tests.factor
1 ! Copyright (C) 2005, 2006 Alex Chapman, Daniel Ehrenberg
2 ! See http;//factorcode.org/license.txt for BSD license
3 USING: arrays kernel tools.test sequences sequences.private
4 circular strings ;
5
6 [ 0 ] [ { 0 1 2 3 4 } <circular> 0 swap virtual@ drop ] unit-test
7 [ 2 ] [ { 0 1 2 3 4 } <circular> 2 swap virtual@ drop ] unit-test
8
9 [ CHAR: t ] [ "test" <circular> 0 swap nth ] unit-test
10 [ "test"  ] [ "test" <circular> >string ] unit-test
11
12 [ CHAR: e ] [ "test" <circular> 5 swap nth-unsafe ] unit-test
13  
14 [ [ 1 2 3 ] ] [ { 1 2 3 } <circular> [ ] like ] unit-test
15 [ [ 2 3 1 ] ] [ { 1 2 3 } <circular> 1 over change-circular-start [ ] like ] unit-test
16 [ [ 3 1 2 ] ] [ { 1 2 3 } <circular> 1 over change-circular-start 1 over change-circular-start [ ] like ] unit-test
17 [ [ 3 1 2 ] ] [ { 1 2 3 } <circular> -100 over change-circular-start [ ] like ] unit-test
18
19 [ "fob" ] [ "foo" <circular> CHAR: b 2 pick set-nth >string ] unit-test
20 [ "boo" ] [ "foo" <circular> CHAR: b 3 pick set-nth-unsafe >string ] unit-test
21 [ "ornact" ] [ "factor" <circular> 4 over change-circular-start CHAR: n 2 pick set-nth >string ] unit-test
22
23 [ "bcd" ] [ 3 <circular-string> "abcd" [ over push-circular ] each >string ] unit-test
24
25 [ { 0 0 } ] [ { 0 0 } <circular> -1 over change-circular-start >array ] unit-test
26
27 ! This no longer fails
28 ! [ "test" <circular> 5 swap nth ] must-fail
29 ! [ "foo" <circular> CHAR: b 3 rot set-nth ] must-fail
30
31 [ { } ] [ 3 <growing-circular> >array ] unit-test
32 [ { 1 2 } ] [
33     3 <growing-circular>
34     [ 1 swap push-growing-circular ] keep
35     [ 2 swap push-growing-circular ] keep >array
36 ] unit-test
37 [ { 3 4 5 } ] [
38     3 <growing-circular> dup { 1 2 3 4 5 } [
39         swap push-growing-circular
40     ] with each >array
41 ] unit-test