]> gitweb.factorcode.org Git - factor.git/blob - basis/regexp/classes/classes-tests.factor
4044a059a5ab6245393e54e6b9665b643dc50898
[factor.git] / basis / regexp / classes / classes-tests.factor
1 ! Copyright (C) 2009 Daniel Ehrenberg.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: regexp.classes tools.test arrays kernel ;
4 IN: regexp.classes.tests
5
6 ! Class algebra
7
8 [ f ] [ { 1 2 } <and-class> ] unit-test
9 [ T{ or-class f { 1 2 } } ] [ { 1 2 } <or-class> ] unit-test
10 [ 3 ] [ { 1 2 } <and-class> 3 2array <or-class> ] unit-test
11 [ CHAR: A ] [ CHAR: A LETTER-class <primitive-class> 2array <and-class> ] unit-test
12 [ CHAR: A ] [ LETTER-class <primitive-class> CHAR: A 2array <and-class> ] unit-test
13 [ T{ primitive-class { class LETTER-class } } ] [ CHAR: A LETTER-class <primitive-class> 2array <or-class> ] unit-test
14 [ T{ primitive-class { class LETTER-class } } ] [ LETTER-class <primitive-class> CHAR: A 2array <or-class> ] unit-test
15 [ t ] [ { t 1 } <or-class> ] unit-test
16 [ t ] [ { 1 t } <or-class> ] unit-test
17 [ f ] [ { f 1 } <and-class> ] unit-test
18 [ f ] [ { 1 f } <and-class> ] unit-test
19 [ 1 ] [ { f 1 } <or-class> ] unit-test
20 [ 1 ] [ { 1 f } <or-class> ] unit-test
21 [ 1 ] [ { t 1 } <and-class> ] unit-test
22 [ 1 ] [ { 1 t } <and-class> ] unit-test
23 [ 1 ] [ 1 <not-class> <not-class> ] unit-test
24 [ 1 ] [ { 1 1 } <and-class> ] unit-test
25 [ 1 ] [ { 1 1 } <or-class> ] unit-test
26 [ t ] [ { t t } <or-class> ] unit-test
27 [ T{ primitive-class { class letter-class } } ] [ letter-class <primitive-class> dup 2array <and-class> ] unit-test
28 [ T{ primitive-class { class letter-class } } ] [ letter-class <primitive-class> dup 2array <or-class> ] unit-test
29 [ T{ or-class { seq { 1 2 3 } } } ] [ { 1 2 } <or-class> { 2 3 } <or-class> 2array <or-class> ] unit-test
30 [ T{ or-class { seq { 2 3 } } } ] [ { 2 3 } <or-class> 1 <not-class> 2array <and-class> ] unit-test
31 [ f ] [ t <not-class> ] unit-test
32 [ t ] [ f <not-class> ] unit-test
33 [ f ] [ 1 <not-class> 1 t answer ] unit-test
34 [ t ] [ { 1 2 } <or-class> <not-class> 1 2 3array <or-class> ] unit-test
35 [ f ] [ { 1 2 } <and-class> <not-class> 1 2 3array <and-class> ] unit-test
36
37 ! Making classes into nested conditionals
38
39 [ { 1 2 3 4 } ] [ T{ and-class f { 1 T{ not-class f 2 } T{ or-class f { 3 4 } } 2 } } class>questions ] unit-test
40 [ { 3 } ] [ { { 3 t } } table>condition ] unit-test
41 [ { T{ primitive-class } } ] [ { { 1 t } { 2 T{ primitive-class } } } table>questions ] unit-test
42 [ { { 1 t } { 2 t } } ] [ { { 1 t } { 2 T{ primitive-class } } } T{ primitive-class } t assoc-answer ] unit-test
43 [ { { 1 t } } ] [ { { 1 t } { 2 T{ primitive-class } } } T{ primitive-class } f assoc-answer ] unit-test
44 [ T{ condition f T{ primitive-class } { 1 2 } { 1 } } ] [ { { 1 t } { 2 T{ primitive-class } } } table>condition ] unit-test
45
46 SYMBOL: foo
47 SYMBOL: bar
48
49 [ T{ condition f T{ primitive-class f bar } T{ condition f T{ primitive-class f foo } { 1 3 2 } { 1 3 } } T{ condition f T{ primitive-class f foo } { 1 2 } { 1 } } } ] [ { { 1 t } { 3 T{ primitive-class f bar } } { 2 T{ primitive-class f foo } } } table>condition ] unit-test
50
51 [ t ] [ foo <primitive-class> dup t answer ] unit-test
52 [ f ] [ foo <primitive-class> dup f answer ] unit-test
53 [ T{ primitive-class f foo } ] [ foo <primitive-class> bar <primitive-class> t answer ] unit-test
54 [ T{ primitive-class f foo } ] [ foo <primitive-class> bar <primitive-class> f answer ] unit-test
55 [ T{ primitive-class f foo } ] [ foo <primitive-class> bar <primitive-class> 2array <and-class> bar <primitive-class> t answer ] unit-test
56 [ T{ primitive-class f bar } ] [ foo <primitive-class> bar <primitive-class> 2array <and-class> foo <primitive-class> t answer ] unit-test
57 [ f ] [ foo <primitive-class> bar <primitive-class> 2array <and-class> foo <primitive-class> f answer ] unit-test
58 [ f ] [ foo <primitive-class> bar <primitive-class> 2array <and-class> bar <primitive-class> f answer ] unit-test
59 [ t ] [ foo <primitive-class> bar <primitive-class> 2array <or-class> bar <primitive-class> t answer ] unit-test
60 [ T{ primitive-class f foo } ] [ foo <primitive-class> bar <primitive-class> 2array <or-class> bar <primitive-class> f answer ] unit-test