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