mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 09:48:32 +00:00
unify tests for ifc4 and ifc2x3
This commit is contained in:
@@ -32,19 +32,9 @@ class TestAddReference(test.bootstrap.IFC4):
|
||||
element = ifcopenshell.api.run("document.add_reference", self.file, information=information)
|
||||
assert element.is_a("IfcDocumentReference")
|
||||
assert len(self.file.by_type("IfcDocumentReference")) == 1
|
||||
assert element.ReferencedDocument == information
|
||||
ifc2x3 = self.file.schema == "IFC2X3"
|
||||
assert (element.ReferenceToDocument[0] if ifc2x3 else element.ReferencedDocument) == information
|
||||
|
||||
|
||||
class TestAddReferenceIFC2X3(test.bootstrap.IFC2X3):
|
||||
def test_adding_a_reference(self):
|
||||
element = ifcopenshell.api.run("document.add_reference", self.file, information=None)
|
||||
assert element.is_a("IfcDocumentReference")
|
||||
assert len(self.file.by_type("IfcDocumentReference")) == 1
|
||||
|
||||
def test_adding_a_reference_to_an_information(self):
|
||||
self.file.createIfcProject()
|
||||
information = ifcopenshell.api.run("document.add_information", self.file, parent=None)
|
||||
element = ifcopenshell.api.run("document.add_reference", self.file, information=information)
|
||||
assert element.is_a("IfcDocumentReference")
|
||||
assert len(self.file.by_type("IfcDocumentReference")) == 1
|
||||
assert element.ReferenceToDocument[0] == information
|
||||
class TestAddReferenceIFC2X3(test.bootstrap.IFC2X3, TestAddReference):
|
||||
pass
|
||||
|
||||
@@ -25,12 +25,12 @@ class TestAddReference(test.bootstrap.IFC4):
|
||||
library = ifcopenshell.api.run("library.add_library", self.file, name="Name")
|
||||
reference = ifcopenshell.api.run("library.add_reference", self.file, library=library)
|
||||
assert reference.is_a("IfcLibraryReference")
|
||||
assert reference.ReferencedLibrary == library
|
||||
ifc2x3 = self.file.schema == "IFC2X3"
|
||||
if ifc2x3:
|
||||
assert library.LibraryReference == (reference,)
|
||||
else:
|
||||
assert reference.ReferencedLibrary == library
|
||||
|
||||
|
||||
class TestAddReferenceIFC2X3(test.bootstrap.IFC2X3):
|
||||
def test_adding_a_reference(self):
|
||||
library = ifcopenshell.api.run("library.add_library", self.file, name="Name")
|
||||
reference = ifcopenshell.api.run("library.add_reference", self.file, library=library)
|
||||
assert reference.is_a("IfcLibraryReference")
|
||||
assert library.LibraryReference == (reference,)
|
||||
class TestAddReferenceIFC2X3(test.bootstrap.IFC2X3, TestAddReference):
|
||||
pass
|
||||
|
||||
@@ -24,54 +24,15 @@ import ifcopenshell.util.system
|
||||
|
||||
|
||||
class TestAssignPort(test.bootstrap.IFC4):
|
||||
def test_assigning_a_port_once_only(self):
|
||||
port = self.file.createIfcDistributionPort()
|
||||
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcChiller")
|
||||
ifcopenshell.api.run("system.assign_port", self.file, element=element, port=port)
|
||||
assert element.IsNestedBy[0].RelatedObjects == (port,)
|
||||
assert ifcopenshell.util.system.get_ports(element) == [port]
|
||||
ifcopenshell.api.run("system.assign_port", self.file, element=element, port=port)
|
||||
assert ifcopenshell.util.system.get_ports(element) == [port]
|
||||
|
||||
def test_updating_the_placement_to_be_relative_if_it_exists(self):
|
||||
ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcProject")
|
||||
ifcopenshell.api.run("unit.assign_unit", self.file)
|
||||
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcChiller")
|
||||
subelement = ifcopenshell.api.run("system.add_port", self.file)
|
||||
matrix = numpy.array(
|
||||
(
|
||||
(1.0, 0.0, 0.0, 1.0),
|
||||
(0.0, 1.0, 0.0, 1.0),
|
||||
(0.0, 0.0, 1.0, 1.0),
|
||||
(0.0, 0.0, 0.0, 1.0),
|
||||
)
|
||||
)
|
||||
submatrix = numpy.array(
|
||||
(
|
||||
(1.0, 0.0, 0.0, 1.0),
|
||||
(0.0, 1.0, 0.0, 2.0),
|
||||
(0.0, 0.0, 1.0, 3.0),
|
||||
(0.0, 0.0, 0.0, 1.0),
|
||||
)
|
||||
)
|
||||
ifcopenshell.api.run(
|
||||
"geometry.edit_object_placement", self.file, product=element, matrix=matrix.copy(), is_si=False
|
||||
)
|
||||
ifcopenshell.api.run(
|
||||
"geometry.edit_object_placement", self.file, product=subelement, matrix=submatrix.copy(), is_si=False
|
||||
)
|
||||
ifcopenshell.api.run("system.assign_port", self.file, element=element, port=subelement)
|
||||
assert numpy.array_equal(ifcopenshell.util.placement.get_local_placement(element.ObjectPlacement), matrix)
|
||||
assert numpy.array_equal(ifcopenshell.util.placement.get_local_placement(subelement.ObjectPlacement), submatrix)
|
||||
assert subelement.ObjectPlacement.PlacementRelTo == element.ObjectPlacement
|
||||
|
||||
|
||||
class TestAssignPortIFC2X3(test.bootstrap.IFC2X3):
|
||||
def test_assigning_a_port_once_only(self):
|
||||
port = self.file.createIfcDistributionPort()
|
||||
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcFlowSegment")
|
||||
ifcopenshell.api.run("system.assign_port", self.file, element=element, port=port)
|
||||
assert element.HasPorts[0].RelatingPort == port
|
||||
ifc2x3 = self.file.schema == "IFC2X3"
|
||||
if ifc2x3:
|
||||
assert element.HasPorts[0].RelatingPort == port
|
||||
else:
|
||||
assert element.IsNestedBy[0].RelatedObjects == (port,)
|
||||
assert ifcopenshell.util.system.get_ports(element) == [port]
|
||||
ifcopenshell.api.run("system.assign_port", self.file, element=element, port=port)
|
||||
assert ifcopenshell.util.system.get_ports(element) == [port]
|
||||
@@ -107,3 +68,7 @@ class TestAssignPortIFC2X3(test.bootstrap.IFC2X3):
|
||||
assert numpy.array_equal(ifcopenshell.util.placement.get_local_placement(element.ObjectPlacement), matrix)
|
||||
assert numpy.array_equal(ifcopenshell.util.placement.get_local_placement(subelement.ObjectPlacement), submatrix)
|
||||
assert subelement.ObjectPlacement.PlacementRelTo == element.ObjectPlacement
|
||||
|
||||
|
||||
class TestAssignPortIFC2X3(test.bootstrap.IFC2X3, TestAssignPort):
|
||||
pass
|
||||
|
||||
@@ -22,18 +22,13 @@ import ifcopenshell.util.system
|
||||
|
||||
|
||||
class TestAssignPort(test.bootstrap.IFC4):
|
||||
def test_assigning_a_port_once_only(self):
|
||||
port = self.file.createIfcDistributionPort()
|
||||
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcChiller")
|
||||
ifcopenshell.api.run("system.assign_port", self.file, element=element, port=port)
|
||||
ifcopenshell.api.run("system.unassign_port", self.file, element=element, port=port)
|
||||
assert ifcopenshell.util.system.get_ports(element) == []
|
||||
|
||||
|
||||
class TestAssignPortIFC2X3(test.bootstrap.IFC2X3):
|
||||
def test_assigning_a_port_once_only(self):
|
||||
port = self.file.createIfcDistributionPort()
|
||||
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcFlowSegment")
|
||||
ifcopenshell.api.run("system.assign_port", self.file, element=element, port=port)
|
||||
ifcopenshell.api.run("system.unassign_port", self.file, element=element, port=port)
|
||||
assert ifcopenshell.util.system.get_ports(element) == []
|
||||
|
||||
|
||||
class TestAssignPortIFC2X3(test.bootstrap.IFC2X3, TestAssignPort):
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user