| import unittest |
| from ..tracks import Track, Tracks, Direction |
| |
| |
| class TracksTests(unittest.TestCase): |
| def setUp(self): |
| trk_array = [ |
| Track(direction='Y', x_low=1, x_high=1, y_low=1, y_high=5), |
| Track(direction='X', x_low=1, x_high=3, y_low=1, y_high=1), |
| Track(direction='Y', x_low=3, x_high=3, y_low=1, y_high=4), |
| ] |
| cnx_array = [(0, 1), (1, 2)] |
| self.trks = Tracks(trk_array, cnx_array) |
| |
| def test_verify_tracks(self): |
| self.trks.verify_tracks() |
| |
| def test_verify_tracks_not_connected(self): |
| self.trks.tracks.append( |
| Track(direction='X', x_low=1, x_high=3, y_low=4, y_high=4) |
| ) |
| |
| with self.assertRaises(AssertionError): |
| self.trks.verify_tracks() |
| |
| def test_verify_tracks_directon_error(self): |
| self.trks.tracks.append( |
| Track(direction='Y', x_low=1, x_high=1, y_low=5, y_high=6) |
| ) |
| self.trks.track_connections.append((0, 3)) |
| |
| with self.assertRaises(AssertionError): |
| self.trks.verify_tracks() |
| |
| def test_adjacent_simple(self): |
| |
| self.assertEqual( |
| self.trks.is_wire_adjacent_to_track(0, (1, 1)), Direction.RIGHT |
| ) |
| self.assertEqual( |
| self.trks.is_wire_adjacent_to_track(0, (2, 1)), Direction.LEFT |
| ) |
| self.assertEqual( |
| self.trks.is_wire_adjacent_to_track(0, (5, 2)), Direction.NO_SIDE |
| ) |
| |
| self.assertEqual( |
| self.trks.is_wire_adjacent_to_track(1, (2, 1)), Direction.TOP |
| ) |
| self.assertEqual( |
| self.trks.is_wire_adjacent_to_track(1, (2, 2)), Direction.BOTTOM |
| ) |
| self.assertEqual( |
| self.trks.is_wire_adjacent_to_track(1, (5, 2)), Direction.NO_SIDE |
| ) |
| |
| def test_adjacenet_assert(self): |
| trk_array = [ |
| Track(direction='Y', x_low=1, x_high=1, y_low=1, y_high=5), |
| Track(direction='X', x_low=1, x_high=3, y_low=1, y_high=1), |
| Track(direction='foobar', x_low=3, x_high=3, y_low=1, y_high=4), |
| ] |
| cnx_array = [(0, 1), (1, 2)] |
| trks = Tracks(trk_array, cnx_array) |
| with self.assertRaises(AssertionError): |
| trks.is_wire_adjacent_to_track(2, (3, 1)) |
| |
| def test_get_tracks(self): |
| |
| dirs = self.trks.get_tracks_for_wire_at_coord((1, 1)) |
| self.assertEqual(dirs, {Direction.RIGHT: 0, Direction.TOP: 1}) |