diff --git a/Documentation/testcases/attribute/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ifc b/Documentation/testcases/attribute/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ifc
deleted file mode 100644
index e818d7a..0000000
--- a/Documentation/testcases/attribute/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ifc
+++ /dev/null
@@ -1,12 +0,0 @@
-ISO-10303-21;
-HEADER;
-FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
-FILE_NAME('','2022-10-07T13:48:42',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
-FILE_SCHEMA(('IFC4'));
-ENDSEC;
-DATA;
-#1=IFCSURFACESTYLEREFRACTION(42.000042,$);
-#2=IFCSURFACESTYLEREFRACTION(41.999958,$);
-#3=IFCSURFACESTYLEREFRACTION(42.000084,$);
-ENDSEC;
-END-ISO-10303-21;
diff --git a/Documentation/testcases/attribute/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ifc b/Documentation/testcases/attribute/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ifc
deleted file mode 100644
index 7a9ca79..0000000
--- a/Documentation/testcases/attribute/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ifc
+++ /dev/null
@@ -1,13 +0,0 @@
-ISO-10303-21;
-HEADER;
-FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
-FILE_NAME('','2022-10-07T13:48:42',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
-FILE_SCHEMA(('IFC4'));
-ENDSEC;
-DATA;
-#1=IFCSURFACESTYLEREFRACTION(42.000042,$);
-#2=IFCSURFACESTYLEREFRACTION(41.999958,$);
-#3=IFCSURFACESTYLEREFRACTION(42.000084,$);
-#4=IFCSURFACESTYLEREFRACTION(41.999916,$);
-ENDSEC;
-END-ISO-10303-21;
diff --git a/Documentation/testcases/attribute/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ifc b/Documentation/testcases/attribute/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ifc
deleted file mode 100644
index 77989dd..0000000
--- a/Documentation/testcases/attribute/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ifc
+++ /dev/null
@@ -1,10 +0,0 @@
-ISO-10303-21;
-HEADER;
-FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
-FILE_NAME('','2022-10-07T13:48:42',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
-FILE_SCHEMA(('IFC4'));
-ENDSEC;
-DATA;
-#1=IFCSURFACESTYLEREFRACTION(42.000042,$);
-ENDSEC;
-END-ISO-10303-21;
diff --git a/Documentation/testcases/attribute/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ifc b/Documentation/testcases/attribute/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ifc
deleted file mode 100644
index 9937075..0000000
--- a/Documentation/testcases/attribute/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ifc
+++ /dev/null
@@ -1,11 +0,0 @@
-ISO-10303-21;
-HEADER;
-FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
-FILE_NAME('','2022-10-07T13:48:42',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
-FILE_SCHEMA(('IFC4'));
-ENDSEC;
-DATA;
-#1=IFCSURFACESTYLEREFRACTION(42.000042,$);
-#2=IFCSURFACESTYLEREFRACTION(41.999958,$);
-ENDSEC;
-END-ISO-10303-21;
diff --git a/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.html b/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.html
new file mode 100644
index 0000000..f171136
--- /dev/null
+++ b/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.html
@@ -0,0 +1,21 @@
+
+
+ Comparison report for property\fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ids
+
+
+
+ Comparison report for property\fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ids
+ Script
+
+``` ids property\fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ids
+Floating point numbers are compared with a 1e-6 tolerance 3/4
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.''
+```
+
+ Comparison to original IDS
+ <?xml version="1.0" encoding="utf-16"?>
<ids xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/0.9.7/ids.xsd" xmlns="http://standards.buildingsmart.org/IDS">
<info>
<title>Floating point numbers are compared with a 1e-6 tolerance 3/4</title>
<description>Generated via code automation in the Ids Repository on github.</description>
</info>
<specifications>
<specification
name="Floating point numbers are compared with a 1e-6 tolerance 3/4"
ifcVersion="IFC2X3 IFC4">
<applicability
maxOccurs="unbounded">
<entity>
<name>
<simpleValue>IFCWALL</simpleValue>
</name>
</entity>
</applicability>
<requirements>
<property
dataType="IFCREAL">
<propertySet>
<simpleValue>Foo_Bar</simpleValue>
</propertySet>
<baseName>
<simpleValue>Foo</simpleValue>
</baseName>
<value>
<simpleValue>42.</simpleValue>
</value>
</property>
</requirements>
</specification>
</specifications>
</ids>
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.html b/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.html
new file mode 100644
index 0000000..41ebed5
--- /dev/null
+++ b/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.html
@@ -0,0 +1,21 @@
+
+
+ Comparison report for property\fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ids
+
+
+
+ Comparison report for property\fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ids
+ Script
+
+``` ids property\fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ids
+Floating point numbers are compared with a 1e-6 tolerance 4/4
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.''
+```
+
+ Comparison to original IDS
+ <?xml version="1.0" encoding="utf-16"?>
<ids xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/0.9.7/ids.xsd" xmlns="http://standards.buildingsmart.org/IDS">
<info>
<title>Floating point numbers are compared with a 1e-6 tolerance 4/4</title>
<description>Generated via code automation in the Ids Repository on github.</description>
</info>
<specifications>
<specification
name="Floating point numbers are compared with a 1e-6 tolerance 4/4"
ifcVersion="IFC2X3 IFC4">
<applicability
maxOccurs="unbounded">
<entity>
<name>
<simpleValue>IFCWALL</simpleValue>
</name>
</entity>
</applicability>
<requirements>
<property
dataType="IFCREAL">
<propertySet>
<simpleValue>Foo_Bar</simpleValue>
</propertySet>
<baseName>
<simpleValue>Foo</simpleValue>
</baseName>
<value>
<simpleValue>42.</simpleValue>
</value>
</property>
</requirements>
</specification>
</specifications>
</ids>
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.html b/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.html
new file mode 100644
index 0000000..df4aeb6
--- /dev/null
+++ b/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.html
@@ -0,0 +1,21 @@
+
+
+ Comparison report for property\pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ids
+
+
+
+ Comparison report for property\pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ids
+ Script
+
+``` ids property\pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ids
+Floating point numbers are compared with a 1e-6 tolerance 1/4
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.''
+```
+
+ Comparison to original IDS
+ <?xml version="1.0" encoding="utf-16"?>
<ids xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/0.9.7/ids.xsd" xmlns="http://standards.buildingsmart.org/IDS">
<info>
<title>Floating point numbers are compared with a 1e-6 tolerance 1/4</title>
<description>Generated via code automation in the Ids Repository on github.</description>
</info>
<specifications>
<specification
name="Floating point numbers are compared with a 1e-6 tolerance 1/4"
ifcVersion="IFC2X3 IFC4">
<applicability
maxOccurs="unbounded">
<entity>
<name>
<simpleValue>IFCWALL</simpleValue>
</name>
</entity>
</applicability>
<requirements>
<property
dataType="IFCREAL">
<propertySet>
<simpleValue>Foo_Bar</simpleValue>
</propertySet>
<baseName>
<simpleValue>Foo</simpleValue>
</baseName>
<value>
<simpleValue>42.</simpleValue>
</value>
</property>
</requirements>
</specification>
</specifications>
</ids>
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.html b/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.html
new file mode 100644
index 0000000..26d3043
--- /dev/null
+++ b/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.html
@@ -0,0 +1,21 @@
+
+
+ Comparison report for property\pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ids
+
+
+
+ Comparison report for property\pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ids
+ Script
+
+``` ids property\pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ids
+Floating point numbers are compared with a 1e-6 tolerance 2/4
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.''
+```
+
+ Comparison to original IDS
+ <?xml version="1.0" encoding="utf-16"?>
<ids xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/0.9.7/ids.xsd" xmlns="http://standards.buildingsmart.org/IDS">
<info>
<title>Floating point numbers are compared with a 1e-6 tolerance 2/4</title>
<description>Generated via code automation in the Ids Repository on github.</description>
</info>
<specifications>
<specification
name="Floating point numbers are compared with a 1e-6 tolerance 2/4"
ifcVersion="IFC2X3 IFC4">
<applicability
maxOccurs="unbounded">
<entity>
<name>
<simpleValue>IFCWALL</simpleValue>
</name>
</entity>
</applicability>
<requirements>
<property
dataType="IFCREAL">
<propertySet>
<simpleValue>Foo_Bar</simpleValue>
</propertySet>
<baseName>
<simpleValue>Foo</simpleValue>
</baseName>
<value>
<simpleValue>42.</simpleValue>
</value>
</property>
</requirements>
</specification>
</specifications>
</ids>
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/scripts.md b/Documentation/testcases/scripts.md
index d052df3..d0869b0 100644
--- a/Documentation/testcases/scripts.md
+++ b/Documentation/testcases/scripts.md
@@ -290,42 +290,6 @@ Requirements:
Attribute: ''ScheduleDuration'',''PT16H''
```
-### Floating point numbers are compared with a 1e-6 tolerance 1/4
-
-``` ids attribute/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ids
-Floating point numbers are compared with a 1e-6 tolerance 1/4
-Entity: ''IFCSURFACESTYLEREFRACTION''
-Requirements:
-Attribute: ''RefractionIndex'',''42.''
-```
-
-### Floating point numbers are compared with a 1e-6 tolerance 2/4
-
-``` ids attribute/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ids
-Floating point numbers are compared with a 1e-6 tolerance 2/4
-Entity: ''IFCSURFACESTYLEREFRACTION''
-Requirements:
-Attribute: ''RefractionIndex'',''42.''
-```
-
-### Floating point numbers are compared with a 1e-6 tolerance 3/4
-
-``` ids attribute/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ids
-Floating point numbers are compared with a 1e-6 tolerance 3/4
-Entity: ''IFCSURFACESTYLEREFRACTION''
-Requirements:
-Attribute: ''RefractionIndex'',''42.''
-```
-
-### Floating point numbers are compared with a 1e-6 tolerance 4/4
-
-``` ids attribute/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ids
-Floating point numbers are compared with a 1e-6 tolerance 4/4
-Entity: ''IFCSURFACESTYLEREFRACTION''
-Requirements:
-Attribute: ''RefractionIndex'',''42.''
-```
-
### GlobalIds are treated as strings and not expanded
``` ids attribute/pass-globalids_are_treated_as_strings_and_not_expanded.ids
@@ -2173,42 +2137,6 @@ Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL
```
-### Floating point numbers are compared with a 1e-6 tolerance 1/4
-
-``` ids property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ids
-Floating point numbers are compared with a 1e-6 tolerance 1/4
-Entity: ''IFCWALL''
-Requirements:
-Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.''
-```
-
-### Floating point numbers are compared with a 1e-6 tolerance 2/4
-
-``` ids property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ids
-Floating point numbers are compared with a 1e-6 tolerance 2/4
-Entity: ''IFCWALL''
-Requirements:
-Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.''
-```
-
-### Floating point numbers are compared with a 1e-6 tolerance 3/4
-
-``` ids property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ids
-Floating point numbers are compared with a 1e-6 tolerance 3/4
-Entity: ''IFCWALL''
-Requirements:
-Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.''
-```
-
-### Floating point numbers are compared with a 1e-6 tolerance 4/4
-
-``` ids property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ids
-Floating point numbers are compared with a 1e-6 tolerance 4/4
-Entity: ''IFCWALL''
-Requirements:
-Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.''
-```
-
### IDS does not handle string truncation such as for identifiers
``` ids property/fail-ids_does_not_handle_string_truncation_such_as_for_identifiers.ids
@@ -2705,3 +2633,330 @@ Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Pattern(''[A-Z]{2}[0-9]{2}'')
```
+
+## tolerance
+
+### Comparison tolerance for floating point positive high number lower bound
+
+``` ids tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ids
+Comparison tolerance for floating point positive high number lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''100000.''
+```
+
+### Comparison tolerance for floating point positive high number lower bound
+
+``` ids tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ids
+Comparison tolerance for floating point positive high number lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''100000.''
+```
+
+### Comparison tolerance for floating point positive high number upper bound
+
+``` ids tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ids
+Comparison tolerance for floating point positive high number upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''100000.''
+```
+
+### Comparison tolerance for floating point positive high number upper bound
+
+``` ids tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ids
+Comparison tolerance for floating point positive high number upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''100000.''
+```
+
+### Comparison tolerance for floating point one lower bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_one_lower_bound.ids
+Comparison tolerance for floating point one lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.''
+```
+
+### Comparison tolerance for floating point one lower bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_one_lower_bound.ids
+Comparison tolerance for floating point one lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.''
+```
+
+### Comparison tolerance for floating point one upper bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_one_upper_bound.ids
+Comparison tolerance for floating point one upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.''
+```
+
+### Comparison tolerance for floating point one upper bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_one_upper_bound.ids
+Comparison tolerance for floating point one upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.''
+```
+
+### Comparison tolerance for floating point positive low number lower bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ids
+Comparison tolerance for floating point positive low number lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.0000001''
+```
+
+### Comparison tolerance for floating point positive low number lower bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ids
+Comparison tolerance for floating point positive low number lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.0000001''
+```
+
+### Comparison tolerance for floating point positive low number upper bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ids
+Comparison tolerance for floating point positive low number upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.0000001''
+```
+
+### Comparison tolerance for floating point positive low number upper bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ids
+Comparison tolerance for floating point positive low number upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.0000001''
+```
+
+### Comparison tolerance for floating point zero lower bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_zero_lower_bound.ids
+Comparison tolerance for floating point zero lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.''
+```
+
+### Comparison tolerance for floating point zero lower bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_zero_lower_bound.ids
+Comparison tolerance for floating point zero lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.''
+```
+
+### Comparison tolerance for floating point zero upper bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_zero_upper_bound.ids
+Comparison tolerance for floating point zero upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.''
+```
+
+### Comparison tolerance for floating point zero upper bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_zero_upper_bound.ids
+Comparison tolerance for floating point zero upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.''
+```
+
+### Comparison tolerance for floating point negative low number lower bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ids
+Comparison tolerance for floating point negative low number lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-0.0000001''
+```
+
+### Comparison tolerance for floating point negative low number lower bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ids
+Comparison tolerance for floating point negative low number lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-0.0000001''
+```
+
+### Comparison tolerance for floating point negative low number upper bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ids
+Comparison tolerance for floating point negative low number upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-0.0000001''
+```
+
+### Comparison tolerance for floating point negative low number upper bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ids
+Comparison tolerance for floating point negative low number upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-0.0000001''
+```
+
+### Comparison tolerance for floating point negative one lower bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_negative_one_lower_bound.ids
+Comparison tolerance for floating point negative one lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1.''
+```
+
+### Comparison tolerance for floating point negative one lower bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_negative_one_lower_bound.ids
+Comparison tolerance for floating point negative one lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1.''
+```
+
+### Comparison tolerance for floating point negative one upper bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_negative_one_upper_bound.ids
+Comparison tolerance for floating point negative one upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1.''
+```
+
+### Comparison tolerance for floating point negative one upper bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_negative_one_upper_bound.ids
+Comparison tolerance for floating point negative one upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1.''
+```
+
+### Comparison tolerance for floating point negative high number lower bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ids
+Comparison tolerance for floating point negative high number lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1000000.''
+```
+
+
+### Comparison tolerance for floating point negative high number lower bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ids
+Comparison tolerance for floating point negative high number lower bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1000000.''
+```
+
+### Comparison tolerance for floating point negative high number upper bound
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ids
+Comparison tolerance for floating point negative high number upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1000000.''
+```
+
+### Comparison tolerance for floating point negative high number upper bound
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ids
+Comparison tolerance for floating point negative high number upper bound
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1000000.''
+```
+
+### Comparison tolerance for floating point range greater than zero exclusive
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ids
+Comparison tolerance for floating point range greater than zero exclusive
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinExclusive(''0.'')
+```
+
+### Comparison tolerance for floating point range greater than zero exclusive
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ids
+Comparison tolerance for floating point range greater than zero exclusive
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinExclusive(''0.'')
+```
+
+### Comparison tolerance for floating point range greater than zero inclusive
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ids
+Comparison tolerance for floating point range greater than zero inclusive
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinInclusive(''0.'')
+```
+
+### Comparison tolerance for floating point range greater than zero inclusive
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ids
+Comparison tolerance for floating point range greater than zero inclusive
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinInclusive(''0.'')
+```
+
+### Comparison tolerance for floating point range lower than zero exclusive
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ids
+Comparison tolerance for floating point range lower than zero exclusive
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxExclusive(''0.'')
+```
+
+### Comparison tolerance for floating point range lower than zero exclusive
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ids
+Comparison tolerance for floating point range lower than zero exclusive
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxExclusive(''0.'')
+```
+
+### Comparison tolerance for floating point range lower than zero inclusive
+
+``` ids tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ids
+Comparison tolerance for floating point range lower than zero inclusive
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxInclusive(''0.'')
+```
+
+### Comparison tolerance for floating point range lower than zero inclusive
+
+``` ids tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ids
+Comparison tolerance for floating point range lower than zero inclusive
+Entity: ''IFCWALL''
+Requirements:
+Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxInclusive(''0.'')
+```
diff --git a/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ids b/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ids
new file mode 100644
index 0000000..7821035
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point positive high number lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 100000.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ifc b/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ifc
new file mode 100644
index 0000000..4e81af3
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(99999.8999989),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ids b/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ids
new file mode 100644
index 0000000..7ee7bbf
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point positive high number upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 100000.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ifc b/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ifc
new file mode 100644
index 0000000..ec53756
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(100000.1000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ids
new file mode 100644
index 0000000..3b3c0eb
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative high number lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -1000000.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ifc
new file mode 100644
index 0000000..a5022db
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-1000001.00000100001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ids
new file mode 100644
index 0000000..e3d9644
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative high number upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -1000000.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ifc
new file mode 100644
index 0000000..0dd2a07
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-999998.9999989),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ids
new file mode 100644
index 0000000..fd3c7e5
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative low number lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -0.0000001
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ifc
new file mode 100644
index 0000000..825521c
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.00000110000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ids
new file mode 100644
index 0000000..2b3cb63
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative low number upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -0.0000001
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ifc
new file mode 100644
index 0000000..90bc9e7
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.00000090000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_lower_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_lower_bound.ids
new file mode 100644
index 0000000..74e7941
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative one lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -1.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_lower_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_lower_bound.ifc
new file mode 100644
index 0000000..7116dcc
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-1.00000200001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_upper_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_upper_bound.ids
new file mode 100644
index 0000000..3bebd26
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative one upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -1.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_upper_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_upper_bound.ifc
new file mode 100644
index 0000000..5fd5947
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_negative_one_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.9999979),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_lower_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_lower_bound.ids
new file mode 100644
index 0000000..405619f
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point one lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 1.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_lower_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_lower_bound.ifc
new file mode 100644
index 0000000..a39367c
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.9999979),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_upper_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_upper_bound.ids
new file mode 100644
index 0000000..91cae35
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point one upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 1.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_upper_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_upper_bound.ifc
new file mode 100644
index 0000000..88d72b4
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_one_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(1.0000021),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ids
new file mode 100644
index 0000000..e95beb8
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point positive low number lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 0.0000001
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ifc
new file mode 100644
index 0000000..4caa2e0
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.00000090000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ids
new file mode 100644
index 0000000..c639b40
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point positive low number upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 0.0000001
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ifc
new file mode 100644
index 0000000..3dde171
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.00000110000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ids
new file mode 100644
index 0000000..f41fd63
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ids
@@ -0,0 +1,33 @@
+
+
+
+ Comparison tolerance for floating point range greater than zero exclusive
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ifc
new file mode 100644
index 0000000..7e2bfc3
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.0000009),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ids
new file mode 100644
index 0000000..5378d33
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ids
@@ -0,0 +1,33 @@
+
+
+
+ Comparison tolerance for floating point range greater than zero inclusive
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ifc
new file mode 100644
index 0000000..23b3cdf
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.0000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ids
new file mode 100644
index 0000000..6a0f908
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ids
@@ -0,0 +1,33 @@
+
+
+
+ Comparison tolerance for floating point range lower than zero exclusive
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ifc
new file mode 100644
index 0000000..a8cec81
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.0000009),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ids
new file mode 100644
index 0000000..f79f680
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ids
@@ -0,0 +1,33 @@
+
+
+
+ Comparison tolerance for floating point range lower than zero inclusive
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ifc
new file mode 100644
index 0000000..069e37c
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.0000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_lower_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_lower_bound.ids
new file mode 100644
index 0000000..2ead5af
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point zero lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 0.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_lower_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_lower_bound.ifc
new file mode 100644
index 0000000..23b3cdf
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.0000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_upper_bound.ids b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_upper_bound.ids
new file mode 100644
index 0000000..375d35a
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point zero upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 0.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_upper_bound.ifc b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_upper_bound.ifc
new file mode 100644
index 0000000..069e37c
--- /dev/null
+++ b/Documentation/testcases/tolerance/fail_comparison_tolerance_for_floating_point_zero_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.0000011),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ids b/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ids
new file mode 100644
index 0000000..7821035
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point positive high number lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 100000.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ifc b/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ifc
new file mode 100644
index 0000000..f513006
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(99999.899999),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ids b/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ids
new file mode 100644
index 0000000..7ee7bbf
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point positive high number upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 100000.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ifc b/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ifc
new file mode 100644
index 0000000..04a50ef
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass-comparison_tolerance_for_floating_point_positive_high_number_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(100000.100001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ids
new file mode 100644
index 0000000..3b3c0eb
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative high number lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -1000000.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ifc
new file mode 100644
index 0000000..1f618ca
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-1000001.0000010000),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ids
new file mode 100644
index 0000000..e3d9644
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative high number upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -1000000.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ifc
new file mode 100644
index 0000000..17be214
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_high_number_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-999998.999999),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ids
new file mode 100644
index 0000000..fd3c7e5
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative low number lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -0.0000001
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ifc
new file mode 100644
index 0000000..46df30b
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.0000011000001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ids
new file mode 100644
index 0000000..2b3cb63
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative low number upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -0.0000001
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ifc
new file mode 100644
index 0000000..b45a3ff
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_low_number_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.0000009000001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_lower_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_lower_bound.ids
new file mode 100644
index 0000000..74e7941
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative one lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -1.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_lower_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_lower_bound.ifc
new file mode 100644
index 0000000..2263b2b
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-1.0000020000),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_upper_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_upper_bound.ids
new file mode 100644
index 0000000..3bebd26
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point negative one upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ -1.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_upper_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_upper_bound.ifc
new file mode 100644
index 0000000..e4ab477
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_negative_one_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.999998),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_lower_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_lower_bound.ids
new file mode 100644
index 0000000..405619f
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point one lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 1.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_lower_bound.ifc
similarity index 84%
rename from Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ifc
rename to Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_lower_bound.ifc
index 428f701..5034e4e 100644
--- a/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_3_4.ifc
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_lower_bound.ifc
@@ -5,7 +5,7 @@ FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpen
FILE_SCHEMA(('IFC4'));
ENDSEC;
DATA;
-#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,#6);
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
@@ -14,6 +14,6 @@ DATA;
#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
-#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(42.000084),$);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.999998),$);
ENDSEC;
END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_upper_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_upper_bound.ids
new file mode 100644
index 0000000..91cae35
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point one upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 1.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_upper_bound.ifc
similarity index 84%
rename from Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ifc
rename to Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_upper_bound.ifc
index 857aef6..e91cab3 100644
--- a/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_2_4.ifc
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_one_upper_bound.ifc
@@ -5,7 +5,7 @@ FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpen
FILE_SCHEMA(('IFC4'));
ENDSEC;
DATA;
-#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,#6);
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
@@ -14,6 +14,6 @@ DATA;
#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
-#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(41.999958),$);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(1.000002),$);
ENDSEC;
END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ids
new file mode 100644
index 0000000..e95beb8
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point positive low number lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 0.0000001
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ifc
new file mode 100644
index 0000000..b752f6a
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.0000009000001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ids
new file mode 100644
index 0000000..c639b40
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point positive low number upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 0.0000001
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ifc
new file mode 100644
index 0000000..64567bc
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_positive_low_number_upper_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.0000011000001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ids
new file mode 100644
index 0000000..f41fd63
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ids
@@ -0,0 +1,33 @@
+
+
+
+ Comparison tolerance for floating point range greater than zero exclusive
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ifc
new file mode 100644
index 0000000..c77cf7a
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_exclusive.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.000001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ids
new file mode 100644
index 0000000..5378d33
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ids
@@ -0,0 +1,33 @@
+
+
+
+ Comparison tolerance for floating point range greater than zero inclusive
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ifc
new file mode 100644
index 0000000..420a4af
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_greater_than_zero_inclusive.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.000001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ids
new file mode 100644
index 0000000..6a0f908
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ids
@@ -0,0 +1,33 @@
+
+
+
+ Comparison tolerance for floating point range lower than zero exclusive
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ifc
new file mode 100644
index 0000000..64ac7bc
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_exclusive.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.000001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ids
new file mode 100644
index 0000000..f79f680
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ids
@@ -0,0 +1,33 @@
+
+
+
+ Comparison tolerance for floating point range lower than zero inclusive
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ifc
similarity index 84%
rename from Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ifc
rename to Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ifc
index 1c433fe..2f61cd9 100644
--- a/Documentation/testcases/property/fail-floating_point_numbers_are_compared_with_a_1e_6_tolerance_4_4.ifc
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_range_lower_than_zero_inclusive.ifc
@@ -5,7 +5,7 @@ FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpen
FILE_SCHEMA(('IFC4'));
ENDSEC;
DATA;
-#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,#6);
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
@@ -14,6 +14,6 @@ DATA;
#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
-#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(41.999916),$);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.000001),$);
ENDSEC;
END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_lower_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_lower_bound.ids
new file mode 100644
index 0000000..2ead5af
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_lower_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point zero lower bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 0.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_lower_bound.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_lower_bound.ifc
new file mode 100644
index 0000000..420a4af
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_lower_bound.ifc
@@ -0,0 +1,19 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpenShell v0.7.0-dc67287d','');
+FILE_SCHEMA(('IFC4'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
+#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
+#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(-0.000001),$);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_upper_bound.ids b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_upper_bound.ids
new file mode 100644
index 0000000..375d35a
--- /dev/null
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_upper_bound.ids
@@ -0,0 +1,31 @@
+
+
+
+ Comparison tolerance for floating point zero upper bound
+ Generated via code automation in the Ids Repository on github.
+
+
+
+
+
+
+ IFCWALL
+
+
+
+
+
+
+ Foo_Bar
+
+
+ Foo
+
+
+ 0.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ifc b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_upper_bound.ifc
similarity index 84%
rename from Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ifc
rename to Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_upper_bound.ifc
index 34d06b2..2f61cd9 100644
--- a/Documentation/testcases/property/pass-floating_point_numbers_are_compared_with_a_1e_6_tolerance_1_4.ifc
+++ b/Documentation/testcases/tolerance/pass_comparison_tolerance_for_floating_point_zero_upper_bound.ifc
@@ -5,7 +5,7 @@ FILE_NAME('','2022-10-07T13:48:43',(),(),'IfcOpenShell v0.7.0-dc67287d','IfcOpen
FILE_SCHEMA(('IFC4'));
ENDSEC;
DATA;
-#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,#6);
+#1=IFCPROJECT('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo_name',$,$,$,$,$,#6);
#2=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
#3=IFCSIUNIT(*,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
#4=IFCSIUNIT(*,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
@@ -14,6 +14,6 @@ DATA;
#7=IFCWALL('2nJrDaLQfJ1QPhdJR0o97J',$,$,$,$,$,$,$,$);
#8=IFCPROPERTYSET('16MocU_IDOF8_x3Iqllz0d',$,'Foo_Bar',$,(#10));
#9=IFCRELDEFINESBYPROPERTIES('1xdwj8qGXK4hzoNbvMdXJW',$,$,$,(#7),#8);
-#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(42.000042),$);
+#10=IFCPROPERTYSINGLEVALUE('Foo',$,IFCREAL(0.000001),$);
ENDSEC;
END-ISO-10303-21;