def test_frqs_is_positive_array(self, inp: Array) -> None: dft = Dft(inp.shape[0], 'hamming', None) spctrm = dft.transform(inp) frqs = spctrm.frqs self.assertTrue(isinstance(frqs, np.ndarray)) self.assertTrue(frqs.dtype.type is np.float64) self.assertTrue(np.all(frqs>=0))
def test_phase_within_pi(self, inp: Array) -> None: dft = Dft(inp.shape[0], 'hamming', None) spctrm = dft.transform(inp) phase = spctrm.phase self.assertTrue(phase.dtype.type is np.float64) self.assertTrue(np.all(-np.pi<=phase)) self.assertTrue(np.all(phase<=np.pi))
def test_spread(self, params): fps, frq = params sig = sinusoid(frq, fps=fps) dft = Dft(fps=fps, window=None) sxx = dft.transform(sig) sps = features.spectral_spread(sxx.frqs, sxx.power) self.assertLess(sps.item(), 1.0)
def test_centroid(self, params): fps, frq = params sig = sinusoid(frq, fps=fps) dft = Dft(fps=fps, window=None) sxx = dft.transform(sig) spc = features.spectral_centroid(sxx.frqs, sxx.power) self.assertAlmostEqual(spc.item(), frq)
def test_n_fft(self, n_samples: int) -> None: sig = np.empty((n_samples, 1)) dft = Dft(n_samples, 'hamming', None) y = dft.transform(sig) self.assertEqual(y._n_fft, sig.size)
def test_power_is_positive_array(self, inp: Array) -> None: dft = Dft(inp.shape[0], 'hamming', None) spctrm = dft.transform(inp) power = spctrm.power self.assertTrue(power.dtype.type is np.float64) self.assertTrue(np.all(power>=0.0))
def test_d_frq_is_positive_float(self, inp: Array) -> None: dft = Dft(inp.shape[0], 'hamming', None) spctrm = dft.transform(inp) dfrq = spctrm.d_frq self.assertTrue(isinstance(dfrq, float)) self.assertTrue(dfrq>0)
def test_abs_ge_zero(self, inp: Array) -> None: dft = Dft(inp.shape[0], 'hamming', None) spctrm = dft.transform(inp) self.assertTrue(np.all(spctrm.abs>=0))
def test_abs_is_real(self, inp: Array) -> None: dft = Dft(inp.shape[0], 'hamming', None) spctrm = dft.transform(inp) self.assertTrue(spctrm.abs.dtype.type is np.float64)