diff -r 45b3aeb25003 -r 09cc89622262 tests/concave.py --- 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', + }, }