# HG changeset patch # User Teemu Piippo # Date 1561326664 -10800 # Node ID bd840d5dc8d8ea152e78042cb294f45ed5acee32 # Parent 75b5241a35ecb1c385d05bf6b022548b33565bf3 added a test for mirrored studs diff -r 75b5241a35ec -r bd840d5dc8d8 tests/subfiles.py --- a/tests/subfiles.py Mon Jun 24 00:38:18 2019 +0300 +++ b/tests/subfiles.py Mon Jun 24 00:51:04 2019 +0300 @@ -278,11 +278,32 @@ ) break +@problem_type('mirrored-studs', + severity = 'warning', + message = lambda primitive: str.format( + '"{primitive}" should not be mirrored', + primitive = primitive, + ) +) +def mirrored_studs_test(model): + for subfile_reference in model.subfile_references: + # Test whether any stud subfile is mirrored. + # A subfile is mirrored if its determinant is negative. + if subfile_reference.subfile_path.startswith('stu') \ + and subfile_reference.subfile_path != 'stud4.dat' \ + and subfile_reference.matrix.determinant() < 0: + yield report_problem( + 'mirrored-studs', + bad_object = subfile_reference, + primitive = subfile_reference.subfile_path, + ) + manifest = { 'tests': [ determinant_test, scaling_legality_test, dependent_subfile_tests, category_test, + mirrored_studs_test, ], }