]> gitweb.factorcode.org Git - factor.git/blob - basis/compiler/cfg/dominance/dominance-tests.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / basis / compiler / cfg / dominance / dominance-tests.factor
1 USING: tools.test sequences vectors namespaces kernel accessors assocs sets
2 math.ranges arrays compiler.cfg compiler.cfg.dominance compiler.cfg.debugger
3 compiler.cfg.predecessors ;
4 IN: compiler.cfg.dominance.tests
5
6 : test-dominance ( -- )
7     cfg new 0 get >>entry
8     needs-dominance drop ;
9
10 ! Example with no back edges
11 V{ } 0 test-bb
12 V{ } 1 test-bb
13 V{ } 2 test-bb
14 V{ } 3 test-bb
15 V{ } 4 test-bb
16 V{ } 5 test-bb
17
18 0 { 1 2 } edges
19 1 3 edge
20 2 4 edge
21 3 4 edge
22 4 5 edge
23
24 [ ] [ test-dominance ] unit-test
25
26 [ t ] [ 0 get dom-parent 0 get eq? ] unit-test
27 [ t ] [ 1 get dom-parent 0 get eq? ] unit-test
28 [ t ] [ 2 get dom-parent 0 get eq? ] unit-test
29 [ t ] [ 4 get dom-parent 0 get eq? ] unit-test
30 [ t ] [ 3 get dom-parent 1 get eq? ] unit-test
31 [ t ] [ 5 get dom-parent 4 get eq? ] unit-test
32
33 [ t ] [ 0 get dom-children 1 get 2 get 4 get 3array set= ] unit-test
34
35 [ t ] [ 0 get 3 get dominates? ] unit-test
36 [ f ] [ 3 get 4 get dominates? ] unit-test
37 [ f ] [ 1 get 4 get dominates? ] unit-test
38 [ t ] [ 4 get 5 get dominates? ] unit-test
39 [ f ] [ 1 get 5 get dominates? ] unit-test
40
41 ! Example from the paper
42 V{ } 0 test-bb
43 V{ } 1 test-bb
44 V{ } 2 test-bb
45 V{ } 3 test-bb
46 V{ } 4 test-bb
47
48 0 { 1 2 } edges
49 1 3 edge
50 2 4 edge
51 3 4 edge
52 4 3 edge
53
54 [ ] [ test-dominance ] unit-test
55
56 [ t ] [ 0 4 [a,b] [ get dom-parent 0 get eq? ] all? ] unit-test
57
58 ! The other example from the paper
59 V{ } 0 test-bb
60 V{ } 1 test-bb
61 V{ } 2 test-bb
62 V{ } 3 test-bb
63 V{ } 4 test-bb
64 V{ } 5 test-bb
65
66 0 { 1 2 } edges
67 1 5 edge
68 2 { 4 3 } edges
69 5 4 edge
70 4 { 5 3 } edges
71 3 4 edge
72
73 [ ] [ test-dominance ] unit-test
74
75 [ t ] [ 0 5 [a,b] [ get dom-parent 0 get eq? ] all? ] unit-test