diff --git a/madarrays/mad_array.py b/madarrays/mad_array.py index 2ea639960a22f5c1c6f65d02af10df20b86c2433..deba53d6f0d19989e4a88006c91ec1f93fa0a582 100644 --- a/madarrays/mad_array.py +++ b/madarrays/mad_array.py @@ -45,8 +45,6 @@ .. moduleauthor:: Valentin Emiya .. moduleauthor:: Florent Jaillet """ -import warnings - import numpy as np diff --git a/madarrays/tests/test_waveform.py b/madarrays/tests/test_waveform.py index ffc2bcc65f25188b64871c618bea10573d4276f2..d8804b684c297c6bae74c453c260444e5271d342 100644 --- a/madarrays/tests/test_waveform.py +++ b/madarrays/tests/test_waveform.py @@ -217,6 +217,22 @@ class TestWaveform: w = Waveform(self.x_mono, mask=self.m_mono, fs=self.fs) w2 = Waveform(w) assert w2.fs == self.fs + np.testing.assert_array_equal(w._mask, w2._mask) + + def test_init_from_madarray(self): + + w = MadArray(self.x_mono, mask=self.m_mono) + w2 = Waveform(w) + np.testing.assert_array_equal(w2._mask, w._mask) + + w = MadArray(self.x_mono, mask_magnitude=self.m_mono) + match = ('Construction of a Waveform from a MadArray with ' + 'complex masking: the original masking data are ' + 'discarded and a boolean mask set to False is used.') + with pytest.warns(UserWarning, match=match): + w2 = Waveform(w) + np.testing.assert_array_equal( + w2._mask, np.zeros_like(w2, dtype=np.bool)) def test_resample(self): diff --git a/madarrays/waveform.py b/madarrays/waveform.py index 8d6bb37aea9fcab3589c2f3961963588af3892e8..c1e83dcc107ae0913a31fdc87a2d6b4d1d77fdda 100644 --- a/madarrays/waveform.py +++ b/madarrays/waveform.py @@ -153,6 +153,15 @@ class Waveform(MadArray): # create the MadArray data = data.squeeze() + if isinstance(data, MadArray) and data._complex_masking \ + and mask is None : + warnmsg = ('Construction of a Waveform from a MadArray with ' + 'complex masking: the original masking data are ' + 'discarded and a boolean mask set to False is used.') + warnings.warn(warnmsg) + # Create mask to force boolean masking + mask = np.zeros_like(data, dtype=np.bool) + obj = MadArray.__new__(cls=cls, data=data, mask=mask, masked_indexing=masked_indexing) @@ -310,7 +319,7 @@ class Waveform(MadArray): self._fs = fs self._mask = np.zeros_like(self, dtype=np.bool) - def plot(self, x_axis_label='Time (s)', y_axis_label='s(t)', + def plot(self, x_axis_label='Time (s)', y_axis_label='', cpx_mode='real', fill_value=0, **kwargs): """Plot the signal. @@ -366,7 +375,7 @@ class Waveform(MadArray): def plot_mask(self, x_axis_label='Time (s)', - y_axis_label='Missing', + y_axis_label='', **kwargs): """Plot the mask.