From 9813dda7786e23e13f5fb34e2e1e4067e3003247 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 5 Feb 2023 13:08:46 +0100 Subject: [PATCH] Express rules: test case for instance comparison --- .../fail-font-IfcDescriptiveMeasure-large.ifc | 10 ++++++++++ .../rules/fail-font-IfcLengthMeasure--1.0.ifc | 10 ++++++++++ .../test/fixtures/rules/generate_23.py | 14 ++++++++++++++ .../rules/pass-font-IfcLengthMeasure-1.0.ifc | 10 ++++++++++ .../pass-font-IfcPositiveLengthMeasure-1.0.ifc | 10 ++++++++++ 5 files changed, 54 insertions(+) create mode 100644 src/ifcopenshell-python/test/fixtures/rules/fail-font-IfcDescriptiveMeasure-large.ifc create mode 100644 src/ifcopenshell-python/test/fixtures/rules/fail-font-IfcLengthMeasure--1.0.ifc create mode 100644 src/ifcopenshell-python/test/fixtures/rules/generate_23.py create mode 100644 src/ifcopenshell-python/test/fixtures/rules/pass-font-IfcLengthMeasure-1.0.ifc create mode 100644 src/ifcopenshell-python/test/fixtures/rules/pass-font-IfcPositiveLengthMeasure-1.0.ifc diff --git a/src/ifcopenshell-python/test/fixtures/rules/fail-font-IfcDescriptiveMeasure-large.ifc b/src/ifcopenshell-python/test/fixtures/rules/fail-font-IfcDescriptiveMeasure-large.ifc new file mode 100644 index 0000000000..75fdbe94e0 --- /dev/null +++ b/src/ifcopenshell-python/test/fixtures/rules/fail-font-IfcDescriptiveMeasure-large.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2023-02-05T12:05:57',(),(),'IfcOpenShell v0.7.0-07ee62eb9','IfcOpenShell v0.7.0-07ee62eb9',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTEXTSTYLEFONTMODEL('Comic Sans',('Comic Sans'),$,$,$,IFCDESCRIPTIVEMEASURE('large')); +ENDSEC; +END-ISO-10303-21; diff --git a/src/ifcopenshell-python/test/fixtures/rules/fail-font-IfcLengthMeasure--1.0.ifc b/src/ifcopenshell-python/test/fixtures/rules/fail-font-IfcLengthMeasure--1.0.ifc new file mode 100644 index 0000000000..1d5ce54c4b --- /dev/null +++ b/src/ifcopenshell-python/test/fixtures/rules/fail-font-IfcLengthMeasure--1.0.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2023-02-05T12:05:57',(),(),'IfcOpenShell v0.7.0-07ee62eb9','IfcOpenShell v0.7.0-07ee62eb9',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTEXTSTYLEFONTMODEL('Comic Sans',('Comic Sans'),$,$,$,IFCLENGTHMEASURE(-1.)); +ENDSEC; +END-ISO-10303-21; diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_23.py b/src/ifcopenshell-python/test/fixtures/rules/generate_23.py new file mode 100644 index 0000000000..22546ce436 --- /dev/null +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_23.py @@ -0,0 +1,14 @@ +import ifcopenshell + +fns = [ + (False, lambda f: f.createIfcLengthMeasure(-1.)), + (True, lambda f: f.createIfcLengthMeasure(1.)), + (True, lambda f: f.createIfcPositiveLengthMeasure(1.)), + (False, lambda f: f.createIfcDescriptiveMeasure('large')) +] + +for valid, fn in fns: + f = ifcopenshell.file(schema="IFC4") + fs = fn(f) + f.createIfcTextStyleFontModel('Comic Sans', ('Comic Sans',), FontSize=fs) + f.write(f"{'pass' if valid else 'fail'}-font-{fs.is_a()}-{fs[0]}.ifc") diff --git a/src/ifcopenshell-python/test/fixtures/rules/pass-font-IfcLengthMeasure-1.0.ifc b/src/ifcopenshell-python/test/fixtures/rules/pass-font-IfcLengthMeasure-1.0.ifc new file mode 100644 index 0000000000..c44eac9321 --- /dev/null +++ b/src/ifcopenshell-python/test/fixtures/rules/pass-font-IfcLengthMeasure-1.0.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2023-02-05T12:05:57',(),(),'IfcOpenShell v0.7.0-07ee62eb9','IfcOpenShell v0.7.0-07ee62eb9',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTEXTSTYLEFONTMODEL('Comic Sans',('Comic Sans'),$,$,$,IFCLENGTHMEASURE(1.)); +ENDSEC; +END-ISO-10303-21; diff --git a/src/ifcopenshell-python/test/fixtures/rules/pass-font-IfcPositiveLengthMeasure-1.0.ifc b/src/ifcopenshell-python/test/fixtures/rules/pass-font-IfcPositiveLengthMeasure-1.0.ifc new file mode 100644 index 0000000000..ac23789dba --- /dev/null +++ b/src/ifcopenshell-python/test/fixtures/rules/pass-font-IfcPositiveLengthMeasure-1.0.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2023-02-05T12:05:57',(),(),'IfcOpenShell v0.7.0-07ee62eb9','IfcOpenShell v0.7.0-07ee62eb9',''); +FILE_SCHEMA(('IFC4')); +ENDSEC; +DATA; +#1=IFCTEXTSTYLEFONTMODEL('Comic Sans',('Comic Sans'),$,$,$,IFCPOSITIVELENGTHMEASURE(1.)); +ENDSEC; +END-ISO-10303-21;