commit dfef7421df433f2509c9b79484d309793d5e27de
parent 2632eca46cc2eb8325bfd0fc664de9e8b855b667
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 15 Mar 2017 16:26:54 +0100
Add some parser tests
Diffstat:
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/parser/test_solparser6.c b/src/parser/test_solparser6.c
@@ -33,7 +33,10 @@ main(int argc, char** argv)
const struct solparser_shape* shape;
const struct solparser_shape_sphere* sphere;
const struct solparser_shape_paraboloid* parabol;
+ const struct solparser_shape_plane* plane;
const struct solparser_shape_hyperboloid* hyperbol;
+ const struct solparser_polyclip* polyclip;
+ double pos[2];
FILE* stream;
(void)argc, (void)argv;
@@ -64,6 +67,11 @@ main(int argc, char** argv)
fprintf(stream, " - operation : AND\n");
fprintf(stream, " vertices : [[1, 2], [3, 4], [6, 7]]\n");
fprintf(stream, " material: { ?virtual }\n");
+ fprintf(stream, " - plane:\n");
+ fprintf(stream, " clip :\n");
+ fprintf(stream, " - operation : AND\n");
+ fprintf(stream, " vertices : [[1, 2], [3, 4], [6, 7]]\n");
+ fprintf(stream, " material: { ?virtual }\n");
rewind(stream);
CHECK(solparser_setup(parser, NULL, stream), RES_OK);
@@ -80,7 +88,7 @@ main(int argc, char** argv)
CHECK(solparser_entity_get_children_count(entity), 0);
CHECK(entity->type, SOLPARSER_ENTITY_GEOMETRY);
geom = solparser_get_geometry(parser, entity->data.geometry);
- CHECK(solparser_geometry_get_objects_count(geom), 3);
+ CHECK(solparser_geometry_get_objects_count(geom), 4);
obj_id = solparser_geometry_get_object(geom, 0);
obj = solparser_get_object(parser, obj_id);
@@ -96,6 +104,20 @@ main(int argc, char** argv)
CHECK(shape->type, SOLPARSER_SHAPE_PARABOL);
parabol = solparser_get_shape_parabol(parser, shape->data.parabol);
CHECK(parabol->focal, 10);
+ CHECK(parabol->nslices, 10);
+ CHECK(darray_polyclip_size_get(¶bol->polyclips), 1);
+ polyclip = darray_polyclip_cdata_get(¶bol->polyclips);
+ CHECK(polyclip->op, SOLPARSER_CLIP_OP_AND);
+ CHECK(solparser_polyclip_get_vertices_count(polyclip), 3);
+ solparser_polyclip_get_vertex(polyclip, 0, pos);
+ CHECK(pos[0], 1);
+ CHECK(pos[1], 2);
+ solparser_polyclip_get_vertex(polyclip, 1, pos);
+ CHECK(pos[0], 3);
+ CHECK(pos[1], 4);
+ solparser_polyclip_get_vertex(polyclip, 2, pos);
+ CHECK(pos[0], 6);
+ CHECK(pos[1], 7);
obj_id = solparser_geometry_get_object(geom, 2);
obj = solparser_get_object(parser, obj_id);
@@ -104,12 +126,20 @@ main(int argc, char** argv)
hyperbol = solparser_get_shape_hyperbol(parser, shape->data.hyperbol);
CHECK(hyperbol->focals.real, 10);
CHECK(hyperbol->focals.image, 2);
+ CHECK(hyperbol->nslices, 20);
mtl2 = solparser_get_material_double_sided(parser, obj->mtl2);
CHECK(mtl2->front.i, mtl2->back.i);
mtl = solparser_get_material(parser, mtl2->front);
CHECK(mtl->type, SOLPARSER_MATERIAL_VIRTUAL);
+ obj_id = solparser_geometry_get_object(geom, 3);
+ obj = solparser_get_object(parser, obj_id);
+ shape = solparser_get_shape(parser, obj->shape);
+ CHECK(shape->type, SOLPARSER_SHAPE_PLANE);
+ plane = solparser_get_shape_plane(parser, shape->data.plane);
+ CHECK(plane->nslices, 1); /* Default value */
+
solparser_entity_iterator_next(&it);
CHECK(solparser_entity_iterator_eq(&it, &end), 1);