tests/subfiles.py

changeset 89
d2b277cb948e
parent 85
4438502fd3e0
child 92
b8d72909d593
--- a/tests/subfiles.py	Mon Jun 24 09:45:41 2019 +0300
+++ b/tests/subfiles.py	Mon Jun 24 10:13:13 2019 +0300
@@ -1,15 +1,8 @@
 from testsuite import problem_type, report_problem
 import testsuite
 from geometry import *
-from os.path import dirname
-from pathlib import Path
-from configparser import ConfigParser
 import math
-ini_path = Path(dirname(__file__)) / 'library-standards.ini'
-library_standards = ConfigParser()
-
-with ini_path.open() as file:
-    library_standards.read_file(file)
+from librarystandards import library_standards
 
 @problem_type('zero-determinant',
     severity = 'hold',
@@ -230,80 +223,10 @@
                 sorted_dims[-1],
             )
 
-@problem_type('bad-category',
-    severity = 'hold',
-    message = lambda category: str.format(
-        '"{category}" is not an official category',
-        category = category,
-    )
-)
-@problem_type('bad-category-in-description',
-    severity = 'hold',
-    message = lambda category: str.format(
-        'the category "{category}" must be set using !CATEGORY '
-        'and not by description',
-        category = category,
-    )
-)
-def category_test(model):
-    if model.header.valid:
-        categories = library_standards['categories']
-        illegal_categories_in_description = [
-            category_name.lower()
-            for category_name in categories.keys()
-            if ' ' in category_name
-        ]
-        has_bad_category = False
-        if model.header.effective_category not in categories.keys():
-            try:
-                bad_object = model.find_first_header_object('category')
-            except KeyError:
-                # category was not specified using !CATEGORY, blame
-                # the description instead
-                bad_object = model.body[0]
-            has_bad_category = True
-            yield report_problem(
-                'bad-category',
-                bad_object = bad_object,
-                category = model.header.effective_category,
-            )
-        # Check if the description sets a multi-word category
-        if not has_bad_category and model.header.category is None:
-            for category_name in illegal_categories_in_description:
-                if model.header.description.lower().startswith(category_name):
-                    yield report_problem(
-                        'bad-category-in-description',
-                        bad_object = model.body[0],
-                        category = category_name.title(),
-                    )
-                    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,
     ],
 }

mercurial