]> gitweb.factorcode.org Git - factor.git/blob - extra/game/models/half-edge/half-edge-tests.factor
factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test
[factor.git] / extra / game / models / half-edge / half-edge-tests.factor
1 USING: accessors game.models.half-edge kernel sequences
2 tools.test ;
3 IN: game.models.half-edge.tests
4
5 CONSTANT: cube-edges
6     {
7         T{ edge { face 0 } { vertex  0 } { opposite-edge  6 } { next-edge  1 } }
8         T{ edge { face 0 } { vertex  1 } { opposite-edge 19 } { next-edge  2 } }
9         T{ edge { face 0 } { vertex  3 } { opposite-edge 12 } { next-edge  3 } }
10         T{ edge { face 0 } { vertex  2 } { opposite-edge 21 } { next-edge  0 } }
11
12         T{ edge { face 1 } { vertex  4 } { opposite-edge 10 } { next-edge  5 } }
13         T{ edge { face 1 } { vertex  5 } { opposite-edge 16 } { next-edge  6 } }
14         T{ edge { face 1 } { vertex  1 } { opposite-edge  0 } { next-edge  7 } }
15         T{ edge { face 1 } { vertex  0 } { opposite-edge 20 } { next-edge  4 } }
16
17         T{ edge { face 2 } { vertex  6 } { opposite-edge 14 } { next-edge  9 } }
18         T{ edge { face 2 } { vertex  7 } { opposite-edge 17 } { next-edge 10 } }
19         T{ edge { face 2 } { vertex  5 } { opposite-edge  4 } { next-edge 11 } }
20         T{ edge { face 2 } { vertex  4 } { opposite-edge 23 } { next-edge  8 } }
21
22         T{ edge { face 3 } { vertex  2 } { opposite-edge  2 } { next-edge 13 } }
23         T{ edge { face 3 } { vertex  3 } { opposite-edge 22 } { next-edge 14 } }
24         T{ edge { face 3 } { vertex  7 } { opposite-edge  8 } { next-edge 15 } }
25         T{ edge { face 3 } { vertex  6 } { opposite-edge 18 } { next-edge 12 } }
26
27         T{ edge { face 4 } { vertex  1 } { opposite-edge  5 } { next-edge 17 } }
28         T{ edge { face 4 } { vertex  5 } { opposite-edge  9 } { next-edge 18 } }
29         T{ edge { face 4 } { vertex  7 } { opposite-edge 13 } { next-edge 19 } }
30         T{ edge { face 4 } { vertex  3 } { opposite-edge  1 } { next-edge 16 } }
31
32         T{ edge { face 5 } { vertex  4 } { opposite-edge  7 } { next-edge 21 } }
33         T{ edge { face 5 } { vertex  0 } { opposite-edge  3 } { next-edge 22 } }
34         T{ edge { face 5 } { vertex  2 } { opposite-edge 15 } { next-edge 23 } }
35         T{ edge { face 5 } { vertex  6 } { opposite-edge 11 } { next-edge 20 } }
36     }
37
38 : connect-cube-edges ( -- )
39     cube-edges [
40         [ cube-edges nth ] change-opposite-edge
41         [ cube-edges nth ] change-next-edge
42         drop
43     ] each ;
44
45 connect-cube-edges
46
47 { 0 1 }
48 [ cube-edges first edge-vertices ] unit-test
49
50 { { 0 0 0 } }
51 [ cube-edges first vertex-edges [ vertex>> ] map ] unit-test
52
53 { 3 }
54 [ cube-edges first vertex-valence ] unit-test
55
56 { { 0 1 3 2 } }
57 [ cube-edges first face-edges [ vertex>> ] map ] unit-test
58
59 { 4 }
60 [ cube-edges first face-sides ] unit-test
61
62 { { 1 4 2 } }
63 [ cube-edges first vertex-neighbors ] unit-test
64
65 { { 3 5 6 } }
66 [ cube-edges first vertex-diagonals ] unit-test
67
68 { { 1 4 3 5 } }
69 [ cube-edges first face-neighbors ] unit-test