diff --git a/skais/tests/ais/test_ais_trajectory.py b/skais/tests/ais/test_ais_trajectory.py index d5e64a0e87a67f15f19289c2f1d527f215b178db..4298ed2760e70bde033896996ba664487eebfeb8 100644 --- a/skais/tests/ais/test_ais_trajectory.py +++ b/skais/tests/ais/test_ais_trajectory.py @@ -380,8 +380,9 @@ class TestAISTrajectory(unittest.TestCase): self.assertListEqual(result, expected) - def test_generate_array_from_positions(self): - trajectory = AISTrajectory( +class TestAISTrajectoryImageGeneration(unittest.TestCase): + def setUp(self) -> None: + self.trajectory = AISTrajectory( pd.DataFrame( { "latitude": [0, 10, 0, -10], @@ -391,7 +392,8 @@ class TestAISTrajectory(unittest.TestCase): ) ) - result = trajectory.generate_array_from_positions(height=9, width=9, link=False, bounding_box='fit', + def test_generate_array_from_positions(self): + result = self.trajectory.generate_array_from_positions(height=9, width=9, link=False, bounding_box='fit', features=None, node_size=0).reshape((9, 9)) expected = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0], @@ -406,17 +408,8 @@ class TestAISTrajectory(unittest.TestCase): np.testing.assert_array_equal(result, expected) def test_generate_array_from_positions_node_size(self): - trajectory = AISTrajectory( - pd.DataFrame( - { - "latitude": [0, 10, 0, -10], - "longitude": [0, 10, 10, -10], - "ts_sec": [i for i in range(4)] - } - ) - ) - result = trajectory.generate_array_from_positions(height=9, width=9, link=False, bounding_box='fit', + result = self.trajectory.generate_array_from_positions(height=9, width=9, link=False, bounding_box='fit', features=None, node_size=1).reshape((9, 9)) expected = np.array([[0, 0, 0, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 1, 1], @@ -556,4 +549,60 @@ class TestAISTrajectory(unittest.TestCase): [[0,0], [0.25,1], [0.25,1], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0.25,0.5], [0.25,0.5], [0,0], [0.5,0.25]], [[0.25,1], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0,0], [0.25,0.5], [0.5,0.25]]]) + np.testing.assert_array_equal(result, expected) + + def test_generate_array_centered(self): + result = self.trajectory.generate_array_from_positions(height=9, width=9, link=False, bounding_box='centered', + features=None, node_size=0).reshape((9, 9)) + expected = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 1, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 1, 0, 1, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 0, 0, 0, 0, 0, 0, 0, 0]]) + + np.testing.assert_array_equal(result, expected) + + def test_generate_array_bounding_box(self): + result = self.trajectory.generate_array_from_positions(height=9, width=9, link=False, bounding_box=[(0, 0), (10,10)], + features=None, node_size=0).reshape((9, 9)) + expected = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 1], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 0, 0, 0, 0, 0, 0, 0, 0]]) + + np.testing.assert_array_equal(result, expected) + + def test_generate_array_from_positions_with_line_grey_scale(self): + trajectory = AISTrajectory( + pd.DataFrame( + { + "latitude": [0, 10, 0, 20], + "longitude": [0, 10, 20, 20], + "ts_sec": [i for i in range(4)], + "sog": [10,10,20,40] + } + ) + ) + + result = trajectory.generate_array_from_positions(height=9, width=18, link=True, bounding_box='fit', + features=("sog", (0,80)), node_size=0).reshape((9, 18)) + expected = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5], + [0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0, 0, 0, 0, 0, 0, 0, 0.5], + [0, 0, 0, 0, 0, 0.25, 0.25, 0, 0, 0, 0.25, 0.25, 0, 0, 0, 0, 0, 0.5], + [0, 0, 0, 0.25, 0.25, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0, 0, 0, 0.5], + [0, 0.25, 0.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0, 0.5], + [0.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.5]])/2 + np.testing.assert_array_equal(result, expected) \ No newline at end of file