This repository has been archived by the owner on Dec 16, 2018. It is now read-only.
/
motw_test.py
115 lines (101 loc) · 5.77 KB
/
motw_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
import motw
import unittest
class TestMOTW(unittest.TestCase):
def get_map_dict(self):
return {
"esea": {
"2015/09/06": "de_dust2", # 1441497600
"2015/09/13": "de_train", # 1442102400
"2015/09/20": "de_mirage", # 1442707200
"2015/09/27": "de_cbble", # 1443312000
"2015/10/04": "de_overpass", # 1443916800
"2015/10/11": "de_mirage", # 1444521600
"2015/10/18": "de_inferno", # 1445126400
"2015/10/25": "de_cache", # 1445731200
"2015/11/01": "de_dust2", # 1446336000
},
"cevo": {
"2015/08/23": "de_cbble", # 1440288000
"2015/08/30": "de_season", # 1440892800
"2015/09/06": "de_inferno", # 1441497600
"2015/09/13": "de_train", # 1442102400
"2015/09/20": "de_cache", # 1442707200
"2015/09/27": "de_overpass", # 1443312000
"2015/10/04": "de_dust2", # 1443916800
"2015/10/11": "de_mirage", # 1444521600
},
}
def get_map_data(self):
return motw.parse_map_data_input(self.get_map_dict(), '%Y/%m/%d')
def test_parse_map_data_input(self):
expected = {
"esea": [
motw.MapRecord(1441497600, "de_dust2"),
motw.MapRecord(1442102400, "de_train"),
motw.MapRecord(1442707200, "de_mirage"),
motw.MapRecord(1443312000, "de_cbble"),
motw.MapRecord(1443916800, "de_overpass"),
motw.MapRecord(1444521600, "de_mirage"),
motw.MapRecord(1445126400, "de_inferno"),
motw.MapRecord(1445731200, "de_cache"),
motw.MapRecord(1446336000, "de_dust2"),
],
"cevo": [
motw.MapRecord(1440288000, "de_cbble"),
motw.MapRecord(1440892800, "de_season"),
motw.MapRecord(1441497600, "de_inferno"),
motw.MapRecord(1442102400, "de_train"),
motw.MapRecord(1442707200, "de_cache"),
motw.MapRecord(1443312000, "de_overpass"),
motw.MapRecord(1443916800, "de_dust2"),
motw.MapRecord(1444521600, "de_mirage"),
],
}
actual = motw.parse_map_data_input(self.get_map_dict(), '%Y/%m/%d')
self.assertEqual(expected, motw.parse_map_data_input(self.get_map_dict(), '%Y/%m/%d'))
def test_find_matching_map(self):
map_list = [
motw.MapRecord(0, 'a'),
motw.MapRecord(1, 'b'),
motw.MapRecord(3, 'c'),
motw.MapRecord(6, 'd'),
motw.MapRecord(10, 'e'),
]
self.assertEqual(0, motw.find_matching_map(map_list, 0, 'default'))
self.assertEqual(1, motw.find_matching_map(map_list, 1, 'default'))
self.assertEqual(1, motw.find_matching_map(map_list, 2, 'default'))
self.assertEqual(2, motw.find_matching_map(map_list, 3, 'default'))
self.assertEqual(2, motw.find_matching_map(map_list, 4, 'default'))
self.assertEqual(2, motw.find_matching_map(map_list, 5, 'default'))
self.assertEqual(3, motw.find_matching_map(map_list, 6, 'default'))
self.assertEqual(3, motw.find_matching_map(map_list, 7, 'default'))
self.assertEqual(3, motw.find_matching_map(map_list, 8, 'default'))
self.assertEqual(3, motw.find_matching_map(map_list, 9, 'default'))
self.assertEqual(4, motw.find_matching_map(map_list, 10, 'default'))
self.assertEqual(4, motw.find_matching_map(map_list, 11, 'default'))
def test_get_motw(self):
map_data = self.get_map_data()
# Check before any map record time exists.
self.assertEqual('default', motw.get_motw(map_data, 1, 'esea', 1000000, 'default'))
# Check normal time intervals near the start dates for each map.
self.assertEqual('de_dust2', motw.get_motw(map_data, 1441497600, 'esea', 1000000, 'default'))
self.assertEqual('de_dust2', motw.get_motw(map_data, 1442102400 - 1, 'esea', 1000000, 'default'))
self.assertEqual('de_train', motw.get_motw(map_data, 1442102400, 'esea', 1000000, 'default'))
self.assertEqual('de_train', motw.get_motw(map_data, 1442102400 + 1, 'esea', 1000000, 'default'))
self.assertEqual('de_train', motw.get_motw(map_data, 1442707200 - 1, 'esea', 1000000, 'default'))
self.assertEqual('de_mirage', motw.get_motw(map_data, 1442707200, 'esea', 1000000, 'default'))
self.assertEqual('de_cbble', motw.get_motw(map_data, 1443312000, 'esea', 1000000, 'default'))
self.assertEqual('de_overpass', motw.get_motw(map_data, 1443916800, 'esea', 1000000, 'default'))
self.assertEqual('de_mirage', motw.get_motw(map_data, 1444521600, 'esea', 1000000, 'default'))
self.assertEqual('de_inferno', motw.get_motw(map_data, 1445126400, 'esea', 1000000, 'default'))
self.assertEqual('de_cache', motw.get_motw(map_data, 1445731200, 'esea', 1000000, 'default'))
self.assertEqual('de_dust2', motw.get_motw(map_data, 1446336000, 'esea', 1000000, 'default'))
def test_get_motw_expiration(self):
map_data = self.get_map_data()
# Get after a map with a very short expiration time, so it uses the default.
self.assertEqual('de_dust2', motw.get_motw(map_data, 1441497600 + 100, 'esea', 100, 'default'))
self.assertEqual('default', motw.get_motw(map_data, 1441497600 + 100, 'esea', 99, 'default'))
self.assertEqual('de_mirage', motw.get_motw(map_data, 1444521600 + 100, 'cevo', 100, 'default'))
self.assertEqual('default', motw.get_motw(map_data, 1444521600 + 100, 'cevo', 99, 'default'))
if __name__ == '__main__':
unittest.main()