Minor IfcTester test case fixes

This commit is contained in:
Dion Moult
2022-10-18 23:11:11 +11:00
parent 6098d94223
commit d6be887bde
3 changed files with 24 additions and 9 deletions
+5 -1
View File
@@ -111,10 +111,14 @@ class IdsDocGenerator:
def __init__(self):
self.testcases = []
def __call__(self, name, ids, ifc, expected, applicable_entities=[], failed_entities=[]):
def __call__(self, name, ids, ifc, expected, applicable_entities=None, failed_entities=None):
ids.validate(ifc)
all_applicable = set()
all_failures = set()
if not applicable_entities:
applicable_entities = []
if not failed_entities:
failed_entities = []
for spec in ids.specifications:
assert spec.status is expected
all_applicable.update(spec.applicable_entities)
+1
View File
@@ -1541,6 +1541,7 @@ class TestPartOf:
facet = PartOf(relation="IfcRelNests", entity="IFCFURNITURE")
run("The nest entity must match exactly 2/2", facet=facet, inst=subelement, expected=True)
element.PredefinedType = "USERDEFINED"
element.ObjectType = "WATERBOTTLE"
facet = PartOf(relation="IfcRelNests", entity="IFCFURNITURE", predefinedType="LITTERBOX")
run("The nest predefined type must match exactly 1/2", facet=facet, inst=subelement, expected=False)
+18 -8
View File
@@ -23,12 +23,22 @@ import ifcopenshell
from ifctester import ids
def run(name, specs, model, expected, applicable_entities, failed_entities):
specs.validate(model)
spec = specs.specifications[0]
assert spec.status is expected
assert set(spec.applicable_entities) == set(applicable_entities)
assert set(spec.requirements[0].failed_entities) == set(failed_entities)
def run(name, ids, ifc, expected, applicable_entities=None, failed_entities=None):
ids.validate(ifc)
all_applicable = set()
all_failures = set()
if not applicable_entities:
applicable_entities = []
if not failed_entities:
failed_entities = []
for spec in ids.specifications:
assert spec.status is expected
all_applicable.update(spec.applicable_entities)
for requirement in spec.requirements:
if requirement.status is False:
all_failures.update(requirement.failed_entities)
assert set(all_applicable) == set(applicable_entities)
assert set(all_failures) == set(failed_entities)
class TestIds:
@@ -116,7 +126,7 @@ class TestIds:
waldo = model.createIfcWall(Name="Waldo")
run("A minimal IDS can check a minimal IFC 1/2", specs, model, False, [wall, waldo], [wall])
wall.Name = "Waldo"
run("A minimal IDS can check a minimal IFC 2/2", specs, model, True, [wall, waldo], [])
run("A minimal IDS can check a minimal IFC 2/2", specs, model, True, [wall, waldo])
spec.ifcVersion = ["IFC2X3"]
run(
@@ -124,7 +134,7 @@ class TestIds:
specs,
model,
True,
[wall, waldo],
[wall, waldo]
)
spec.ifcVersion = []