first commit
This commit is contained in:
196
test/models/panel_test.py
Normal file
196
test/models/panel_test.py
Normal file
@@ -0,0 +1,196 @@
|
||||
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
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user