|
1 from testsuite import problem_type, report_problem |
|
2 import linetypes |
|
3 from librarystandards import library_standards |
|
4 |
|
5 @problem_type('mirrored-studs', |
|
6 severity = 'warning', |
|
7 message = lambda primitive: str.format( |
|
8 '"{primitive}" should not be mirrored', |
|
9 primitive = primitive, |
|
10 ) |
|
11 ) |
|
12 def mirrored_studs_test(model): |
|
13 for subfile_reference in model.subfile_references: |
|
14 # Test whether any stud subfile is mirrored. |
|
15 # A subfile is mirrored if its determinant is negative. |
|
16 if subfile_reference.subfile_path.startswith('stu') \ |
|
17 and subfile_reference.subfile_path != 'stud4.dat' \ |
|
18 and subfile_reference.matrix.determinant() < 0: |
|
19 yield report_problem( |
|
20 'mirrored-studs', |
|
21 bad_object = subfile_reference, |
|
22 primitive = subfile_reference.subfile_path, |
|
23 ) |
|
24 |
|
25 manifest = {'tests': [mirrored_studs_test]} |