197 lines
5.2 KiB
Python
197 lines
5.2 KiB
Python
import unittest
|
|
from nose.tools import eq_, assert_not_equal
|
|
from helix.constants.panel_type import PanelType
|
|
from helix.models.coordinate import Coordinate
|
|
from helix.models.panel import Panel, PanelData
|
|
|
|
|
|
class PanelTest(unittest.TestCase):
|
|
def setUp(self):
|
|
self.subject = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
subarray=1,
|
|
panel_type=PanelType.Corner,
|
|
wind_zone=0,
|
|
ballast=5,
|
|
link_tray=None,
|
|
cross_tray=None,
|
|
wind_anchors=0,
|
|
seismic_anchors=1,
|
|
coordinate=Coordinate(0, 1),
|
|
original_coordinate=Coordinate(0, 1),
|
|
pressure=3.58,
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
|
|
def test_almost_equal_pressure_almost_equal(self):
|
|
almost_equal_panel = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
subarray=1,
|
|
panel_type=PanelType.Corner,
|
|
wind_zone=0,
|
|
ballast=5,
|
|
link_tray=None,
|
|
cross_tray=None,
|
|
wind_anchors=0,
|
|
seismic_anchors=1,
|
|
coordinate=Coordinate(0, 1),
|
|
original_coordinate=Coordinate(0, 1),
|
|
pressure=3.5805,
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
|
|
assert self.subject.almost_equal(almost_equal_panel, decimal=3)
|
|
|
|
def test_almost_equal_pressure_not_equal(self):
|
|
|
|
not_equal_panel = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
subarray=1,
|
|
panel_type=PanelType.Corner,
|
|
wind_zone=0,
|
|
ballast=5,
|
|
link_tray=None,
|
|
cross_tray=None,
|
|
wind_anchors=0,
|
|
seismic_anchors=1,
|
|
coordinate=Coordinate(0, 1),
|
|
original_coordinate=Coordinate(0, 1),
|
|
pressure=3.585,
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
assert not self.subject.almost_equal(not_equal_panel, decimal=3)
|
|
|
|
def test_almost_equal_other_attribute_not_equal(self):
|
|
|
|
not_even_close_panel = Panel(
|
|
handle="FOO",
|
|
blockname="*U13608",
|
|
subarray=1,
|
|
panel_type=PanelType.Corner,
|
|
wind_zone=0,
|
|
ballast=5,
|
|
link_tray=None,
|
|
cross_tray=None,
|
|
wind_anchors=0,
|
|
seismic_anchors=1,
|
|
coordinate=Coordinate(0, 1),
|
|
pressure=3.58,
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
assert not self.subject.almost_equal(not_even_close_panel, decimal=3)
|
|
|
|
def test_equality_identity(self):
|
|
eq_(self.subject, self.subject)
|
|
|
|
def test_equality_property(self):
|
|
same_panel = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
subarray=1,
|
|
panel_type=PanelType.Corner,
|
|
wind_zone=0,
|
|
ballast=5,
|
|
link_tray=None,
|
|
cross_tray=None,
|
|
wind_anchors=0,
|
|
seismic_anchors=1,
|
|
coordinate=Coordinate(0, 1),
|
|
original_coordinate=Coordinate(0, 1),
|
|
pressure=3.58,
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
eq_(self.subject, same_panel)
|
|
|
|
def test_equality_subobject(self):
|
|
a = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
|
|
b = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
|
|
eq_(a, b)
|
|
|
|
assert_not_equal(self.subject, a)
|
|
|
|
def test_is_subset(self):
|
|
a = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
|
|
b = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
id=2,
|
|
presented_link_tray=2
|
|
)
|
|
|
|
assert a.is_subset(self.subject)
|
|
|
|
assert not b.is_subset(self.subject)
|
|
|
|
def test_repr(self):
|
|
expected = '{' \
|
|
'"ballast": 5, ' \
|
|
'"blockname": "*U13608", ' \
|
|
'"coordinate": {"rotation": 0.0, "x": 0, "y": 1}, ' \
|
|
'"fuzzy_wind_zone": false, '\
|
|
'"handle": "\'14DAB3", ' \
|
|
'"id": 1, ' \
|
|
'"original_coordinate": {"rotation": 0.0, "x": 0, "y": 1}, ' \
|
|
'"panel_type": 0, ' \
|
|
'"presented_link_tray": 2, ' \
|
|
'"pressure": 3.58, ' \
|
|
'"seismic_anchors": 1, ' \
|
|
'"subarray": 1, ' \
|
|
'"warnings": [], ' \
|
|
'"wind_anchors": 0, ' \
|
|
'"wind_zone": 0}'
|
|
|
|
eq_(str(self.subject), expected)
|
|
|
|
def test_merge_two_panels(self):
|
|
a = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
id=1,
|
|
presented_link_tray=2
|
|
)
|
|
|
|
b = Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
id=2,
|
|
presented_link_tray=2,
|
|
ballast=10
|
|
)
|
|
|
|
merged = a.merge(b)
|
|
|
|
eq_(merged, Panel(
|
|
handle="'14DAB3",
|
|
blockname="*U13608",
|
|
id=1,
|
|
presented_link_tray=2,
|
|
ballast=10
|
|
))
|
|
|