From 3a3a0438b40c7a2b0dda4c6d5c6a9c72dbfd0f3c Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Tue, 27 Aug 2024 16:10:28 +0300 Subject: [PATCH] fix and test find_maxima function --- hands_on/local_maxima/local_maxima.py | 12 +++++++++++- hands_on/local_maxima/test_local_maxima.py | 10 ++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 hands_on/local_maxima/test_local_maxima.py diff --git a/hands_on/local_maxima/local_maxima.py b/hands_on/local_maxima/local_maxima.py index db89ba3..5ff1802 100644 --- a/hands_on/local_maxima/local_maxima.py +++ b/hands_on/local_maxima/local_maxima.py @@ -7,4 +7,14 @@ def find_maxima(x): Output: idx -- list of indices of the local maxima in x """ - return [] + + local_maxima = [] + + for index, value in enumerate(x): + if index <= len(x)-2: + if x[index] > x[index+1] and x[index] > x[index-1]: + local_maxima.append(index) + + if len(local_maxima) > 0: + return local_maxima + diff --git a/hands_on/local_maxima/test_local_maxima.py b/hands_on/local_maxima/test_local_maxima.py new file mode 100644 index 0000000..a3b4a34 --- /dev/null +++ b/hands_on/local_maxima/test_local_maxima.py @@ -0,0 +1,10 @@ +from local_maxima import find_maxima +import pytest + +def test_find_maxima(): + input_list = [0, 6, -2, 5, 1] + expected = [1, 3] + + result = find_maxima(input_list) + + assert result == expected -- 2.39.5