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
|
#!/usr/bin/env python3
# © Copyright 2021-2022, Scott Gasch
"""dict_utils unittest."""
import unittest
import dict_utils as du
import unittest_utils # Needed for --unittests_ignore_perf flag
class TestDictUtils(unittest.TestCase):
def test_init_or_inc(self):
d = {}
du.init_or_inc(d, 'a')
du.init_or_inc(d, 'b')
du.init_or_inc(d, 'a')
du.init_or_inc(d, 'b')
du.init_or_inc(d, 'c')
du.init_or_inc(d, 'c')
du.init_or_inc(d, 'd')
du.init_or_inc(d, 'e')
du.init_or_inc(d, 'a')
du.init_or_inc(d, 'b')
e = {'a': 3, 'b': 3, 'c': 2, 'd': 1, 'e': 1}
self.assertEqual(d, e)
def test_shard_coalesce(self):
d = {'a': 3, 'b': 3, 'c': 2, 'd': 1, 'e': 1}
shards = du.shard(d, 2)
merged = du.coalesce(shards)
self.assertEqual(d, merged)
def test_item_with_max_value(self):
d = {'a': 4, 'b': 3, 'c': 2, 'd': 1, 'e': 1}
self.assertEqual('a', du.item_with_max_value(d)[0])
self.assertEqual(4, du.item_with_max_value(d)[1])
self.assertEqual('a', du.key_with_max_value(d))
self.assertEqual(4, du.max_value(d))
def test_item_with_min_value(self):
d = {'a': 4, 'b': 3, 'c': 2, 'd': 1, 'e': 0}
self.assertEqual('e', du.item_with_min_value(d)[0])
self.assertEqual(0, du.item_with_min_value(d)[1])
self.assertEqual('e', du.key_with_min_value(d))
self.assertEqual(0, du.min_value(d))
def test_min_max_key(self):
d = {'a': 4, 'b': 3, 'c': 2, 'd': 1, 'e': 0}
self.assertEqual('a', du.min_key(d))
self.assertEqual('e', du.max_key(d))
if __name__ == '__main__':
unittest.main()
|