Coverage for emd/tests/test_imftools.py: 100%
21 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-09 10:07 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-09 10:07 +0000
1"""Tests for imftools."""
3import unittest
5import numpy as np
6import pandas as pd
9class TestAssessHarmonicCriteria(unittest.TestCase):
10 """Ensure that all sift variants actually run with default options."""
12 @classmethod
13 def setUpClass(cls):
14 """Create some signals for testing."""
15 cls.sample_rate = 512
16 cls.seconds = 10
17 cls.time = np.linspace(0, cls.seconds, cls.seconds*cls.sample_rate)
19 cls.x = np.sin(2*np.pi*5*cls.time)
20 cls.y = np.sin(2*np.pi*10*cls.time)
21 cls.z = np.sin(2*np.pi*15*cls.time)
23 cls.imfs = np.vstack((cls.x, cls.y, cls.z)).T
25 from ..spectra import frequency_transform
26 cls.IP, cls.IF, cls.IA = frequency_transform(cls.imfs, cls.sample_rate, 'hilbert')
28 def test_input_length(self):
29 """Smoke test to make sure that it runs without error."""
30 from ..imftools import assess_harmonic_criteria
32 # Equal segment lengths
33 df = assess_harmonic_criteria(self.IP, self.IF, self.IA, num_segments=10)
34 assert(isinstance(df, pd.DataFrame))
36 # Unequal segment lengths
37 df = assess_harmonic_criteria(self.IP, self.IF, self.IA, num_segments=7)
38 assert(isinstance(df, pd.DataFrame))