rules fixtures: append comment indicating fixture origin

This commit is contained in:
Andrej730
2026-08-03 16:51:10 +05:00
parent ea0be33aa1
commit 0e9ef70971
167 changed files with 238 additions and 75 deletions
@@ -11,3 +11,4 @@ DATA;
#4=IFCTEXTLITERALWITHEXTENT('My presentable text',#2,.RIGHT.,#3,'invalid');
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_01.py */
@@ -22,3 +22,4 @@ DATA;
#15=IFCPROJECT('3BXOBpFEDFqgWztkubS_w3',#7,'My Project',$,$,$,$,(#14),#6);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_00.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCPOSTALADDRESS(.USERDEFINED.,$,$,$,$,$,$,$,$,'The Netherlands');
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_05.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCPOSTALADDRESS($,$,$,$,$,$,$,$,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_05.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCTELECOMADDRESS(.USERDEFINED.,$,$,('040-12345678'),$,$,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_05.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCTELECOMADDRESS($,$,$,$,$,$,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_05.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCACTORROLE(.USERDEFINED.,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_04.py */
@@ -13,3 +13,4 @@ DATA;
#6=IFCAIRTERMINALTYPE('0JBQHqVzzAn8KUccnbTfxn',#5,'My Type',$,$,$,$,$,$,.USERDEFINED.);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_06.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCANNOTATIONCURVEOCCURRENCE(#1,(#3),$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_07.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCANNOTATIONSURFACE(#3,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_08.py */
@@ -23,3 +23,4 @@ DATA;
#16=IFCARBITRARYPROFILEDEFWITHVOIDS(.AREA.,$,#5,(#10,#15));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_12.py */
@@ -23,3 +23,4 @@ DATA;
#16=IFCARBITRARYPROFILEDEFWITHVOIDS(.AREA.,$,#5,(#10,#15));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_12.py */
@@ -23,3 +23,4 @@ DATA;
#16=IFCARBITRARYPROFILEDEFWITHVOIDS(.AREA.,$,#5,(#10,#15));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_12.py */
@@ -23,3 +23,4 @@ DATA;
#16=IFCARBITRARYPROFILEDEFWITHVOIDS(.CURVE.,$,#5,(#10,#15));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_12.py */
@@ -17,3 +17,4 @@ DATA;
#10=IFCARBITRARYPROFILEDEFWITHVOIDS(.AREA.,$,#5,(#9));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_12.py */
@@ -10,3 +10,4 @@ DATA;
#3=IFCRELASSOCIATESMATERIAL('3CndjAA6v4f9K4OHeiDzQJ',$,$,$,(#1),#2);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_20.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCAXIS2PLACEMENT3D(#1,#2,#3);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_13.py */
@@ -9,3 +9,4 @@ DATA;
#2=IFCAXIS2PLACEMENT3D(#1,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_13.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCAXIS2PLACEMENT3D(#1,#2,#3);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_13.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCAXIS2PLACEMENT3D(#1,#2,#3);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_13.py */
@@ -10,3 +10,4 @@ DATA;
#3=IFCAXIS2PLACEMENT3D(#1,#2,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_13.py */
@@ -10,3 +10,4 @@ DATA;
#3=IFCAXIS2PLACEMENT3D(#1,$,#2);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_13.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCAXIS2PLACEMENT3D(#1,#2,#3);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_13.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCBEZIERCURVE(1,(#1,#2,#3),.POLYLINE_FORM.,.F.,.F.);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_09.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCBEZIERCURVE(1,(#1,#2,#3),.POLYLINE_FORM.,.F.,.F.);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_09.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCCONVERSIONBASEDUNIT(#1,.LENGTHUNIT.,'beard-second',#3);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_14.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCCONVERSIONBASEDUNIT(#1,.LENGTHUNIT.,'beard-second',#3);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_14.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCCONVERSIONBASEDUNIT(#1,.LENGTHUNIT.,'beard-second',#3);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_14.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCCONVERSIONBASEDUNIT(#1,.LENGTHUNIT.,'beard-second',#3);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_14.py */
@@ -10,3 +10,4 @@ DATA;
#3=IFCCSHAPEPROFILEDEF(.AREA.,$,#2,2.,0.2,0.11,1.,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_10.py */
@@ -10,3 +10,4 @@ DATA;
#3=IFCCSHAPEPROFILEDEF(.AREA.,$,#2,3.,0.2,0.11,1.,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_10.py */
@@ -10,3 +10,4 @@ DATA;
#3=IFCCSHAPEPROFILEDEF(.AREA.,$,#2,2.,0.3,0.11,1.,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_10.py */
@@ -14,3 +14,4 @@ DATA;
#7=IFCEXTRUDEDAREASOLID(#3,#5,#6,-1.);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_03.py */
@@ -14,3 +14,4 @@ DATA;
#7=IFCEXTRUDEDAREASOLID(#3,#5,#6,0.);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_03.py */
@@ -14,3 +14,4 @@ DATA;
#7=IFCEXTRUDEDAREASOLID(#3,#5,#6,1.);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_11.py */
@@ -14,3 +14,4 @@ DATA;
#7=IFCEXTRUDEDAREASOLID(#3,#5,#6,1.);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_11.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCTEXTSTYLEFONTMODEL('Comic Sans',('Comic Sans'),$,$,$,IFCDESCRIPTIVEMEASURE('large'));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_23.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCTEXTSTYLEFONTMODEL('Comic Sans',('Comic Sans'),$,$,$,IFCLENGTHMEASURE(-1.));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_23.py */
@@ -9,3 +9,4 @@ DATA;
#2=IFCWINDOWTYPE('2sFDIHjAr5kQR0lJbTEoNk',$,'WindowType',$,$,(#1),$,$,$,$,$,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_21.py */
@@ -13,3 +13,4 @@ DATA;
#6=IFCLOCALPLACEMENT(#3,#5);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_19.py */
@@ -9,3 +9,4 @@ DATA;
#2=IFCINDEXEDPOLYCURVE(#1,(IFCLINEINDEX((1,2)),IFCLINEINDEX((1,2))),$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_25.py */
@@ -9,3 +9,4 @@ DATA;
#2=IFCINDEXEDPOLYCURVE(#1,(IFCLINEINDEX((1,2)),IFCLINEINDEX((1,2))),$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_25.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCPROPERTYLISTVALUE('Test',$,(IFCLABEL('test1'),IFCINTEGER(2)),$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_26.py */
@@ -17,3 +17,4 @@ DATA;
#10=IFCPROPERTYSET('1Tw$AqKzzBQPuA8zGJqIUi',#7,'MyPset',$,(#8,#9));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_16.py */
@@ -10,3 +10,4 @@ DATA;
#3=IFCRIGIDOPERATION(#1,#2,IFCLENGTHMEASURE(0.),IFCPLANEANGLEMEASURE(0.),0.);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_18.py */
@@ -14,3 +14,4 @@ DATA;
#7=IFCPRODUCTDEFINITIONSHAPE($,$,(#6));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_15.py */
@@ -15,3 +15,4 @@ DATA;
#8=IFCPRODUCTDEFINITIONSHAPE($,$,(#7));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_15.py */
@@ -16,3 +16,4 @@ DATA;
#9=IFCPRODUCTDEFINITIONSHAPE($,$,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_15.py */
@@ -15,3 +15,4 @@ DATA;
#8=IFCPRODUCTDEFINITIONSHAPE($,$,(#7));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_15.py */
@@ -15,3 +15,4 @@ DATA;
#8=IFCPRODUCTDEFINITIONSHAPE($,$,(#7));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_15.py */
@@ -20,3 +20,4 @@ DATA;
#13=IFCRELAGGREGATES('1CYKcUx8bCVONtEhGNofvT',#5,$,$,#12,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_02.py */
@@ -20,3 +20,4 @@ DATA;
#13=IFCRELAGGREGATES('0ftJphDcrFHvR_HqhkydLx',#5,$,$,#12,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_02.py */
@@ -20,3 +20,4 @@ DATA;
#13=IFCRELAGGREGATES('0Mz72m3wv1vhIkiYuTF$33',#5,$,$,#12,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_02.py */
@@ -20,3 +20,4 @@ DATA;
#13=IFCRELAGGREGATES('1rPcgnmMP9YAEyEucW3TPD',#5,$,$,#12,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_02.py */
@@ -20,3 +20,4 @@ DATA;
#13=IFCRELAGGREGATES('0_TRB2iODE5QhqVLs7Zy12',#5,$,$,#12,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_02.py */
@@ -20,3 +20,4 @@ DATA;
#13=IFCRELAGGREGATES('0zM2K36gPFTxLcMPH5cx6z',#5,$,$,#12,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_02.py */
@@ -20,3 +20,4 @@ DATA;
#13=IFCRELAGGREGATES('3oadkvoTH7cPvuYDaItJGQ',#5,$,$,#12,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_02.py */
@@ -20,3 +20,4 @@ DATA;
#13=IFCRELAGGREGATES('1lYkjcZ3j4bf6u6pIFvs_F',#5,$,$,#12,(#8));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_02.py */
@@ -14,3 +14,4 @@ DATA;
#7=IFCRELDEFINESBYPROPERTIES('1Q1amHTX1FCBA3duuSyAUM',$,$,$,(#1),#6);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_22.py */
@@ -18,3 +18,4 @@ DATA;
#11=IFCRELASSOCIATESMATERIAL('2B7uDMC_v8wOWBBvP1Vtcc',#7,$,$,(#8),#10);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_17.py */
@@ -15,3 +15,4 @@ DATA;
#8=IFCWALLSTANDARDCASE('313_Ms2Mn4GvZ$AjGfM64i',#7,$,$,$,$,$,$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_17.py */
@@ -23,3 +23,4 @@ DATA;
#16=IFCRELAGGREGATES('0XSXh8axL1QR0GEJYOhdIU',#7,$,$,#11,(#14));
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_24.py */
@@ -22,3 +22,4 @@ DATA;
#15=IFCRELAGGREGATES('1jWolXHqPC2AOXHDZZCI8I',#7,$,$,#11,());
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_24.py */
+17
View File
@@ -1,11 +1,14 @@
import subprocess
import sys
from pathlib import Path
from typing import Literal, TypeAlias
import ifcopenshell
directory = Path(__file__).parent
Result: TypeAlias = Literal["fail", "pass"]
def normalize_header(f: ifcopenshell.file) -> None:
f.header.file_name.time_stamp = "1970-01-01T00:00:00"
@@ -13,6 +16,20 @@ def normalize_header(f: ifcopenshell.file) -> None:
f.header.file_name.originating_system = "IfcOpenShell"
def pass_if(condition: bool) -> Result:
return "pass" if condition else "fail"
def fail_if(condition: bool) -> Result:
return "fail" if condition else "pass"
def write_fixture(file: ifcopenshell.file, source: str, result: Result, path: str) -> None:
content = file.to_string()
content += f"/* IFC fixture is generated by {Path(source).name} */\n"
Path(f"{result}-{path}.ifc").write_text(content)
if __name__ == "__main__":
for path in directory.glob("*.ifc"):
path.unlink()
+2 -2
View File
@@ -1,7 +1,7 @@
import time
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
for i in range(3):
f = ifcopenshell.file(schema="IFC2X3")
@@ -28,4 +28,4 @@ for i in range(3):
],
)
normalize_header(f)
f.write(f"{'fail' if i == 2 else 'pass'}-{i}-projects-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(i != 2), f"{i}-projects-ifc2x3")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
for i, box_alignment in enumerate(["top-left", "center", "invalid", "CENTER"]):
f = ifcopenshell.file(schema="IFC2X3")
@@ -14,4 +14,4 @@ for i, box_alignment in enumerate(["top-left", "center", "invalid", "CENTER"]):
suffix = "-uppercase" if box_alignment == "CENTER" else ""
normalize_header(f)
f.write(f"{'pass' if i in (0,1,3) else 'fail'}-{i}-box-alignment-{box_alignment}{suffix}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(i in (0, 1, 3)), f"{i}-box-alignment-{box_alignment}{suffix}-ifc2x3")
+2 -2
View File
@@ -1,7 +1,7 @@
import time
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
latitudes = [
(False, (-361, 0, 0)),
@@ -47,4 +47,4 @@ for i, (is_valid, lat) in enumerate(latitudes):
)
f.createIfcRelAggregates(ifcopenshell.guid.new(), ownerhist, None, None, proj, [site])
normalize_header(f)
f.write(f"{'pass' if is_valid else 'fail'}-site-latitude-{i}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(is_valid), f"site-latitude-{i}-ifc2x3")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
for depth in (-1.0, 0.0, 1.0):
f = ifcopenshell.file(schema="IFC2X3")
@@ -12,4 +12,4 @@ for depth in (-1.0, 0.0, 1.0):
depth,
)
normalize_header(f)
f.write(f"{'pass' if depth > 0. else 'fail'}-extrusion-depth-{depth}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(depth > 0.0), f"extrusion-depth-{depth}-ifc2x3")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import fail_if, normalize_header, write_fixture
for i, (r1, r2) in enumerate(
[("SUPPLIER", None), ("SUPPLIER", "Valid"), ("USERDEFINED", "Valid"), ("USERDEFINED", None)]
@@ -7,4 +7,4 @@ for i, (r1, r2) in enumerate(
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcActorRole(r1, r2)
normalize_header(f)
f.write(f"{'fail' if i == 3 else 'pass'}-actor-role-{r1}-{r2}-ifc2x3.ifc")
write_fixture(f, __file__, fail_if(i == 3), f"actor-role-{r1}-{r2}-ifc2x3")
+3 -3
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
options = {
"IfcPostalAddress": ({}, {"Country": "The Netherlands"}, {"Country": "The Netherlands", "Town": "Eindhoven"}),
@@ -20,7 +20,7 @@ for ent in ("IfcPostalAddress", "IfcTelecomAddress"):
valid = not (purpose == "USERDEFINED" and ud is None)
normalize_header(f)
f.write(f"{'pass' if valid else 'fail'}-{ent}-{purpose}-{ud}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(valid), f"{ent}-{purpose}-{ud}-ifc2x3")
for kwargs in options[ent]:
f = ifcopenshell.file(schema="IFC2X3")
@@ -29,4 +29,4 @@ for ent in ("IfcPostalAddress", "IfcTelecomAddress"):
if not valid:
kwargs = {"all-unset": 1}
normalize_header(f)
f.write(f"{'pass' if valid else 'fail'}-{ent}-{'-'.join(kwargs.keys())}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(valid), f"{ent}-{'-'.join(kwargs.keys())}-ifc2x3")
+2 -2
View File
@@ -2,7 +2,7 @@ import itertools
import time
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
for pty, ety in itertools.product(("GRILLE", "USERDEFINED"), (None, "Something")):
f = ifcopenshell.file(schema="IFC2X3")
@@ -14,4 +14,4 @@ for pty, ety in itertools.product(("GRILLE", "USERDEFINED"), (None, "Something")
f.createIfcAirTerminalType(ifcopenshell.guid.new(), ownerhist, "My Type", ElementType=ety, PredefinedType=pty)
valid = pty != "USERDEFINED" or ety is not None
normalize_header(f)
f.write(f"{'pass' if valid else 'fail'}-air-terminal-type-{pty}-{ety}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(valid), f"air-terminal-type-{pty}-{ety}-ifc2x3")
+6 -3
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import fail_if, normalize_header, write_fixture
create_none = lambda f: None
create_polyline = lambda f: f.createIfcPolyline(
@@ -13,6 +13,9 @@ for i, make_item in enumerate((create_none, create_polyline, create_point)):
make_item(f), [f.createIfcPresentationStyleAssignment([f.createIfcCurveStyle()])]
)
normalize_header(f)
f.write(
f"{'fail' if i == 2 else 'pass'}-annotation-curve-occurence-{'None' if inst.Item is None else inst.Item.is_a()}-ifc2x3.ifc"
write_fixture(
f,
__file__,
fail_if(i == 2),
f"annotation-curve-occurence-{'None' if inst.Item is None else inst.Item.is_a()}-ifc2x3",
)
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import fail_if, normalize_header, write_fixture
create_plane = lambda f: f.createIfcPlane(f.createIfcAxis2Placement3D(f.createIfcCartesianPoint((0.0, 0.0, 0.0))))
create_polyline = lambda f: f.createIfcPolyline(
@@ -10,4 +10,4 @@ for i, make_item in enumerate((create_plane, create_polyline)):
f = ifcopenshell.file(schema="IFC2X3")
inst = f.createIfcAnnotationSurface(make_item(f))
normalize_header(f)
f.write(f"{'fail' if i == 1 else 'pass'}-annotation-surface-{inst.Item.is_a()}-ifc2x3.ifc")
write_fixture(f, __file__, fail_if(i == 1), f"annotation-surface-{inst.Item.is_a()}-ifc2x3")
+6 -3
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
pts = [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)]
dims = [(2, 3, 3), (3, 3, 2), (2, 2, 2), (3, 3, 3)]
@@ -15,6 +15,9 @@ for d in dims:
"IfcBezierCurve", 1, list(map(lambda t: make_point(*t), zip(pts, d))), "POLYLINE_FORM", False, False
)
normalize_header(f)
f.write(
f"{'pass' if len(set(d)) == 1 else 'fail'}-bspline-curve-point-dimensions-{'-'.join(map(str, d))}-ifc2x3.ifc"
write_fixture(
f,
__file__,
pass_if(len(set(d)) == 1),
f"bspline-curve-point-dimensions-{'-'.join(map(str, d))}-ifc2x3",
)
+2 -2
View File
@@ -1,7 +1,7 @@
import itertools
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
defaults = {"Girth": 1.0, "WallThickness": 0.11}
depths = [2.0, 3.0]
@@ -22,4 +22,4 @@ for d, w in itertools.product(depths, widths):
"AREA", None, f.createIfcAxis2Placement2D(f.createIfcCartesianPoint((0.0, 0.0))), **D
)
normalize_header(f)
f.write(f"{'pass' if valid else 'fail'}-cshape-profile-width-{w}-depth-{d}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(valid), f"cshape-profile-width-{w}-depth-{d}-ifc2x3")
+2 -2
View File
@@ -1,6 +1,6 @@
import ifcopenshell
import ifcopenshell.util.schema
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
depth = 1.0
for dir_x, dir_z in ((0.0, -1.0), (0.0, 0.0), (1.0, 0.0), (1.0, 0.001), (0.0, 1.0)):
@@ -29,4 +29,4 @@ for dir_x, dir_z in ((0.0, -1.0), (0.0, 0.0), (1.0, 0.0), (1.0, 0.001), (0.0, 1.
valid = True
normalize_header(f)
f.write(f"{'pass' if valid else 'fail'}-extrusion-dir-{dir_x}-{dir_z}-{f.schema.lower()}.ifc")
write_fixture(f, __file__, pass_if(valid), f"extrusion-dir-{dir_x}-{dir_z}-{f.schema.lower()}")
+7 -7
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, write_fixture
coords = [(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0)]
make_3d = lambda cs: [c + (0.0,) for c in cs]
@@ -20,7 +20,7 @@ f.createIfcArbitraryProfileDefWithVoids(
],
)
normalize_header(f)
f.write(f"pass-arbitrary-profile-with-voids-ifc2x3.ifc")
write_fixture(f, __file__, "pass", "arbitrary-profile-with-voids-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcArbitraryProfileDefWithVoids(
@@ -33,7 +33,7 @@ f.createIfcArbitraryProfileDefWithVoids(
],
)
normalize_header(f)
f.write(f"fail-arbitrary-profile-with-voids-curve-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "arbitrary-profile-with-voids-curve-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcArbitraryProfileDefWithVoids(
@@ -46,7 +46,7 @@ f.createIfcArbitraryProfileDefWithVoids(
],
)
normalize_header(f)
f.write(f"fail-arbitrary-profile-with-voids-3d-outer-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "arbitrary-profile-with-voids-3d-outer-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcArbitraryProfileDefWithVoids(
@@ -59,7 +59,7 @@ f.createIfcArbitraryProfileDefWithVoids(
],
)
normalize_header(f)
f.write(f"fail-arbitrary-profile-with-voids-3d-inner-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "arbitrary-profile-with-voids-3d-inner-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcArbitraryProfileDefWithVoids(
@@ -72,7 +72,7 @@ f.createIfcArbitraryProfileDefWithVoids(
],
)
normalize_header(f)
f.write(f"fail-arbitrary-profile-with-voids-3d-inner-2-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "arbitrary-profile-with-voids-3d-inner-2-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcArbitraryProfileDefWithVoids(
@@ -82,4 +82,4 @@ f.createIfcArbitraryProfileDefWithVoids(
[f.createIfcLine(f.createIfcCartesianPoint((0.0, 0.0)), f.createIfcVector(f.createIfcDirection((0.0, 0.0)), 1.0))],
)
normalize_header(f)
f.write(f"fail-arbitrary-profile-with-voids-inner-line-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "arbitrary-profile-with-voids-inner-line-ifc2x3")
+10 -10
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, write_fixture
coords = [(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0)]
make_3d = lambda cs: [c + (0.0,) for c in cs]
@@ -12,7 +12,7 @@ map = lambda fn, *args: list(old_map(fn, *args))
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(f.createIfcCartesianPoint((0.0, 0.0, 0.0)))
normalize_header(f)
f.write(f"pass-axis2-3d-pos-ifc2x3.ifc")
write_fixture(f, __file__, "pass", "axis2-3d-pos-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(
@@ -21,7 +21,7 @@ f.createIfcAxis2Placement3D(
f.createIfcDirection((1.0, 0.0, 0.0)),
)
normalize_header(f)
f.write(f"pass-axis2-two-directions-ifc2x3.ifc")
write_fixture(f, __file__, "pass", "axis2-two-directions-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(
@@ -30,7 +30,7 @@ f.createIfcAxis2Placement3D(
RefDirection=None,
)
normalize_header(f)
f.write(f"fail-axis2-only-axis-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "axis2-only-axis-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(
@@ -39,7 +39,7 @@ f.createIfcAxis2Placement3D(
RefDirection=f.createIfcDirection((1.0, 0.0, 0.0)),
)
normalize_header(f)
f.write(f"fail-axis2-only-ref-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "axis2-only-ref-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(
@@ -48,14 +48,14 @@ f.createIfcAxis2Placement3D(
f.createIfcDirection((0.0, 1.0, 0.0)),
)
normalize_header(f)
f.write(f"fail-axis2-2d-axis-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "axis2-2d-axis-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(
f.createIfcCartesianPoint((0.0, 0.0)),
)
normalize_header(f)
f.write(f"fail-axis2-2d-pos-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "axis2-2d-pos-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(
@@ -64,7 +64,7 @@ f.createIfcAxis2Placement3D(
f.createIfcDirection((1.0, 0.0)),
)
normalize_header(f)
f.write(f"fail-axis2-2d-ref-ifc2x3.ifc")
write_fixture(f, __file__, "fail", "axis2-2d-ref-ifc2x3")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(
@@ -73,7 +73,7 @@ f.createIfcAxis2Placement3D(
RefDirection=f.createIfcDirection((0.0, 0.0, 1.0)),
)
normalize_header(f)
f.write(f"fail-axis2-parallel-axes.ifc")
write_fixture(f, __file__, "fail", "axis2-parallel-axes")
f = ifcopenshell.file(schema="IFC2X3")
f.createIfcAxis2Placement3D(
@@ -82,4 +82,4 @@ f.createIfcAxis2Placement3D(
RefDirection=f.createIfcDirection((0.0, 0.0, -1.0)),
)
normalize_header(f)
f.write(f"fail-axis2-anti-parallel-axes.ifc")
write_fixture(f, __file__, "fail", "axis2-anti-parallel-axes")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
dims = [
(1, 0, 0, 0, 0, 0, 0),
@@ -18,4 +18,4 @@ for i, d in enumerate(dims):
f.createIfcMeasureWithUnit(f.createIfcLengthMeasure(5.0), f.createIfcSIUnit(Prefix="NANO", Name="METRE")),
)
normalize_header(f)
f.write(f"{'pass' if i == 0 else 'fail'}-conv-unit-{i}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(i == 0), f"conv-unit-{i}-ifc2x3")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
coords = [(0.0, 0.0), (10.0, 0.0)]
coords_2 = [(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0)]
@@ -76,4 +76,4 @@ for is_valid, dims, rep_type, name, fn in options:
]
)
normalize_header(f)
f.write(f"{'pass' if is_valid else 'fail'}-shaperep-{rep_type.lower()}-{name}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(is_valid), f"shaperep-{rep_type.lower()}-{name}-ifc2x3")
+2 -3
View File
@@ -1,7 +1,7 @@
import time
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
names = [("Same", "Same"), ("Different", "SomethingElse")]
@@ -20,5 +20,4 @@ for nms in names:
ownerhist = f.createIfcOwnerHistory(pando, appl, ChangeAction="ADDED", CreationDate=int(time.time()))
f.createIfcPropertySet(ifcopenshell.guid.new(), ownerhist, "MyPset", HasProperties=map(make_prop(f), nms))
normalize_header(f)
f.write(f"{'pass' if len(set(nms)) == len(nms) else 'fail'}-property-{'-'.join(map(str.lower, nms))}-ifc2x3.ifc")
15
write_fixture(f, __file__, pass_if(len(set(nms)) == len(nms)), f"property-{'-'.join(map(str.lower, nms))}-ifc2x3")
+2 -2
View File
@@ -1,7 +1,7 @@
import time
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
for i, nm in enumerate(("no-mls", "mls", "mlsu")):
f = ifcopenshell.file(schema="IFC2X3")
@@ -20,4 +20,4 @@ for i, nm in enumerate(("no-mls", "mls", "mlsu")):
ifcopenshell.guid.new(), ownerhist, RelatedObjects=[wall], RelatingMaterial=mls
)
normalize_header(f)
f.write(f"{'pass' if i == 2 else 'fail'}-wall-{nm}-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(i == 2), f"wall-{nm}-ifc2x3")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
for i, type_decl in enumerate(("IfcLengthMeasure", "IfcPlaneAngleMeasure")):
f = ifcopenshell.file(schema="IFC4X3")
@@ -11,4 +11,4 @@ for i, type_decl in enumerate(("IfcLengthMeasure", "IfcPlaneAngleMeasure")):
Height=0.0,
)
normalize_header(f)
f.write(f"{'pass' if i else 'fail'}-rigid-op-IfcPlaneAngleMeasure-{type_decl}-ifc4x3.ifc")
write_fixture(f, __file__, pass_if(bool(i)), f"rigid-op-IfcPlaneAngleMeasure-{type_decl}-ifc4x3")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
make_nd = lambda d: lambda *c: (c + (0.0,)) if d == 3 else c
@@ -15,4 +15,4 @@ for d1, d2 in ((2, 3), (3, 3), (3, 2)):
RelativePlacement=f.create_entity(f"IfcAxis2Placement{d2}D", f.createIfcCartesianPoint(make_nd(d2)(0.0, 0.0))),
)
normalize_header(f)
f.write(f"{'pass' if d1 >= d2 else 'fail'}-placement-{d1}d-{d2}d-ifc2x3.ifc")
write_fixture(f, __file__, pass_if(d1 >= d2), f"placement-{d1}d-{d2}d-ifc2x3")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
task = lambda f: f.createIfcTask(ifcopenshell.guid.new(), None, "sleep", IsMilestone=True)
wall = lambda f: f.createIfcWall(ifcopenshell.guid.new())
@@ -9,4 +9,4 @@ for i, fn in enumerate((task, wall)):
elem = fn(f)
f.createIfcRelAssociatesMaterial(ifcopenshell.guid.new(), None, None, None, [elem], f.createIfcMaterial("brick"))
normalize_header(f)
f.write(f"{'pass' if i else 'fail'}-assoc-material-{elem.is_a()}-{f.schema}.ifc")
write_fixture(f, __file__, pass_if(bool(i)), f"assoc-material-{elem.is_a()}-{f.schema}")
+2 -2
View File
@@ -1,7 +1,7 @@
import itertools
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
def EXISTS(v):
@@ -26,4 +26,4 @@ for LiningDepth, LiningThickness in itertools.product((None, 1.0), (None, 1.0)):
],
)
normalize_header(f)
f.write(f"{'pass' if valid else 'fail'}-lining-properties-{LiningDepth}-{LiningThickness}.ifc")
write_fixture(f, __file__, pass_if(valid), f"lining-properties-{LiningDepth}-{LiningThickness}")
+3 -3
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
for cnt in range(0, 3):
f = ifcopenshell.file(schema="IFC4")
@@ -20,7 +20,7 @@ for cnt in range(0, 3):
),
)
normalize_header(f)
f.write(f"{'pass' if cnt < 2 else 'fail'}-wall-{cnt}-same-psets.ifc")
write_fixture(f, __file__, pass_if(cnt < 2), f"wall-{cnt}-same-psets")
f = ifcopenshell.file(schema="IFC4")
@@ -54,4 +54,4 @@ f.createIfcRelDefinesByProperties(
),
)
normalize_header(f)
f.write(f"pass-wall-different-psets.ifc")
write_fixture(f, __file__, "pass", "wall-different-psets")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
fns = [
(False, lambda f: f.createIfcLengthMeasure(-1.0)),
@@ -13,4 +13,4 @@ for valid, fn in fns:
fs = fn(f)
f.createIfcTextStyleFontModel("Comic Sans", ("Comic Sans",), FontSize=fs)
normalize_header(f)
f.write(f"{'pass' if valid else 'fail'}-font-{fs.is_a()}-{fs[0]}.ifc")
write_fixture(f, __file__, pass_if(valid), f"font-{fs.is_a()}-{fs[0]}")
+2 -2
View File
@@ -1,7 +1,7 @@
import time
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, pass_if, write_fixture
for ents in [
("IfcWall",),
@@ -57,4 +57,4 @@ for ents in [
)
valid = not (set(ents) - {"IfcZone", "IfcSpace"})
normalize_header(f)
f.write(f"{'pass' if valid else 'fail'}-zone-with-{'-'.join(ents)}-{f.schema.lower()}.ifc")
write_fixture(f, __file__, pass_if(valid), f"zone-with-{'-'.join(ents)}-{f.schema.lower()}")
+6 -3
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import fail_if, normalize_header, write_fixture
segs = [
lambda _: None,
@@ -13,6 +13,9 @@ for schema in ("IFC4", "IFC4X3"):
s = seg(f)
f.createIfcIndexedPolyCurve(f.createIfcCartesianPointList2D([(0.0, 0.0), (0.0, 1.0), (1.0, 1.0)]), s)
normalize_header(f)
f.write(
f'{"fail" if i == 2 else "pass"}-poly-curve-{"no-segments" if s is None else "-".join(["-".join(map(str, x[0])) for x in s])}-{schema.lower()}.ifc'
write_fixture(
f,
__file__,
fail_if(i == 2),
f'poly-curve-{"no-segments" if s is None else "-".join(["-".join(map(str, x[0])) for x in s])}-{schema.lower()}',
)
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, write_fixture
cases = (
("pass", "label-values", ("test1", "test2")),
@@ -17,4 +17,4 @@ for result, name, values in cases:
]
ifc_file.create_entity("IfcPropertyListValue", Name="Test", ListValues=list_values)
normalize_header(ifc_file)
ifc_file.write(f"{result}-property-list-value-{name}.ifc")
write_fixture(ifc_file, __file__, result, f"property-list-value-{name}")
+2 -2
View File
@@ -1,5 +1,5 @@
import ifcopenshell
from generate import normalize_header
from generate import normalize_header, write_fixture
ifc_file = ifcopenshell.file(schema="IFC2X3")
ifc_file.create_entity(
@@ -7,4 +7,4 @@ ifc_file.create_entity(
CurveWidth=ifc_file.create_entity("IfcDescriptiveMeasure", "by layer"),
)
normalize_header(ifc_file)
ifc_file.write("pass-IfcCurveStyle-ifc2x3.ifc")
write_fixture(ifc_file, __file__, "pass", "IfcCurveStyle-ifc2x3")
@@ -11,3 +11,4 @@ DATA;
#4=IFCTEXTLITERALWITHEXTENT('My presentable text',#2,.RIGHT.,#3,'top-left');
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_01.py */
@@ -14,3 +14,4 @@ DATA;
#7=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,$,$,1671800044);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_00.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCTEXTLITERALWITHEXTENT('My presentable text',#2,.RIGHT.,#3,'center');
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_01.py */
@@ -18,3 +18,4 @@ DATA;
#11=IFCPROJECT('3kan11u0f3Nus_VFUxfHxT',#7,'My Project',$,$,$,$,(#10),#6);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_00.py */
@@ -11,3 +11,4 @@ DATA;
#4=IFCTEXTLITERALWITHEXTENT('My presentable text',#2,.RIGHT.,#3,'CENTER');
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_01.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCCURVESTYLE($,$,IFCDESCRIPTIVEMEASURE('by layer'),$);
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_27.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCPOSTALADDRESS($,$,$,$,$,$,'Eindhoven',$,$,'The Netherlands');
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_05.py */
@@ -8,3 +8,4 @@ DATA;
#1=IFCPOSTALADDRESS($,$,$,$,$,$,$,$,$,'The Netherlands');
ENDSEC;
END-ISO-10303-21;
/* IFC fixture is generated by generate_05.py */

Some files were not shown because too many files have changed in this diff Show More