def test_peak_bins(): """ Test peak bins method """ x = np.array([0, 5, 2, 3, 1]) peaks1 = cf.find_sorted_peaks(x) npt.assert_almost_equal(cf.peak_bin(peaks1, 0), 1) npt.assert_almost_equal(cf.peak_bin(peaks1, 1), 3) result1 = cf.peak_bin(peaks1, 6) assert cf.peak_bin(peaks1, 6) is np.nan
def test_peak_ratio(): """ Test peak ratio method.""" x = np.array([0, 5, 2, 3, 1]) peaks1 = cf.find_sorted_peaks(x) npt.assert_almost_equal(cf.peak_ratio(peaks1, 0, 1), 5 / 3) assert cf.peak_ratio(peaks1, 1, 6) is np.nan peaks2 = [] assert cf.peak_ratio(peaks2, 1, 2) is np.nan
def test_find_sorted_peaks(): """Test peak-finding algorithm.""" x = np.array([0, 5, 3, 1]) # Single peak npt.assert_allclose(cf.find_sorted_peaks(x), np.array([[1, 5]])) x = np.array([0, 5, 3, 6, 1]) # Multiple peaks npt.assert_allclose(cf.find_sorted_peaks(x), np.array([[3, 6], [1, 5]])) x = np.array([3, 1, 3]) # End-points can be peaks npt.assert_allclose(cf.find_sorted_peaks(x), np.array([[0, 3], [2, 3]])) x = np.array([0, 3, 3, 3, 0]) # In case of ties, peak is left-most point npt.assert_allclose(cf.find_sorted_peaks(x), np.array([[1, 3]])) # Tie is a peak only if greater than next value x = np.array([0, 3, 3, 5, 0]) npt.assert_allclose(cf.find_sorted_peaks(x), np.array([[3, 5]]))