From d3e06d81ede387c0e5db6e7f760c774e272a1616 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <alan.munoz@ed.ac.uk>
Date: Mon, 19 Dec 2022 18:35:03 +0000
Subject: [PATCH] fix(dsignal): cover empty cases

---
 src/postprocessor/core/processes/dsignal.py | 23 ++++++++++++---------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/postprocessor/core/processes/dsignal.py b/src/postprocessor/core/processes/dsignal.py
index 12631958..50bc25e4 100644
--- a/src/postprocessor/core/processes/dsignal.py
+++ b/src/postprocessor/core/processes/dsignal.py
@@ -23,16 +23,19 @@ class dsignal(PostProcessABC):
         super().__init__(parameters)
 
     def run(self, signal: pd.DataFrame):
-        matrix = np.diff(
-            bn.move_mean(
-                signal,
-                window=self.parameters.window,
-                min_count=self.parameters.min_count,
+        if signal.shape[1] > self.parameters.window:
+            matrix = np.diff(
+                bn.move_mean(
+                    signal,
+                    window=self.parameters.window,
+                    min_count=self.parameters.min_count,
+                    axis=1,
+                ),
                 axis=1,
-            ),
-            axis=1,
-        )
+            )
+            # Pad values to keep the same signal shape
+            matrix = np.pad(matrix, ((0, 0), (0, 1)), constant_values=np.nan)
+        else:
+            matrix = np.full_like(signal, np.nan)
 
-        # Pad values to keep the same signal shape
-        matrix = np.pad(matrix, ((0, 0), (0, 1)), constant_values=np.nan)
         return pd.DataFrame(matrix, index=signal.index, columns=signal.columns)
-- 
GitLab