add find_maxima and testing for find_maxima #3
|
@ -7,4 +7,17 @@ def find_maxima(x):
|
||||||
Output:
|
Output:
|
||||||
idx -- list of indices of the local maxima in x
|
idx -- list of indices of the local maxima in x
|
||||||
"""
|
"""
|
||||||
return []
|
maxima= []
|
||||||
|
for i, val in enumerate(x):
|
||||||
|
if i == 0 and val > x[i+1]:
|
||||||
|
maxima.append(i)
|
||||||
|
elif i == len(x) -1 and val > x[len(x) -2]:
|
||||||
|
maxima.append(i)
|
||||||
|
else:
|
||||||
|
if val > x[i-1] and val > x[i+1]:
|
||||||
|
maxima.append(i)
|
||||||
|
return maxima
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
idx = find_maxima([1,3,-2,0,2,1])
|
||||||
|
print(idx)
|
||||||
|
|
41
hands_on/local_maxima/test_local_maxima.py
Normal file
41
hands_on/local_maxima/test_local_maxima.py
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
from local_maxima import find_maxima
|
||||||
|
|
||||||
|
def test_local_maxima_first():
|
||||||
|
values = [1,3, -2, 0,2,1]
|
||||||
|
expected = [1, 4]
|
||||||
|
|
||||||
|
result = find_maxima(values)
|
||||||
|
|
||||||
|
assert result == expected
|
||||||
|
|
||||||
|
def test_local_maxima_second():
|
||||||
|
values = [4, 2, 1, 3, 1, 5]
|
||||||
|
expected = [0,3,5]
|
||||||
|
|
||||||
|
result = find_maxima(values)
|
||||||
|
|
||||||
|
assert result == expected
|
||||||
|
|
||||||
|
def test_local_maxima_third():
|
||||||
|
values = []
|
||||||
|
expected = []
|
||||||
|
|
||||||
|
result = find_maxima(values)
|
||||||
|
|
||||||
|
assert result == expected
|
||||||
|
|
||||||
|
def test_local_maxima_fourth():
|
||||||
|
values = [1,2,2,1]
|
||||||
|
expected = []
|
||||||
|
|
||||||
|
result = find_maxima(values)
|
||||||
|
|
||||||
|
assert result == expected
|
||||||
|
|
||||||
|
def test_local_maxima_fifth():
|
||||||
|
values = [1,2,2,3,1]
|
||||||
|
expected = [3]
|
||||||
|
|
||||||
|
result = find_maxima(values)
|
||||||
|
|
||||||
|
assert result == expected
|
Loading…
Reference in a new issue