mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 17:58:20 +00:00
Fix bug where assigning units didn't necessarily assign to the project, and also didn't overwrite existing units of the same type.
This commit is contained in:
@@ -24,7 +24,7 @@ class TestAssignUnit(test.bootstrap.IFC4):
|
||||
def test_run(self):
|
||||
project = self.file.createIfcProject()
|
||||
unit1 = ifcopenshell.api.unit.add_monetary_unit(self.file, currency="USD")
|
||||
unit2 = ifcopenshell.api.unit.add_monetary_unit(self.file, currency="JPY")
|
||||
unit2 = ifcopenshell.api.unit.add_si_unit(self.file, unit_type="LENGTHUNIT", prefix="MILLI")
|
||||
assignment = ifcopenshell.api.unit.assign_unit(self.file, units=[unit1, unit2])
|
||||
assert project.UnitsInContext == assignment
|
||||
assert assignment.is_a("IfcUnitAssignment")
|
||||
@@ -34,7 +34,7 @@ class TestAssignUnit(test.bootstrap.IFC4):
|
||||
def test_assign_units_to_an_existing_assignment(self):
|
||||
project = self.file.createIfcProject()
|
||||
unit1 = ifcopenshell.api.unit.add_monetary_unit(self.file, currency="USD")
|
||||
unit2 = ifcopenshell.api.unit.add_monetary_unit(self.file, currency="JPY")
|
||||
unit2 = ifcopenshell.api.unit.add_si_unit(self.file, unit_type="LENGTHUNIT", prefix="MILLI")
|
||||
assignment1 = ifcopenshell.api.unit.assign_unit(self.file, units=[unit1])
|
||||
assignment2 = ifcopenshell.api.unit.assign_unit(self.file, units=[unit2])
|
||||
assert project.UnitsInContext == assignment1
|
||||
@@ -42,6 +42,28 @@ class TestAssignUnit(test.bootstrap.IFC4):
|
||||
assert unit1 in assignment1.Units
|
||||
assert unit2 in assignment1.Units
|
||||
|
||||
def test_overwriting_an_existing_unit_type(self):
|
||||
project = self.file.createIfcProject()
|
||||
unit1 = ifcopenshell.api.unit.add_si_unit(self.file, unit_type="LENGTHUNIT", prefix="MILLI")
|
||||
unit2 = ifcopenshell.api.unit.add_si_unit(self.file, unit_type="LENGTHUNIT", prefix="CENTI")
|
||||
assignment1 = ifcopenshell.api.unit.assign_unit(self.file, units=[unit1])
|
||||
assignment2 = ifcopenshell.api.unit.assign_unit(self.file, units=[unit2])
|
||||
assert project.UnitsInContext == assignment1
|
||||
assert assignment1 == assignment2
|
||||
assert unit1 not in assignment1.Units
|
||||
assert unit2 in assignment1.Units
|
||||
|
||||
def test_overwriting_an_existing_monetary_unit(self):
|
||||
project = self.file.createIfcProject()
|
||||
unit1 = ifcopenshell.api.unit.add_monetary_unit(self.file, currency="USD")
|
||||
unit2 = ifcopenshell.api.unit.add_monetary_unit(self.file, currency="AUD")
|
||||
assignment1 = ifcopenshell.api.unit.assign_unit(self.file, units=[unit1])
|
||||
assignment2 = ifcopenshell.api.unit.assign_unit(self.file, units=[unit2])
|
||||
assert project.UnitsInContext == assignment1
|
||||
assert assignment1 == assignment2
|
||||
assert unit1 not in assignment1.Units
|
||||
assert unit2 in assignment1.Units
|
||||
|
||||
|
||||
class TestAssignUnitIFC2X3(test.bootstrap.IFC2X3, TestAssignUnit):
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user