import unittest from surveyladder.ladder import load_ladder_csv, load_ladder_xls, get_seed_points, LadderSegment, OffsetPoint class TestGetSeedPoints(unittest.TestCase): def test_get_seed_points(self): ladder_segments = ([ LadderSegment("D", "F", 161.3, []), LadderSegment("C", "G", 133.2, []), LadderSegment("C", "F", 138.5, []), LadderSegment("G", "F", 157.6, []), LadderSegment("C", "D", 130.5, []) ]) points = get_seed_points(ladder_segments) self.assertEqual(len(points), 4) for seg in ladder_segments: start_point = points[seg.start_label] end_point = points[seg.end_label] actual_distance = ((start_point[0] - end_point[0]) ** 2 + (start_point[1] - end_point[1]) ** 2) ** 0.5 self.assertAlmostEqual(actual_distance, seg.distance, places=1) class TestLadder(unittest.TestCase): def test_load_ladder_xls(self): self.maxDiff = None segments = load_ladder_xls("tests/data/ladder.xlsx") self.assertEqual(segments, ([ LadderSegment('A', 'B', 120.0, [OffsetPoint("1", 100.0, 3.0), OffsetPoint("2", 90.0, 4.0), OffsetPoint("3", 80.0, -5.0)]), LadderSegment('C', 'D', 30.0, [OffsetPoint("4", 20.0, 6.0)]) ])) def test_load_ladder_csv(self): self.maxDiff = None segments = load_ladder_csv("tests/data/ladder.csv") self.assertEqual(segments, ([ LadderSegment('A', 'B', 120.0, [OffsetPoint("1", 100.0, 3.0), OffsetPoint("2", 90.0, 4.0), OffsetPoint("3", 80.0, -5.0)]), LadderSegment('C', 'D', 30.0, [OffsetPoint("4", 20.0, 6.0)]) ])) unittest.main()