From 85040389e28549fd7b7240edaa7fca392f53ab7c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <alan.munoz@ed.ac.uk>
Date: Tue, 18 Oct 2022 17:40:00 +0100
Subject: [PATCH] fix(signal): fringe case t_min < signal.t_interval

---
 src/agora/io/signal.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/agora/io/signal.py b/src/agora/io/signal.py
index ed49ffd9..f6a637e8 100644
--- a/src/agora/io/signal.py
+++ b/src/agora/io/signal.py
@@ -402,18 +402,20 @@ class Signal(BridgeH5):
         return int(self.tinterval * self.ntps / 60)
 
     @property
-    def switch_frames(self) -> t.List[int]:
+    def switch_times(self) -> t.List[int]:
         switchtimes_name = "switchtimes"
-        switch_frames = self.meta_h5[switchtimes_name]
+        switches_minutes = self.meta_h5[switchtimes_name]
 
         return [
-            tp for tp in switch_frames if tp and tp < self.max_span
+            t_min
+            for t_min in switches_minutes
+            if t_min and t_min < self.max_span
         ]  # Cover for t0 switches
 
     @property
     def stages_span(self) -> t.Tuple[t.Tuple[str, int], ...]:
         # Return consecutive stages and their corresponding number of time-points
-        transition_tps = (0, *self.switch_frames, self.max_span)
+        transition_tps = (0, *self.switch_times, self.max_span)
         spans = [
             end - start
             for start, end in zip(transition_tps[:-1], transition_tps[1:])
@@ -425,7 +427,7 @@ class Signal(BridgeH5):
     def stages_span_tp(self) -> t.Tuple[t.Tuple[str, int], ...]:
         return tuple(
             [
-                (name, t_min // self.tinterval * 60)
+                (name, (t_min * 60) // self.tinterval)
                 for name, t_min in self.stages_span
             ]
         )
-- 
GitLab