(self)
| 2076 | class TestCounter(unittest.TestCase): |
| 2077 | |
| 2078 | def test_basics(self): |
| 2079 | c = Counter('abcaba') |
| 2080 | self.assertEqual(c, Counter({'a':3 , 'b': 2, 'c': 1})) |
| 2081 | self.assertEqual(c, Counter(a=3, b=2, c=1)) |
| 2082 | self.assertIsInstance(c, dict) |
| 2083 | self.assertIsInstance(c, Mapping) |
| 2084 | self.assertIsSubclass(Counter, dict) |
| 2085 | self.assertIsSubclass(Counter, Mapping) |
| 2086 | self.assertEqual(len(c), 3) |
| 2087 | self.assertEqual(sum(c.values()), 6) |
| 2088 | self.assertEqual(list(c.values()), [3, 2, 1]) |
| 2089 | self.assertEqual(list(c.keys()), ['a', 'b', 'c']) |
| 2090 | self.assertEqual(list(c), ['a', 'b', 'c']) |
| 2091 | self.assertEqual(list(c.items()), |
| 2092 | [('a', 3), ('b', 2), ('c', 1)]) |
| 2093 | self.assertEqual(c['b'], 2) |
| 2094 | self.assertEqual(c['z'], 0) |
| 2095 | self.assertEqual(c.__contains__('c'), True) |
| 2096 | self.assertEqual(c.__contains__('z'), False) |
| 2097 | self.assertEqual(c.get('b', 10), 2) |
| 2098 | self.assertEqual(c.get('z', 10), 10) |
| 2099 | self.assertEqual(c, dict(a=3, b=2, c=1)) |
| 2100 | self.assertEqual(repr(c), "Counter({'a': 3, 'b': 2, 'c': 1})") |
| 2101 | self.assertEqual(c.most_common(), [('a', 3), ('b', 2), ('c', 1)]) |
| 2102 | for i in range(5): |
| 2103 | self.assertEqual(c.most_common(i), |
| 2104 | [('a', 3), ('b', 2), ('c', 1)][:i]) |
| 2105 | self.assertEqual(''.join(c.elements()), 'aaabbc') |
| 2106 | c['a'] += 1 # increment an existing value |
| 2107 | c['b'] -= 2 # sub existing value to zero |
| 2108 | del c['c'] # remove an entry |
| 2109 | del c['c'] # make sure that del doesn't raise KeyError |
| 2110 | c['d'] -= 2 # sub from a missing value |
| 2111 | c['e'] = -5 # directly assign a missing value |
| 2112 | c['f'] += 4 # add to a missing value |
| 2113 | self.assertEqual(c, dict(a=4, b=0, d=-2, e=-5, f=4)) |
| 2114 | self.assertEqual(''.join(c.elements()), 'aaaaffff') |
| 2115 | self.assertEqual(c.pop('f'), 4) |
| 2116 | self.assertNotIn('f', c) |
| 2117 | for i in range(3): |
| 2118 | elem, cnt = c.popitem() |
| 2119 | self.assertNotIn(elem, c) |
| 2120 | c.clear() |
| 2121 | self.assertEqual(c, {}) |
| 2122 | self.assertEqual(repr(c), 'Counter()') |
| 2123 | self.assertRaises(NotImplementedError, Counter.fromkeys, 'abc') |
| 2124 | self.assertRaises(TypeError, hash, c) |
| 2125 | c.update(dict(a=5, b=3)) |
| 2126 | c.update(c=1) |
| 2127 | c.update(Counter('a' * 50 + 'b' * 30)) |
| 2128 | c.update() # test case with no args |
| 2129 | c.__init__('a' * 500 + 'b' * 300) |
| 2130 | c.__init__('cdc') |
| 2131 | c.__init__() |
| 2132 | self.assertEqual(c, dict(a=555, b=333, c=3, d=1)) |
| 2133 | self.assertEqual(c.setdefault('d', 5), 1) |
| 2134 | self.assertEqual(c['d'], 1) |
| 2135 | self.assertEqual(c.setdefault('e', 5), 5) |
nothing calls this directly
no test coverage detected