def test_stats_for_double_peak_offset(self):

        time = np.linspace(0, 4 * np.pi, 200)
        signal = np.sin(time) + 4.0

        peaks = (25, 125, 200)

        res = signals.calc_stats_around_peak(time, signal, peaks)
        exp = {
            'peak_value': 5.0,
            'peak_index': 125,
            'peak_start_index': 81,
            'peak_end_index': 167,
            'total_wave_time': 5.43,
        }
        for key, val in exp.items():
            assert round(res[key], 2) == round(exp[key], 2), key
    def test_stats_for_sawtooth(self):

        time = np.array([0, 1, 2, 3, 4, 5, 6, 7])
        signal = np.array([0, 0, 2, 4, 3, 2, 1, 0])

        peaks = (0, 3, 7)

        res = signals.calc_stats_around_peak(time, signal, peaks)
        exp = {
            'peak_value': 4,
            'peak_index': 3,
            'peak_start_index': 1,
            'peak_end_index': 7,
            'total_wave_time': 6,
        }
        for key, val in exp.items():
            assert round(res[key], 2) == round(exp[key], 2), key
    def test_stats_for_single_peak(self):

        time = np.linspace(0, 2 * np.pi, 100)
        signal = np.sin(time)

        peaks = (0, 25, 100)

        res = signals.calc_stats_around_peak(time, signal, peaks)
        exp = {
            'peak_value': 1.0,
            'peak_index': 25,
            'peak_start_index': 0,
            'peak_end_index': 68,
            'total_wave_time': 4.32,
        }
        for key, val in exp.items():
            assert round(res[key], 2) == round(exp[key], 2), key
    def test_stats_for_single_line_down(self):

        time = np.linspace(0, 2 * np.pi, 100)
        signal = time * -0.5

        peaks = (0, 25, 100)

        res = signals.calc_stats_around_peak(time, signal, peaks)
        exp = {
            'peak_value': -0.79,
            'peak_index': 25,
            'peak_start_index': 25,
            'peak_end_index': 96,
            'total_wave_time': 4.51,
        }
        for key, val in exp.items():
            assert round(res[key], 2) == round(exp[key], 2), key