diff --git a/tests/test_model/test_handling_data.py b/tests/test_model/test_handling_data.py
index 27b69c4c2dd345f97350250a8e9c9f5d33a4db9f..72d6ba8afaa5ab3b0bdcfcbc134da84afd77feb3 100644
--- a/tests/test_model/test_handling_data.py
+++ b/tests/test_model/test_handling_data.py
@@ -38,6 +38,7 @@ from sohstationviewer.model.handling_data import (
     chunk_minmax,
     trim_downsample_SOHChan,
     get_eachDay5MinList,
+    findTPSTm
 )
 from sohstationviewer.model.reftek.from_rt2ms.core import Reftek130
 from sohstationviewer.conf.constants import SEC_5M, SEC_DAY, NO_5M_DAY
@@ -1234,3 +1235,77 @@ class TestGetTrimTpsData(TestCase):
     @expectedFailure
     def test(self):
         raise NotImplementedError(type(self))
+
+
+class TestFindTpsTime(TestCase):
+    def test_given_time_not_in_list(self):
+        each_day_5_min_list = get_eachDay5MinList(
+            ZERO_EPOCH_TIME,
+            UTCDateTime(1970, 1, 2, 0, 0, 1).timestamp
+        )
+        given_time = UTCDateTime(1990, 1, 1, 0, 0, 0).timestamp
+        time_idx, day_idx = findTPSTm(given_time, each_day_5_min_list)
+        self.assertIsNone(time_idx)
+        self.assertIsNone(day_idx)
+
+    def test_given_time_is_the_start_of_a_five_minute_interval(self):
+        with self.subTest('test_list_contains_one_day'):
+            each_day_5_min_list = get_eachDay5MinList(
+                ZERO_EPOCH_TIME,
+                UTCDateTime(1970, 1, 1, 0, 0, 1).timestamp
+            )
+            given_time = UTCDateTime(1970, 1, 1, 11, 0, 0).timestamp
+            time_idx, day_idx = findTPSTm(given_time, each_day_5_min_list)
+            self.assertEqual(time_idx, 132)
+            self.assertEqual(day_idx, 0)
+
+        with self.subTest('test_list_contains_multiple_days'):
+            each_day_5_min_list = get_eachDay5MinList(
+                ZERO_EPOCH_TIME,
+                UTCDateTime(1970, 1, 5, 0, 0, 1).timestamp
+            )
+            given_time = UTCDateTime(1970, 1, 3, 12, 15, 0).timestamp
+            time_idx, day_idx = findTPSTm(given_time, each_day_5_min_list)
+            self.assertEqual(time_idx, 147)
+            self.assertEqual(day_idx, -2)
+
+    def test_given_time_is_not_the_start_of_a_five_minute_interval(self):
+        with self.subTest('test_list_contains_one_day'):
+            each_day_5_min_list = get_eachDay5MinList(
+                ZERO_EPOCH_TIME,
+                UTCDateTime(1970, 1, 1, 0, 0, 1).timestamp
+            )
+            given_time = UTCDateTime(1970, 1, 1, 0, 1, 0).timestamp
+            time_idx, day_idx = findTPSTm(given_time, each_day_5_min_list)
+            self.assertEqual(time_idx, 0)
+            self.assertEqual(day_idx, 0)
+
+        with self.subTest('test_list_contains_multiple_days'):
+            each_day_5_min_list = get_eachDay5MinList(
+                ZERO_EPOCH_TIME,
+                UTCDateTime(1970, 1, 5, 0, 0, 1).timestamp
+            )
+            given_time = UTCDateTime(1970, 1, 3, 6, 13, 0).timestamp
+            time_idx, day_idx = findTPSTm(given_time, each_day_5_min_list)
+            self.assertEqual(time_idx, 74)
+            self.assertEqual(day_idx, -2)
+
+    def test_given_time_is_start_of_day(self):
+        each_day_5_min_list = get_eachDay5MinList(
+            ZERO_EPOCH_TIME,
+            UTCDateTime(1970, 1, 5, 0, 0, 1).timestamp
+        )
+        given_time = UTCDateTime(1970, 1, 3, 0, 0, 0).timestamp
+        time_idx, day_idx = findTPSTm(given_time, each_day_5_min_list)
+        self.assertEqual(time_idx, 0)
+        self.assertEqual(day_idx, -2)
+
+    def test_given_time_is_in_last_five_minutes_of_day(self):
+        each_day_5_min_list = get_eachDay5MinList(
+            ZERO_EPOCH_TIME,
+            UTCDateTime(1970, 1, 5, 0, 0, 1).timestamp
+        )
+        given_time = UTCDateTime(1970, 1, 3, 23, 57, 0).timestamp
+        time_idx, day_idx = findTPSTm(given_time, each_day_5_min_list)
+        self.assertEqual(time_idx, 287)
+        self.assertEqual(day_idx, -2)