diff -r 6a0b43a5dec0 -r d2b277cb948e tests/mirrored-studs.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mirrored-studs.py Mon Jun 24 10:13:13 2019 +0300 @@ -0,0 +1,25 @@ +from testsuite import problem_type, report_problem +import linetypes +from librarystandards import library_standards + +@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': [mirrored_studs_test]}