MCPcopy Index your code
hub / github.com/python/cpython / test_count

Method test_count

Lib/test/string_tests.py:142–194  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

140 self._assert_cmp(a, self.fixtype('ac'), -1)
141
142 def test_count(self):
143 self.checkequal(3, 'aaa', 'count', 'a')
144 self.checkequal(0, 'aaa', 'count', 'b')
145 self.checkequal(3, 'aaa', 'count', 'a')
146 self.checkequal(0, 'aaa', 'count', 'b')
147 self.checkequal(3, 'aaa', 'count', 'a')
148 self.checkequal(0, 'aaa', 'count', 'b')
149 self.checkequal(0, 'aaa', 'count', 'b')
150 self.checkequal(2, 'aaa', 'count', 'a', 1)
151 self.checkequal(0, 'aaa', 'count', 'a', 10)
152 self.checkequal(1, 'aaa', 'count', 'a', -1)
153 self.checkequal(3, 'aaa', 'count', 'a', -10)
154 self.checkequal(1, 'aaa', 'count', 'a', 0, 1)
155 self.checkequal(3, 'aaa', 'count', 'a', 0, 10)
156 self.checkequal(2, 'aaa', 'count', 'a', 0, -1)
157 self.checkequal(0, 'aaa', 'count', 'a', 0, -10)
158 self.checkequal(3, 'aaa', 'count', '', 1)
159 self.checkequal(1, 'aaa', 'count', '', 3)
160 self.checkequal(0, 'aaa', 'count', '', 10)
161 self.checkequal(2, 'aaa', 'count', '', -1)
162 self.checkequal(4, 'aaa', 'count', '', -10)
163
164 self.checkequal(1, '', 'count', '')
165 self.checkequal(0, '', 'count', '', 1, 1)
166 self.checkequal(0, '', 'count', '', sys.maxsize, 0)
167
168 self.checkequal(0, '', 'count', 'xx')
169 self.checkequal(0, '', 'count', 'xx', 1, 1)
170 self.checkequal(0, '', 'count', 'xx', sys.maxsize, 0)
171
172 self.checkraises(TypeError, 'hello', 'count')
173
174 if self.contains_bytes:
175 self.checkequal(0, 'hello', 'count', 42)
176 else:
177 self.checkraises(TypeError, 'hello', 'count', 42)
178
179 # For a variety of combinations,
180 # verify that str.count() matches an equivalent function
181 # replacing all occurrences and then differencing the string lengths
182 teststrings = self._get_teststrings(['', 'a', 'b'], 7)
183 for i in teststrings:
184 n = len(i)
185 for j in teststrings:
186 r1 = i.count(j)
187 if j:
188 r2, rem = divmod(n - len(i.replace(j, self.fixtype(''))),
189 len(j))
190 else:
191 r2, rem = len(i)+1, 0
192 if rem or r1 != r2:
193 self.assertEqual(rem, 0, '%s != 0 for %s' % (rem, i))
194 self.assertEqual(r1, r2, '%s != %s for %s' % (r1, r2, i))
195
196 def test_count_keyword(self):
197 self.assertEqual('aa'.replace('a', 'b', 0), 'aa'.replace('a', 'b', count=0))

Callers

nothing calls this directly

Calls 7

checkequalMethod · 0.95
checkraisesMethod · 0.95
_get_teststringsMethod · 0.95
fixtypeMethod · 0.95
countMethod · 0.45
replaceMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected