]> gitweb.factorcode.org Git - factor.git/blob - basis/bit-sets/bit-sets-tests.factor
26010a33376434c51304eb9c7cb4de46b367dd88
[factor.git] / basis / bit-sets / bit-sets-tests.factor
1 USING: bit-sets tools.test new-sets kernel bit-arrays ;
2 IN: bit-sets.tests
3
4 [ T{ bit-set f ?{ t f t f t f } } ] [
5     T{ bit-set f ?{ t f f f t f } }
6     T{ bit-set f ?{ f f t f t f } } union
7 ] unit-test
8
9 [ T{ bit-set f ?{ f f f f t f } } ] [
10     T{ bit-set f ?{ t f f f t f } }
11     T{ bit-set f ?{ f f t f t f } } intersect
12 ] unit-test
13
14 [ T{ bit-set f ?{ t f t f f f } } ] [
15     T{ bit-set f ?{ t t t f f f } }
16     T{ bit-set f ?{ f t f f t t } } diff
17 ] unit-test
18
19 [ f ] [
20     T{ bit-set f ?{ t t t f f f } }
21     T{ bit-set f ?{ f t f f t t } } subset?
22 ] unit-test
23
24 [ t ] [
25     T{ bit-set f ?{ t t t f f f } }
26     T{ bit-set f ?{ f t f f f f } } subset?
27 ] unit-test
28
29 [ t ] [
30     { 0 1 2 }
31     T{ bit-set f ?{ f t f f f f } } subset?
32 ] unit-test
33
34 [ f ] [
35     T{ bit-set f ?{ f t f f f f } }
36     T{ bit-set f ?{ t t t f f f } } subset?
37 ] unit-test
38
39 [ f ] [
40     { 1 }
41     T{ bit-set f ?{ t t t f f f } } subset?
42 ] unit-test
43
44 [ V{ 0 2 5 } ] [ T{ bit-set f ?{ t f t f f t } } members ] unit-test
45
46 [ t V{ 1 2 3 } ] [
47     { 1 2 } 5 <bit-set> set-like
48     [ bit-set? ] keep
49     3 over adjoin
50     members
51 ] unit-test
52
53 [ V{ 0 1 2 5 } ] [ T{ bit-set f ?{ t f t f f t } } clone [ 1 swap adjoin ] keep members ] unit-test
54 [ T{ bit-set f ?{ t f t f f t } } clone [ 9 swap adjoin ] keep members ] must-fail
55 [ T{ bit-set f ?{ t f t f f t } } clone [ "foo" swap adjoin ] keep members ] must-fail
56
57 [ V{ 2 5 } ] [ T{ bit-set f ?{ t f t f f t } } clone [ 0 swap delete ] keep members ] unit-test
58 [ V{ 0 2 5 } ] [ T{ bit-set f ?{ t f t f f t } } clone [ 1 swap delete ] keep members ] unit-test
59 [ V{ 0 2 5 } ] [ T{ bit-set f ?{ t f t f f t } } clone [ 9 swap delete ] keep members ] unit-test
60 [ V{ 0 2 5 } ] [ T{ bit-set f ?{ t f t f f t } } clone [ "foo" swap delete ] keep members ] unit-test
61
62 [ T{ bit-set f ?{ f } } T{ bit-set f ?{ t } } ]
63 [ 1 <bit-set> dup clone 0 over adjoin ] unit-test