commit 2632eca46cc2eb8325bfd0fc664de9e8b855b667
parent 436c4e4c42ae34bc19cea8dd86b40cc2671cb0ae
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 15 Mar 2017 16:12:02 +0100
Test the "slices" quadric parameter
Diffstat:
4 files changed, 165 insertions(+), 2 deletions(-)
diff --git a/cmake/parser/CMakeLists.txt b/cmake/parser/CMakeLists.txt
@@ -80,6 +80,8 @@ if(NOT NO_TEST)
${SOLPARSER_SOURCE_DIR}/yaml/test_ok_4.yaml)
add_test(test_solparser_ok_5 test_solparser
${SOLPARSER_SOURCE_DIR}/yaml/test_ok_5.yaml)
+ add_test(test_solparser_ok_6 test_solparser
+ ${SOLPARSER_SOURCE_DIR}/yaml/test_ok_6.yaml)
add_test(test_solparser_ko test_solparser -e
${SOLPARSER_SOURCE_DIR}/yaml/test_ko_0.yaml)
diff --git a/src/parser/test_solparser6.c b/src/parser/test_solparser6.c
@@ -52,12 +52,14 @@ main(int argc, char** argv)
fprintf(stream, " material: { ?virtual }\n");
fprintf(stream, " - parabol:\n");
fprintf(stream, " focal: 10\n");
+ fprintf(stream, " slices : 10\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");
fprintf(stream, " - hyperbol:\n");
fprintf(stream, " focals: { real: 10, image: 2 }\n");
+ fprintf(stream, " slices : 20\n");
fprintf(stream, " clip :\n");
fprintf(stream, " - operation : AND\n");
fprintf(stream, " vertices : [[1, 2], [3, 4], [6, 7]]\n");
diff --git a/src/parser/yaml/test_ko_0.yaml b/src/parser/yaml/test_ko_0.yaml
@@ -570,6 +570,33 @@
- operation: AND
vertices: [ [1, 2], [3, 4], [6, 7] ]
---
+# invalid slices
+- geometry:
+ - parabol:
+ slices: 1
+ focal: 1
+ clip:
+ - operation: AND
+ vertices: [ [1, 2], [3, 4], [6, 7] ]
+---
+# invalid slices
+- geometry:
+ - parabol:
+ slices: 0
+ focal: 1
+ clip:
+ - operation: AND
+ vertices: [ [1, 2], [3, 4], [6, 7] ]
+---
+# invalid slices
+- geometry:
+ - parabol:
+ slices: 4097
+ focal: 1
+ clip:
+ - operation: AND
+ vertices: [ [1, 2], [3, 4], [6, 7] ]
+---
#
# <parabolic-cylinder> ::=
@@ -634,7 +661,7 @@
# <hyperboloid_focals> ::=
# real: REAL # in ]0, INF)
# image: REAL # in ]0, INF)
-#
+#
# missing hyperbol definition
- geometry: [ { hyperbol: } ]
---
@@ -735,7 +762,31 @@
- operation: AND
vertices: [ [1, 2], [3, 4], [6, 7] ]
---
+# invalid slices
+- geometry: &target
+ - plane:
+ slices: 0
+ clip:
+ - operation: AND
+ vertices:
+ - [-0.50, -0.50]
+ - [-0.50, 0.50]
+ - [0.50, 0.50]
+ - [0.50, -0.50]
+---
+# invalid slices
+- geometry: &target
+ - plane:
+ slices: 4097
+ clip:
+ - operation: AND
+ vertices:
+ - [-0.50, -0.50]
+ - [-0.50, 0.50]
+ - [0.50, 0.50]
+ - [0.50, -0.50]
+---
#
# <sphere> ::=
# sphere:
@@ -1160,7 +1211,7 @@
#
# <position-description> ::=
# position: <real3> | hyperboloid_image_focals: <hyperboloid_focals>
-#
+#
# missing anchors definition
- entity:
diff --git a/src/parser/yaml/test_ok_6.yaml b/src/parser/yaml/test_ok_6.yaml
@@ -0,0 +1,108 @@
+- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] }
+- entity:
+ name: entity
+ primary: 1
+ geometry:
+ - material: { mirror: { reflectivity: 0, roughness: 0.5 } }
+ plane:
+ slices: 4
+ clip:
+ - operation: AND
+ vertices:
+ - [-0.50, -0.50]
+ - [-0.50, 0.50]
+ - [0.50, 0.50]
+ - [0.50, -0.50]
+---
+- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] }
+- entity:
+ name: entity
+ primary: 1
+ geometry:
+ - material: { mirror: { reflectivity: 0, roughness: 0.5 } }
+ plane:
+ clip:
+ - operation: AND
+ vertices:
+ - [-0.50, -0.50]
+ - [-0.50, 0.50]
+ - [0.50, 0.50]
+ - [0.50, -0.50]
+---
+- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] }
+- entity:
+ name: entity
+ primary: 1
+ geometry:
+ - material: { mirror: { reflectivity: 0, roughness: 0.5 } }
+ parabol:
+ slices: 40
+ focal: 18
+ clip:
+ - operation: AND
+ vertices: [[-30.0, -20.0], [-30.0, 20.0], [30.0, 20.0], [30.0, -20.0]]
+---
+- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] }
+- entity:
+ name: entity
+ primary: 1
+ geometry:
+ - material: { mirror: { reflectivity: 0, roughness: 0.5 } }
+ parabol:
+ focal: 18
+ clip:
+ - operation: AND
+ vertices: [[-30.0, -20.0], [-30.0, 20.0], [30.0, 20.0], [30.0, -20.0]]
+---
+- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] }
+- entity:
+ name: entity
+ primary: 1
+ geometry:
+ - material: { mirror: { reflectivity: 0, roughness: 0.5 } }
+ parabolic-cylinder:
+ slices: 40
+ focal: 18
+ clip:
+ - operation: AND
+ vertices: [[-30.0, -20.0], [-30.0, 20.0], [30.0, 20.0], [30.0, -20.0]]
+---
+- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] }
+- entity:
+ name: entity
+ primary: 1
+ geometry:
+ - material: { mirror: { reflectivity: 0, roughness: 0.5 } }
+ parabolic-cylinder:
+ focal: 18
+ clip:
+ - operation: AND
+ vertices: [[-30.0, -20.0], [-30.0, 20.0], [30.0, 20.0], [30.0, -20.0]]
+
+---
+- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] }
+- entity:
+ name: entity
+ primary: 1
+ geometry:
+ - material: { mirror: { reflectivity: 0, roughness: 0.5 } }
+ hyperbol:
+ slices: 40
+ focals: { real: 1, image: 1 }
+ clip:
+ - operation: AND
+ vertices: [[-30.0, -20.0], [-30.0, 20.0], [30.0, 20.0], [30.0, -20.0]]
+---
+- sun: { dni: 1, spectrum: [{wavelength: 1, data: 1}] }
+- entity:
+ name: entity
+ primary: 1
+ geometry:
+ - material: { mirror: { reflectivity: 0, roughness: 0.5 } }
+ hyperbol:
+ focals: { real: 1, image: 1 }
+ clip:
+ - operation: AND
+ vertices: [[-30.0, -20.0], [-30.0, 20.0], [30.0, 20.0], [30.0, -20.0]]
+
+