tests/concave.py

changeset 16
09cc89622262
parent 14
d383f319f35b
child 18
672ebc45685a
--- a/tests/concave.py	Mon Jan 22 01:01:10 2018 +0200
+++ b/tests/concave.py	Mon Jan 22 13:51:13 2018 +0200
@@ -14,23 +14,31 @@
             for v1, v2, v3 in pairs(geometry.vertices, count = 3)
         ]
         if not sign_consistency(z_scores):
-            yield error(quadrilateral, 'Concave quadrilateral')
-
-def bowtie_quadrilateral_test(model):
-    ...
+            yield error(quadrilateral, 'concave-error')
 
 def skew_test(model):
+    ''' Test for non-coplanar quadrilaterals. '''
     for quadrilateral in model.quadrilaterals:
         for triangles in split_quadrilateral(quadrilateral.geometry):
             plane_1 = triangle_plane_normal(triangles[0])
             plane_2 = triangle_plane_normal(triangles[1])
-            angle = vector_angle(plane_1, plane_2, normalized = True)
-            if angle > radians(0.1):
-                yield error(quadrilateral,
-                    'Skew quadrilateral (plane angle {}°)',
-                    '%.3f' % degrees(angle))
+            skew_angle = vector_angle(plane_1, plane_2, normalized = True)
+            if skew_angle > radians(0.1):
+                yield error(quadrilateral, 'skew-error',
+                    skew_angle = skew_angle,
+                )
                 break
 
 manifest = {
-    'tests': {skew_test, concave_test},
+    'tests': {
+        'skew': skew_test,
+        'concave': concave_test,
+    },
+    'messages': {
+        'skew-error': lambda skew_angle:
+            str.format('Skew quadrilateral (plane angle {}°)',
+                '%.2f' % degrees(skew_angle),
+            ),
+        'concave-error': 'Concave quadrilateral',
+    },
 }

mercurial