updates lecture files
This commit is contained in:
parent
6c782bdf30
commit
952f8b97a5
6 changed files with 10 additions and 154 deletions
|
@ -1,19 +1,6 @@
|
||||||
from first import times_3
|
|
||||||
|
|
||||||
|
|
||||||
def test_times_3_integer():
|
def test_times_3_integer():
|
||||||
value = 7
|
pass
|
||||||
expected = 21
|
|
||||||
|
|
||||||
result = times_3(value)
|
|
||||||
|
|
||||||
assert result == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_times_3_string():
|
def test_times_3_string():
|
||||||
value = 'wow'
|
pass
|
||||||
expected = 'wowwowwow'
|
|
||||||
|
|
||||||
result = times_3(value)
|
|
||||||
|
|
||||||
assert result == expected
|
|
||||||
|
|
|
@ -1,13 +1,6 @@
|
||||||
def times_3(x):
|
def times_3(x):
|
||||||
""" Multiply x by 3.
|
pass
|
||||||
|
|
||||||
Parameters
|
|
||||||
----------
|
|
||||||
x : The item to multiply by 3.
|
|
||||||
"""
|
|
||||||
return x * 3
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == "__main__":
|
||||||
print(times_3(2))
|
pass
|
||||||
print(times_3("a"))
|
|
||||||
|
|
|
@ -8,3 +8,8 @@ def find_maxima(x):
|
||||||
idx -- list of indices of the local maxima in x
|
idx -- list of indices of the local maxima in x
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
x = [1, 2, 3]
|
||||||
|
print(find_maxima(x))
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
import numpy as np
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
from local_maxima import find_maxima
|
from local_maxima import find_maxima
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
from first import times_3
|
|
||||||
|
|
||||||
|
|
||||||
def test_times_3_integer():
|
|
||||||
value = 7
|
|
||||||
expected = 21
|
|
||||||
|
|
||||||
result = times_3(value)
|
|
||||||
|
|
||||||
assert result == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_times_3_string():
|
|
||||||
value = 'wow'
|
|
||||||
expected = 'wowwowwow'
|
|
||||||
|
|
||||||
result = times_3(value)
|
|
||||||
|
|
||||||
assert result == expected
|
|
|
@ -1,107 +0,0 @@
|
||||||
import numpy as np
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
from local_maxima import find_maxima
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima():
|
|
||||||
values = [1, 3, -2, 0, 2, 1]
|
|
||||||
expected = [1, 4]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_edges():
|
|
||||||
values = [4, 2, 1, 0, 1, 5]
|
|
||||||
expected = [0, 5]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_empty():
|
|
||||||
values = []
|
|
||||||
expected = []
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_plateau():
|
|
||||||
values = [1, 2, 2, 1]
|
|
||||||
expected = [1]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_not_a_plateau():
|
|
||||||
values = [1, 2, 2, 3, 1]
|
|
||||||
expected = [3]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
# the tests below here fail, can you get them to pass?
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_correct_order():
|
|
||||||
# TASK: get this test to pass
|
|
||||||
values = [2, 1, 5, 1, 9]
|
|
||||||
expected = [0, 2, 4]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_one_value():
|
|
||||||
# TASK: get this test to pass
|
|
||||||
values = [1]
|
|
||||||
expected = [0]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_long_plateau():
|
|
||||||
# TASK: Change the implementation for when there is a plateau
|
|
||||||
# for uneven plateau length, return the middle index, e.g. [1, 2, *2*, 2, 1] --> [2]
|
|
||||||
# for even plateau length, return the index left of the middle e.g. [1, 2, *2*, 2, 2, 1] --> [2]
|
|
||||||
values = [1, 2, 2, 2, 2, 2, 1, 8, 0]
|
|
||||||
expected = [3, 7]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_plateau_at_end():
|
|
||||||
# TASK: make sure plateaus at the end are handled properly (see test above)
|
|
||||||
values = [1, 2, 2]
|
|
||||||
expected = [1]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_plateau_at_start():
|
|
||||||
# TASK: make sure plateaus at the start are handled properly (see test above)
|
|
||||||
values = [1, 1, 0, 0]
|
|
||||||
expected = [0]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_all_same_values():
|
|
||||||
# TASK: implement a check for lists where there is no local maximum
|
|
||||||
values = [1, 1]
|
|
||||||
expected = [0]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_letters():
|
|
||||||
# stings can be evaluated with > and <, who knew!
|
|
||||||
# Find an easy solution so that both "t"s are recognised as local maxima
|
|
||||||
values = ["T", "e", "s", "t", "s", "!"]
|
|
||||||
expected = [0, 3]
|
|
||||||
maxima = find_maxima(values)
|
|
||||||
assert maxima == expected
|
|
||||||
|
|
||||||
|
|
||||||
def test_find_maxima_new_inputs_to_make_current_function_fail():
|
|
||||||
# should you actually be done with all tests, then you can think of other cases where the current function fails
|
|
||||||
# and write tests for them and fix them
|
|
||||||
assert False
|
|
Loading…
Add table
Add a link
Reference in a new issue