]> gitweb.factorcode.org Git - factor.git/blob - extra/euler/b-rep/io/obj/obj-tests.factor
a4ca2d0a619b7bc358ce1b213eaf95e250855c6c
[factor.git] / extra / euler / b-rep / io / obj / obj-tests.factor
1 ! (c) 2010 Joe Groff bsd license
2 USING: euler.b-rep euler.b-rep.examples euler.b-rep.io.obj
3 io.streams.string literals math.vectors.simd.cords tools.test ;
4 IN: euler.b-rep.io.obj.tests
5
6 CONSTANT: valid-cube-obj
7 "v -1.0 -1.0 -1.0
8 v -1.0 1.0 -1.0
9 v 1.0 -1.0 -1.0
10 v 1.0 1.0 -1.0
11 v -1.0 -1.0 1.0
12 v -1.0 1.0 1.0
13 v 1.0 -1.0 1.0
14 v 1.0 1.0 1.0
15 f 1 2 4 3
16 f 5 6 2 1
17 f 7 8 6 5
18 f 3 4 8 7
19 f 2 6 8 4
20 f 5 1 3 7
21 "
22
23 CONSTANT: valid-cube-obj-relative-indices
24 "v -1.0 -1.0 -1.0
25 v -1.0 1.0 -1.0
26 v 1.0 -1.0 -1.0
27 v 1.0 1.0 -1.0
28 f -4 -3 -1 -2
29 v -1.0 -1.0 1.0
30 v -1.0 1.0 1.0
31 v 1.0 -1.0 1.0
32 v 1.0 1.0 1.0
33 f -4 -3 -7 -8
34 f 7 8 6 5
35 f 3 4 8 7
36 f 2 6 8 4
37 f 5 1 3 7
38 "
39
40 CONSTANT: valid-cube-obj-texcoords
41 "# comment should be ignored
42 v -1.0 -1.0 -1.0
43 v -1.0 1.0 -1.0
44 v 1.0 -1.0 -1.0
45 v 1.0 1.0 -1.0
46 v -1.0 -1.0 1.0
47 v -1.0 1.0 1.0
48 v 1.0 -1.0 1.0
49 v 1.0 1.0 1.0
50 vt 0 0
51 vt 0 1
52 vt 1 0
53 vt 1 1
54 f 1/1 2/2 4/4 3/3
55 f 5/1 6/2 2/2 1/1
56 f 7/3 8/4 6/2 5/1
57 f 3/3 4/4 8/4 7/3
58 f 2/2 6/2 8/4 4/4
59 f 5/1 1/1 3/3 7/3
60 "
61
62 { $ valid-cube-obj } [ [ valid-cube-b-rep write-obj ] with-string-writer ] unit-test
63
64 {
65     V{
66         double-4{ -1.0 -1.0 -1.0 0.0 }
67         double-4{ -1.0  1.0 -1.0 0.0 }
68         double-4{  1.0 -1.0 -1.0 0.0 }
69         double-4{  1.0  1.0 -1.0 0.0 }
70         double-4{ -1.0 -1.0  1.0 0.0 }
71         double-4{ -1.0  1.0  1.0 0.0 }
72         double-4{  1.0 -1.0  1.0 0.0 }
73         double-4{  1.0  1.0  1.0 0.0 }
74     }
75     V{
76         { 0 1 3 2 }
77         { 4 5 1 0 }
78         { 6 7 5 4 }
79         { 2 3 7 6 }
80         { 1 5 7 3 }
81         { 4 0 2 6 }
82     }
83 } [
84     valid-cube-obj [ (read-obj) ] with-string-reader
85 ] unit-test
86
87 {
88     V{
89         double-4{ -1.0 -1.0 -1.0 0.0 }
90         double-4{ -1.0  1.0 -1.0 0.0 }
91         double-4{  1.0 -1.0 -1.0 0.0 }
92         double-4{  1.0  1.0 -1.0 0.0 }
93         double-4{ -1.0 -1.0  1.0 0.0 }
94         double-4{ -1.0  1.0  1.0 0.0 }
95         double-4{  1.0 -1.0  1.0 0.0 }
96         double-4{  1.0  1.0  1.0 0.0 }
97     }
98     V{
99         { 0 1 3 2 }
100         { 4 5 1 0 }
101         { 6 7 5 4 }
102         { 2 3 7 6 }
103         { 1 5 7 3 }
104         { 4 0 2 6 }
105     }
106 } [
107     valid-cube-obj-relative-indices [ (read-obj) ] with-string-reader
108 ] unit-test
109
110 {
111     V{
112         double-4{ -1.0 -1.0 -1.0 0.0 }
113         double-4{ -1.0  1.0 -1.0 0.0 }
114         double-4{  1.0 -1.0 -1.0 0.0 }
115         double-4{  1.0  1.0 -1.0 0.0 }
116         double-4{ -1.0 -1.0  1.0 0.0 }
117         double-4{ -1.0  1.0  1.0 0.0 }
118         double-4{  1.0 -1.0  1.0 0.0 }
119         double-4{  1.0  1.0  1.0 0.0 }
120     }
121     V{
122         { 0 1 3 2 }
123         { 4 5 1 0 }
124         { 6 7 5 4 }
125         { 2 3 7 6 }
126         { 1 5 7 3 }
127         { 4 0 2 6 }
128     }
129 } [
130     valid-cube-obj-texcoords [ (read-obj) ] with-string-reader
131 ] unit-test