factor/extra/euler/b-rep/io/obj/obj-tests.factor

132 lines
2.6 KiB
Factor

! (c) 2010 Joe Groff bsd license
USING: euler.b-rep euler.b-rep.examples euler.b-rep.io.obj
io.streams.string literals math.vectors.simd.cords tools.test ;
IN: euler.b-rep.io.obj.tests
CONSTANT: valid-cube-obj
"v -1.0 -1.0 -1.0
v -1.0 1.0 -1.0
v 1.0 -1.0 -1.0
v 1.0 1.0 -1.0
v -1.0 -1.0 1.0
v -1.0 1.0 1.0
v 1.0 -1.0 1.0
v 1.0 1.0 1.0
f 1 2 4 3
f 5 6 2 1
f 7 8 6 5
f 3 4 8 7
f 2 6 8 4
f 5 1 3 7
"
CONSTANT: valid-cube-obj-relative-indices
"v -1.0 -1.0 -1.0
v -1.0 1.0 -1.0
v 1.0 -1.0 -1.0
v 1.0 1.0 -1.0
f -4 -3 -1 -2
v -1.0 -1.0 1.0
v -1.0 1.0 1.0
v 1.0 -1.0 1.0
v 1.0 1.0 1.0
f -4 -3 -7 -8
f 7 8 6 5
f 3 4 8 7
f 2 6 8 4
f 5 1 3 7
"
CONSTANT: valid-cube-obj-texcoords
"# comment should be ignored
v -1.0 -1.0 -1.0
v -1.0 1.0 -1.0
v 1.0 -1.0 -1.0
v 1.0 1.0 -1.0
v -1.0 -1.0 1.0
v -1.0 1.0 1.0
v 1.0 -1.0 1.0
v 1.0 1.0 1.0
vt 0 0
vt 0 1
vt 1 0
vt 1 1
f 1/1 2/2 4/4 3/3
f 5/1 6/2 2/2 1/1
f 7/3 8/4 6/2 5/1
f 3/3 4/4 8/4 7/3
f 2/2 6/2 8/4 4/4
f 5/1 1/1 3/3 7/3
"
{ $ valid-cube-obj } [ [ valid-cube-b-rep write-obj ] with-string-writer ] unit-test
{
V{
double-4{ -1.0 -1.0 -1.0 0.0 }
double-4{ -1.0 1.0 -1.0 0.0 }
double-4{ 1.0 -1.0 -1.0 0.0 }
double-4{ 1.0 1.0 -1.0 0.0 }
double-4{ -1.0 -1.0 1.0 0.0 }
double-4{ -1.0 1.0 1.0 0.0 }
double-4{ 1.0 -1.0 1.0 0.0 }
double-4{ 1.0 1.0 1.0 0.0 }
}
V{
{ 0 1 3 2 }
{ 4 5 1 0 }
{ 6 7 5 4 }
{ 2 3 7 6 }
{ 1 5 7 3 }
{ 4 0 2 6 }
}
} [
valid-cube-obj [ (read-obj) ] with-string-reader
] unit-test
{
V{
double-4{ -1.0 -1.0 -1.0 0.0 }
double-4{ -1.0 1.0 -1.0 0.0 }
double-4{ 1.0 -1.0 -1.0 0.0 }
double-4{ 1.0 1.0 -1.0 0.0 }
double-4{ -1.0 -1.0 1.0 0.0 }
double-4{ -1.0 1.0 1.0 0.0 }
double-4{ 1.0 -1.0 1.0 0.0 }
double-4{ 1.0 1.0 1.0 0.0 }
}
V{
{ 0 1 3 2 }
{ 4 5 1 0 }
{ 6 7 5 4 }
{ 2 3 7 6 }
{ 1 5 7 3 }
{ 4 0 2 6 }
}
} [
valid-cube-obj-relative-indices [ (read-obj) ] with-string-reader
] unit-test
{
V{
double-4{ -1.0 -1.0 -1.0 0.0 }
double-4{ -1.0 1.0 -1.0 0.0 }
double-4{ 1.0 -1.0 -1.0 0.0 }
double-4{ 1.0 1.0 -1.0 0.0 }
double-4{ -1.0 -1.0 1.0 0.0 }
double-4{ -1.0 1.0 1.0 0.0 }
double-4{ 1.0 -1.0 1.0 0.0 }
double-4{ 1.0 1.0 1.0 0.0 }
}
V{
{ 0 1 3 2 }
{ 4 5 1 0 }
{ 6 7 5 4 }
{ 2 3 7 6 }
{ 1 5 7 3 }
{ 4 0 2 6 }
}
} [
valid-cube-obj-texcoords [ (read-obj) ] with-string-reader
] unit-test