MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_count

Method test_count

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

Source from the content-addressed store, hash-verified

91 getattr(obj, methodname)(*args)
92
93 def test_count(self):
94 self.checkequal(3, 'aaa', 'count', 'a')
95 self.checkequal(0, 'aaa', 'count', 'b')
96 self.checkequal(3, 'aaa', 'count', 'a')
97 self.checkequal(0, 'aaa', 'count', 'b')
98 self.checkequal(3, 'aaa', 'count', 'a')
99 self.checkequal(0, 'aaa', 'count', 'b')
100 self.checkequal(0, 'aaa', 'count', 'b')
101 self.checkequal(2, 'aaa', 'count', 'a', 1)
102 self.checkequal(0, 'aaa', 'count', 'a', 10)
103 self.checkequal(1, 'aaa', 'count', 'a', -1)
104 self.checkequal(3, 'aaa', 'count', 'a', -10)
105 self.checkequal(1, 'aaa', 'count', 'a', 0, 1)
106 self.checkequal(3, 'aaa', 'count', 'a', 0, 10)
107 self.checkequal(2, 'aaa', 'count', 'a', 0, -1)
108 self.checkequal(0, 'aaa', 'count', 'a', 0, -10)
109 self.checkequal(3, 'aaa', 'count', '', 1)
110 self.checkequal(1, 'aaa', 'count', '', 3)
111 self.checkequal(0, 'aaa', 'count', '', 10)
112 self.checkequal(2, 'aaa', 'count', '', -1)
113 self.checkequal(4, 'aaa', 'count', '', -10)
114
115 self.checkequal(1, '', 'count', '')
116 self.checkequal(0, '', 'count', '', 1, 1)
117 self.checkequal(0, '', 'count', '', sys.maxsize, 0)
118
119 self.checkequal(0, '', 'count', 'xx')
120 self.checkequal(0, '', 'count', 'xx', 1, 1)
121 self.checkequal(0, '', 'count', 'xx', sys.maxsize, 0)
122
123 self.checkraises(TypeError, 'hello', 'count')
124
125 if self.contains_bytes:
126 self.checkequal(0, 'hello', 'count', 42)
127 else:
128 self.checkraises(TypeError, 'hello', 'count', 42)
129
130 # For a variety of combinations,
131 # verify that str.count() matches an equivalent function
132 # replacing all occurrences and then differencing the string lengths
133 charset = ['', 'a', 'b']
134 digits = 7
135 base = len(charset)
136 teststrings = set()
137 for i in range(base ** digits):
138 entry = []
139 for j in range(digits):
140 i, m = divmod(i, base)
141 entry.append(charset[m])
142 teststrings.add(''.join(entry))
143 teststrings = [self.fixtype(ts) for ts in teststrings]
144 for i in teststrings:
145 n = len(i)
146 for j in teststrings:
147 r1 = i.count(j)
148 if j:
149 r2, rem = divmod(n - len(i.replace(j, self.fixtype(''))),
150 len(j))

Callers

nothing calls this directly

Calls 12

checkequalMethod · 0.95
checkraisesMethod · 0.95
fixtypeMethod · 0.95
lenFunction · 0.85
setFunction · 0.85
divmodFunction · 0.50
appendMethod · 0.45
addMethod · 0.45
joinMethod · 0.45
countMethod · 0.45
replaceMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected