-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlist_utils_test.py
124 lines (100 loc) · 4.28 KB
/
list_utils_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import pytest
from list_utils import *
from oracle import ColumnRecommendation, ColumnClassification
def test_find_one():
needle = 1
none = [0, 0, 5, 's']
beginning = [1, none, 9, 6, 0, 0]
end = ['x', 'O', 1]
several = [0, 0, 3, 4, 1, 3, 2, 1, 3, 4]
assert find_one(none, needle) == False
assert find_one(beginning, needle)
assert find_one(end, needle)
assert find_one(several, needle)
def test_find_n():
assert find_n([2, 3, 4, 5, 6], 2, -1) == False
assert find_n([1, 2, 3, 4 ,5], 42, 2) == False
assert find_n([1, 2, 3, 4, 5], 1, 2) == False
assert find_n([1, 2, 3, 2, 4 ,5], 2, 2)
assert find_n([1, 2, 3, 4, 5, 4, 6, 4, 7, 4, 6], 4 , 2)
assert find_n([1, 2, 3, 4], 'x', 0) == True
def test_find_streak():
assert find_streak([1, 2, 3, 4, 5], 4, -1) == False
assert find_streak([1, 2, 3, 4, 5], 42, 2) == False
assert find_streak([1, 2, 3, 4], 4, 1)
assert find_streak([1, 2, 3, 1, 2], 2, 2) == False
assert find_streak([1, 2, 3, 4, 5, 5, 5], 5, 3)
assert find_streak([5, 5, 5, 1, 2, 3, 4], 5, 3)
assert find_streak([1, 2, 5, 5, 5, 3, 4], 5, 3)
assert find_streak([1, 2, 3, 4, 5, 5, 5], 5, 4) == False
def test_first_elements():
original = [[0, 7, 3], [4, 0, 1]]
assert first_elements(original) == [0, 4]
def test_transpose():
original = [[0, 7, 3], [4, 0, 1]]
transposed = [[0, 4], [7, 0], [3, 1]]
assert transpose(original) == transposed
assert transpose(transpose(original)) == original
def test_zero_distance_displace():
l1 = [1, 2, 3, 4, 5, 6]
l2 = [1]
l3 = [[4, 5], ['x', 'o', 'c']]
assert displace([], 0) == []
assert displace(l1, 0) == l1
assert displace(l2, 0) == l2
assert displace(l3, 0) == l3
def test_positive_distance_displace():
l1 = [1, 2, 3, 4, 5, 6]
l2 = [1]
l3 = [[4, 5], ['x', 'o', 'c']]
l4 = [9, 6, 5]
assert displace([], 2) == []
assert displace(l1, 2) == [None, None, 1, 2, 3, 4]
assert displace(l2, 3, '-') == ['-']
assert displace(l3, 1, '#') == ['#', [4, 5]]
assert displace(l4, 3, 0) == [0, 0, 0]
def test_negative_distance_displace():
l1 = [1, 2, 3, 4, 5, 6]
l2 = [1]
l3 = [[4, 5], ['x', 'o', 'c']]
l4 = [9, 6, 5]
assert displace([], -2) == []
assert displace(l1, -2) == [3, 4, 5, 6, None, None]
assert displace(l2, -3, '-') == ['-']
assert displace(l3, -1, '#') == [['x', 'o', 'c'], '#']
assert displace(l4, -3, 0) == [0, 0, 0]
def test_reverse_list():
assert reverse_list([]) == []
assert reverse_list([1, 2, 3, 4, 5, 6]) == [6, 5, 4, 3, 2, 1]
def test_reverse_matrix():
assert reverse_matrix([]) == []
assert reverse_matrix([[0, 1, 2, 3], [0, 1, 2, 3]]) == [[3, 2, 1, 0], [3, 2, 1, 0]]
def test_all_same():
assert all_same([9, 1, 2, 3, 4]) == False
assert all_same([[], [], []])
assert all_same([])
assert all_same([ColumnRecommendation(0, ColumnClassification.WIN),
ColumnRecommendation(2, ColumnClassification.WIN)])
assert all_same([ColumnRecommendation(0, ColumnClassification.MAYBE),
ColumnRecommendation(0, ColumnClassification.WIN)]) == False
def test_collapse_list():
assert collapse_list([]) == ''
assert collapse_list(['o', 'x', 'x', 'o']) == 'oxxo'
assert collapse_list(['x', 'x', None, None, None]) == 'xx...'
def test_collapse_matrix():
assert collapse_matrix([]) == ''
assert collapse_matrix([['x', 'x', None],
['o', 'x', 'x'],
['o', None, None]]) == 'xx.|oxx|o..'
def test_replace_all_in_list():
assert replace_all_in_list([None, 3, '546', 33, None], None, '#') == ['#', 3, '546', 33, '#']
assert replace_all_in_list([1, 2, 3, 4, 5], 'e', 42) == [1, 2, 3, 4, 5]
assert replace_all_in_list([], 34, 43) == []
def test_replace_all_in_matrix():
# caso normal: tiene lo viejo
assert replace_all_in_matrix([[1, 2, 3, 'n', 'n',None], [4, 5, 'n']], 'n', '#') == [[1, 2, 3, '#', '#', None], [4, 5, '#']]
# caso raro: no tiene lo viejo
assert replace_all_in_matrix([[None, None, 2, True], [4, 5, '#']], 'k', 42) == [[None, None, 2, True], [4, 5, '#']]
# caso mas raro: lista de listas vacias
assert replace_all_in_matrix([], None, 7) == []
assert replace_all_in_matrix([[], []], None, 7) == [[], []]