Skip to content

Commit 1c32578

Browse files
committed
MAINT: Check for non-zero data size in swt_axis and swt as well.
1 parent 9c0ff9d commit 1c32578

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

pywt/_extensions/_swt.pyx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level):
5454

5555
if data.size % 2:
5656
raise ValueError("Length of data must be even.")
57+
if data.size < 1:
58+
raise ValueError("Data must have non-zero size")
5759

5860
if level < 1:
5961
raise ValueError("Level value must be greater than zero.")
@@ -67,6 +69,7 @@ def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level):
6769
common.swt_max_level(data.size) - start_level))
6870
raise ValueError(msg)
6971

72+
7073
output_len = common.swt_buffer_length(data.size)
7174
if output_len < 1:
7275
raise RuntimeError("Invalid output length.")
@@ -153,8 +156,10 @@ cpdef swt_axis(np.ndarray data, Wavelet wavelet, size_t level,
153156
cdef int retval = -5
154157
cdef size_t i
155158

156-
if data.size % 2:
157-
raise ValueError("Length of data must be even.")
159+
if data.shape[axis] % 2:
160+
raise ValueError("Length of data must be even along the transform axis.")
161+
if data.shape[axis] < 1:
162+
raise ValueError("Data must have non-zero size along the transform axis.")
158163

159164
if level < 1:
160165
raise ValueError("Level value must be greater than zero.")

0 commit comments

Comments
 (0)