diff --git a/hands_on/first/test_first.py b/hands_on/first/test_first.py index 5ac7354..2dd44cc 100644 --- a/hands_on/first/test_first.py +++ b/hands_on/first/test_first.py @@ -1,6 +1,11 @@ +from first import times_3 + def test_times_3_integer(): - pass + result = times_3([1]) + assert result == [1, 1, 1] def test_times_3_string(): - pass + result = times_3([1]) + assert result == [2] + diff --git a/hands_on/local_maxima/local_maxima.py b/hands_on/local_maxima/local_maxima.py index cfd0a9e..1de0b20 100644 --- a/hands_on/local_maxima/local_maxima.py +++ b/hands_on/local_maxima/local_maxima.py @@ -4,12 +4,18 @@ def find_maxima(x): Input arguments: x -- 1D list of real numbers + Output: idx -- list of indices of the local maxima in x """ - return [] + maxima = [] + for index in range(len(x)-2): + if x[index+1] > x[index] and x[index +1] > x[index+2]: + maxima.append(index+1) + + return maxima if __name__ == "__main__": - x = [1, 2, 3] + x = [1, 2, 2, 1] print(find_maxima(x)) 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..3a16af1 --- /dev/null +++ b/hands_on/local_maxima/test_local_maxima.py @@ -0,0 +1,41 @@ +from local_maxima import find_maxima + + + +def test_local_maxima_empty(): + value = [] + expected = [] + + result = find_maxima(value) + + assert result == expected + + +def test_local_maxima_plateau(): + value = [1, 2, 2, 1] + expected = [] + + result = find_maxima(value) + + assert result == expected + +def test_local_maxima_array1(): + value = [1, 3, 5, 2, 1] + expected = [2] + + result = find_maxima(value) + + assert result == expected + + +def test_local_maxima_array2(): + value = [5, 4, 4, 5] + expected = [] + + result = find_maxima(value) + + assert result == expected + + + +