diff --git a/skais/ais/ais_trajectory.py b/skais/ais/ais_trajectory.py index 709440b93d837c1bf820a46c5d694744fa6fec55..7fb2a1198d4d18373c174bbcd710dea0da39ec8c 100644 --- a/skais/ais/ais_trajectory.py +++ b/skais/ais/ais_trajectory.py @@ -214,3 +214,6 @@ class AISTrajectory(AISPoints): return self else: return AISTrajectory(new_df, mmsi=self.mmsi) + + def get_time_per_label_shift(self): + pass \ No newline at end of file diff --git a/skais/tests/ais/test_ais_trajectory.py b/skais/tests/ais/test_ais_trajectory.py index d4bb0d629c31fccbae8833eef65d4b19ab0db58d..0566fca5f8f9b65f478f51b05d9423d68e2a1504 100644 --- a/skais/tests/ais/test_ais_trajectory.py +++ b/skais/tests/ais/test_ais_trajectory.py @@ -333,4 +333,49 @@ class TestAISTrajectory(unittest.TestCase): expected = np.array([2, 2, 2, 2, 2]) - np.testing.assert_equal(result, expected) \ No newline at end of file + np.testing.assert_equal(result, expected) + + def test_get_time_per_label_shift_single_label(self): + trajectory = AISTrajectory( + pd.DataFrame( + { + "label": [1 for _ in range(0, 101, 10)], + "ts_sec": [i for i in range(0, 6001, 600)] + } + ) + ) + + result = trajectory.get_time_per_label_shift() + expected = [(0, 1)] + + self.assertListEqual(result, expected) + + def test_get_time_per_label_shift_label_switch_1(self): + trajectory = AISTrajectory( + pd.DataFrame( + { + "label": [1 for _ in range(0, 101, 10)] + [2 for _ in range(0, 101, 10)], + "ts_sec": [i for i in range(0, 12001, 600)] + } + ) + ) + + result = trajectory.get_time_per_label_shift() + expected = [(0, 1), (6600, 2)] + + self.assertListEqual(result, expected) + + def test_get_time_per_label_shift_label_switch_2(self): + trajectory = AISTrajectory( + pd.DataFrame( + { + "label": [1 for _ in range(0, 101, 10)] + [2 for _ in range(0, 101, 10)]+ [1 for _ in range(0, 101, 10)], + "ts_sec": [i for i in range(0, 18001, 600)] + } + ) + ) + + result = trajectory.get_time_per_label_shift() + expected = [(0, 1), (6600, 2), (12600, 1)] + + self.assertListEqual(result, expected) \ No newline at end of file