tests/subfiles.py

changeset 83
bd840d5dc8d8
parent 82
75b5241a35ec
child 85
4438502fd3e0
equal deleted inserted replaced
82:75b5241a35ec 83:bd840d5dc8d8
276 bad_object = model.body[0], 276 bad_object = model.body[0],
277 category = category_name.title(), 277 category = category_name.title(),
278 ) 278 )
279 break 279 break
280 280
281 @problem_type('mirrored-studs',
282 severity = 'warning',
283 message = lambda primitive: str.format(
284 '"{primitive}" should not be mirrored',
285 primitive = primitive,
286 )
287 )
288 def mirrored_studs_test(model):
289 for subfile_reference in model.subfile_references:
290 # Test whether any stud subfile is mirrored.
291 # A subfile is mirrored if its determinant is negative.
292 if subfile_reference.subfile_path.startswith('stu') \
293 and subfile_reference.subfile_path != 'stud4.dat' \
294 and subfile_reference.matrix.determinant() < 0:
295 yield report_problem(
296 'mirrored-studs',
297 bad_object = subfile_reference,
298 primitive = subfile_reference.subfile_path,
299 )
300
281 manifest = { 301 manifest = {
282 'tests': [ 302 'tests': [
283 determinant_test, 303 determinant_test,
284 scaling_legality_test, 304 scaling_legality_test,
285 dependent_subfile_tests, 305 dependent_subfile_tests,
286 category_test, 306 category_test,
307 mirrored_studs_test,
287 ], 308 ],
288 } 309 }

mercurial