From 354d7cf9f19397d45455c1e144ff8bfab814c793 Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Tue, 23 Sep 2025 16:31:03 +0300 Subject: [PATCH] local maxima tests --- hands_on/local_maxima_part2/local_maxima.py | 10 +++++++++- hands_on/local_maxima_part2/test_local_maxima.py | 16 +++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/hands_on/local_maxima_part2/local_maxima.py b/hands_on/local_maxima_part2/local_maxima.py index db89ba3..7e837f4 100644 --- a/hands_on/local_maxima_part2/local_maxima.py +++ b/hands_on/local_maxima_part2/local_maxima.py @@ -7,4 +7,12 @@ def find_maxima(x): Output: idx -- list of indices of the local maxima in x """ - return [] + idx = [] + for i in range(len(x)): + if i == 0 and x[i] > x[i+1]: + idx.append(i) + elif i != len(x)-1 and x[i] > x[i-1] and x[i] > x[i+1]: + idx.append(i) + elif i== len(x)-1 and x[i] > x[i-1]: + idx.append(i) + return idx \ No newline at end of file diff --git a/hands_on/local_maxima_part2/test_local_maxima.py b/hands_on/local_maxima_part2/test_local_maxima.py index 316442d..e1629a4 100644 --- a/hands_on/local_maxima_part2/test_local_maxima.py +++ b/hands_on/local_maxima_part2/test_local_maxima.py @@ -16,15 +16,21 @@ def test_find_maxima_edges(): def test_find_maxima_empty(): + values = [1,2,2,1] + expected = [1] + maxima = find_maxima(values) + assert maxima == expected + + +def test_find_maxima_plateau(): values = [] expected = [] maxima = find_maxima(values) assert maxima == expected -def test_find_maxima_plateau(): - raise Exception('not yet implemented') - - def test_find_maxima_not_a_plateau(): - raise Exception('not yet implemented') + values = [] + expected = [] + maxima = find_maxima(values) + assert maxima == expected