ยปCore Development>Code coverage>Tools/pybench/Strings.py

Python code coverage for Tools/pybench/Strings.py

#countcontent
1n/afrom pybench import Test
2n/aimport sys
3n/a
4n/atry:
5n/a intern
6n/aexcept NameError:
7n/a intern = sys.intern
8n/a
9n/a
10n/aclass ConcatStrings(Test):
11n/a
12n/a version = 2.0
13n/a operations = 10 * 5
14n/a rounds = 100000
15n/a
16n/a def test(self):
17n/a
18n/a # Make sure the strings are *not* interned
19n/a s = ''.join(map(str,range(100)))
20n/a t = ''.join(map(str,range(1,101)))
21n/a
22n/a for i in range(self.rounds):
23n/a t + s
24n/a t + s
25n/a t + s
26n/a t + s
27n/a t + s
28n/a
29n/a t + s
30n/a t + s
31n/a t + s
32n/a t + s
33n/a t + s
34n/a
35n/a t + s
36n/a t + s
37n/a t + s
38n/a t + s
39n/a t + s
40n/a
41n/a t + s
42n/a t + s
43n/a t + s
44n/a t + s
45n/a t + s
46n/a
47n/a t + s
48n/a t + s
49n/a t + s
50n/a t + s
51n/a t + s
52n/a
53n/a t + s
54n/a t + s
55n/a t + s
56n/a t + s
57n/a t + s
58n/a
59n/a t + s
60n/a t + s
61n/a t + s
62n/a t + s
63n/a t + s
64n/a
65n/a t + s
66n/a t + s
67n/a t + s
68n/a t + s
69n/a t + s
70n/a
71n/a t + s
72n/a t + s
73n/a t + s
74n/a t + s
75n/a t + s
76n/a
77n/a t + s
78n/a t + s
79n/a t + s
80n/a t + s
81n/a t + s
82n/a
83n/a def calibrate(self):
84n/a
85n/a s = ''.join(map(str,range(100)))
86n/a t = ''.join(map(str,range(1,101)))
87n/a
88n/a for i in range(self.rounds):
89n/a pass
90n/a
91n/a
92n/aclass CompareStrings(Test):
93n/a
94n/a version = 2.0
95n/a operations = 10 * 5
96n/a rounds = 200000
97n/a
98n/a def test(self):
99n/a
100n/a # Make sure the strings are *not* interned
101n/a s = ''.join(map(str,range(10)))
102n/a t = ''.join(map(str,range(10))) + "abc"
103n/a
104n/a for i in range(self.rounds):
105n/a t < s
106n/a t > s
107n/a t == s
108n/a t > s
109n/a t < s
110n/a
111n/a t < s
112n/a t > s
113n/a t == s
114n/a t > s
115n/a t < s
116n/a
117n/a t < s
118n/a t > s
119n/a t == s
120n/a t > s
121n/a t < s
122n/a
123n/a t < s
124n/a t > s
125n/a t == s
126n/a t > s
127n/a t < s
128n/a
129n/a t < s
130n/a t > s
131n/a t == s
132n/a t > s
133n/a t < s
134n/a
135n/a t < s
136n/a t > s
137n/a t == s
138n/a t > s
139n/a t < s
140n/a
141n/a t < s
142n/a t > s
143n/a t == s
144n/a t > s
145n/a t < s
146n/a
147n/a t < s
148n/a t > s
149n/a t == s
150n/a t > s
151n/a t < s
152n/a
153n/a t < s
154n/a t > s
155n/a t == s
156n/a t > s
157n/a t < s
158n/a
159n/a t < s
160n/a t > s
161n/a t == s
162n/a t > s
163n/a t < s
164n/a
165n/a def calibrate(self):
166n/a
167n/a s = ''.join(map(str,range(10)))
168n/a t = ''.join(map(str,range(10))) + "abc"
169n/a
170n/a for i in range(self.rounds):
171n/a pass
172n/a
173n/a
174n/aclass CompareInternedStrings(Test):
175n/a
176n/a version = 2.0
177n/a operations = 10 * 5
178n/a rounds = 300000
179n/a
180n/a def test(self):
181n/a
182n/a # Make sure the strings *are* interned
183n/a s = intern(''.join(map(str,range(10))))
184n/a t = s
185n/a
186n/a for i in range(self.rounds):
187n/a t == s
188n/a t == s
189n/a t >= s
190n/a t > s
191n/a t < s
192n/a
193n/a t == s
194n/a t == s
195n/a t >= s
196n/a t > s
197n/a t < s
198n/a
199n/a t == s
200n/a t == s
201n/a t >= s
202n/a t > s
203n/a t < s
204n/a
205n/a t == s
206n/a t == s
207n/a t >= s
208n/a t > s
209n/a t < s
210n/a
211n/a t == s
212n/a t == s
213n/a t >= s
214n/a t > s
215n/a t < s
216n/a
217n/a t == s
218n/a t == s
219n/a t >= s
220n/a t > s
221n/a t < s
222n/a
223n/a t == s
224n/a t == s
225n/a t >= s
226n/a t > s
227n/a t < s
228n/a
229n/a t == s
230n/a t == s
231n/a t >= s
232n/a t > s
233n/a t < s
234n/a
235n/a t == s
236n/a t == s
237n/a t >= s
238n/a t > s
239n/a t < s
240n/a
241n/a t == s
242n/a t == s
243n/a t >= s
244n/a t > s
245n/a t < s
246n/a
247n/a def calibrate(self):
248n/a
249n/a s = intern(''.join(map(str,range(10))))
250n/a t = s
251n/a
252n/a for i in range(self.rounds):
253n/a pass
254n/a
255n/a
256n/aclass CreateStringsWithConcat(Test):
257n/a
258n/a version = 2.0
259n/a operations = 10 * 5
260n/a rounds = 200000
261n/a
262n/a def test(self):
263n/a
264n/a for i in range(self.rounds):
265n/a s = 'om'
266n/a s = s + 'xbx'
267n/a s = s + 'xcx'
268n/a s = s + 'xdx'
269n/a s = s + 'xex'
270n/a
271n/a s = s + 'xax'
272n/a s = s + 'xbx'
273n/a s = s + 'xcx'
274n/a s = s + 'xdx'
275n/a s = s + 'xex'
276n/a
277n/a s = s + 'xax'
278n/a s = s + 'xbx'
279n/a s = s + 'xcx'
280n/a s = s + 'xdx'
281n/a s = s + 'xex'
282n/a
283n/a s = s + 'xax'
284n/a s = s + 'xbx'
285n/a s = s + 'xcx'
286n/a s = s + 'xdx'
287n/a s = s + 'xex'
288n/a
289n/a s = s + 'xax'
290n/a s = s + 'xbx'
291n/a s = s + 'xcx'
292n/a s = s + 'xdx'
293n/a s = s + 'xex'
294n/a
295n/a s = s + 'xax'
296n/a s = s + 'xbx'
297n/a s = s + 'xcx'
298n/a s = s + 'xdx'
299n/a s = s + 'xex'
300n/a
301n/a s = s + 'xax'
302n/a s = s + 'xbx'
303n/a s = s + 'xcx'
304n/a s = s + 'xdx'
305n/a s = s + 'xex'
306n/a
307n/a s = s + 'xax'
308n/a s = s + 'xbx'
309n/a s = s + 'xcx'
310n/a s = s + 'xdx'
311n/a s = s + 'xex'
312n/a
313n/a s = s + 'xax'
314n/a s = s + 'xbx'
315n/a s = s + 'xcx'
316n/a s = s + 'xdx'
317n/a s = s + 'xex'
318n/a
319n/a s = s + 'xax'
320n/a s = s + 'xbx'
321n/a s = s + 'xcx'
322n/a s = s + 'xdx'
323n/a s = s + 'xex'
324n/a
325n/a def calibrate(self):
326n/a
327n/a for i in range(self.rounds):
328n/a pass
329n/a
330n/a
331n/aclass StringSlicing(Test):
332n/a
333n/a version = 2.0
334n/a operations = 5 * 7
335n/a rounds = 160000
336n/a
337n/a def test(self):
338n/a
339n/a s = ''.join(map(str,range(100)))
340n/a
341n/a for i in range(self.rounds):
342n/a
343n/a s[50:]
344n/a s[:25]
345n/a s[50:55]
346n/a s[-1:]
347n/a s[:1]
348n/a s[2:]
349n/a s[11:-11]
350n/a
351n/a s[50:]
352n/a s[:25]
353n/a s[50:55]
354n/a s[-1:]
355n/a s[:1]
356n/a s[2:]
357n/a s[11:-11]
358n/a
359n/a s[50:]
360n/a s[:25]
361n/a s[50:55]
362n/a s[-1:]
363n/a s[:1]
364n/a s[2:]
365n/a s[11:-11]
366n/a
367n/a s[50:]
368n/a s[:25]
369n/a s[50:55]
370n/a s[-1:]
371n/a s[:1]
372n/a s[2:]
373n/a s[11:-11]
374n/a
375n/a s[50:]
376n/a s[:25]
377n/a s[50:55]
378n/a s[-1:]
379n/a s[:1]
380n/a s[2:]
381n/a s[11:-11]
382n/a
383n/a def calibrate(self):
384n/a
385n/a s = ''.join(map(str,range(100)))
386n/a
387n/a for i in range(self.rounds):
388n/a pass
389n/a
390n/a### String methods
391n/a
392n/aif hasattr('', 'lower'):
393n/a
394n/a class StringMappings(Test):
395n/a
396n/a version = 2.0
397n/a operations = 3 * (5 + 4 + 2 + 1)
398n/a rounds = 70000
399n/a
400n/a def test(self):
401n/a
402n/a s = ''.join(map(chr,range(20)))
403n/a t = ''.join(map(chr,range(50)))
404n/a u = ''.join(map(chr,range(100)))
405n/a v = ''.join(map(chr,range(256)))
406n/a
407n/a for i in range(self.rounds):
408n/a
409n/a s.lower()
410n/a s.lower()
411n/a s.lower()
412n/a s.lower()
413n/a s.lower()
414n/a
415n/a s.upper()
416n/a s.upper()
417n/a s.upper()
418n/a s.upper()
419n/a s.upper()
420n/a
421n/a s.title()
422n/a s.title()
423n/a s.title()
424n/a s.title()
425n/a s.title()
426n/a
427n/a t.lower()
428n/a t.lower()
429n/a t.lower()
430n/a t.lower()
431n/a
432n/a t.upper()
433n/a t.upper()
434n/a t.upper()
435n/a t.upper()
436n/a
437n/a t.title()
438n/a t.title()
439n/a t.title()
440n/a t.title()
441n/a
442n/a u.lower()
443n/a u.lower()
444n/a
445n/a u.upper()
446n/a u.upper()
447n/a
448n/a u.title()
449n/a u.title()
450n/a
451n/a v.lower()
452n/a
453n/a v.upper()
454n/a
455n/a v.title()
456n/a
457n/a def calibrate(self):
458n/a
459n/a s = ''.join(map(chr,range(20)))
460n/a t = ''.join(map(chr,range(50)))
461n/a u = ''.join(map(chr,range(100)))
462n/a v = ''.join(map(chr,range(256)))
463n/a
464n/a for i in range(self.rounds):
465n/a pass
466n/a
467n/a class StringPredicates(Test):
468n/a
469n/a version = 2.0
470n/a operations = 10 * 7
471n/a rounds = 100000
472n/a
473n/a def test(self):
474n/a
475n/a data = ('abc', '123', ' ', '\xe4\xf6\xfc', '\xdf'*10)
476n/a len_data = len(data)
477n/a
478n/a for i in range(self.rounds):
479n/a s = data[i % len_data]
480n/a
481n/a s.isalnum()
482n/a s.isalpha()
483n/a s.isdigit()
484n/a s.islower()
485n/a s.isspace()
486n/a s.istitle()
487n/a s.isupper()
488n/a
489n/a s.isalnum()
490n/a s.isalpha()
491n/a s.isdigit()
492n/a s.islower()
493n/a s.isspace()
494n/a s.istitle()
495n/a s.isupper()
496n/a
497n/a s.isalnum()
498n/a s.isalpha()
499n/a s.isdigit()
500n/a s.islower()
501n/a s.isspace()
502n/a s.istitle()
503n/a s.isupper()
504n/a
505n/a s.isalnum()
506n/a s.isalpha()
507n/a s.isdigit()
508n/a s.islower()
509n/a s.isspace()
510n/a s.istitle()
511n/a s.isupper()
512n/a
513n/a s.isalnum()
514n/a s.isalpha()
515n/a s.isdigit()
516n/a s.islower()
517n/a s.isspace()
518n/a s.istitle()
519n/a s.isupper()
520n/a
521n/a s.isalnum()
522n/a s.isalpha()
523n/a s.isdigit()
524n/a s.islower()
525n/a s.isspace()
526n/a s.istitle()
527n/a s.isupper()
528n/a
529n/a s.isalnum()
530n/a s.isalpha()
531n/a s.isdigit()
532n/a s.islower()
533n/a s.isspace()
534n/a s.istitle()
535n/a s.isupper()
536n/a
537n/a s.isalnum()
538n/a s.isalpha()
539n/a s.isdigit()
540n/a s.islower()
541n/a s.isspace()
542n/a s.istitle()
543n/a s.isupper()
544n/a
545n/a s.isalnum()
546n/a s.isalpha()
547n/a s.isdigit()
548n/a s.islower()
549n/a s.isspace()
550n/a s.istitle()
551n/a s.isupper()
552n/a
553n/a s.isalnum()
554n/a s.isalpha()
555n/a s.isdigit()
556n/a s.islower()
557n/a s.isspace()
558n/a s.istitle()
559n/a s.isupper()
560n/a
561n/a def calibrate(self):
562n/a
563n/a data = ('abc', '123', ' ', '\u1234\u2345\u3456', '\uFFFF'*10)
564n/a data = ('abc', '123', ' ', '\xe4\xf6\xfc', '\xdf'*10)
565n/a len_data = len(data)
566n/a
567n/a for i in range(self.rounds):
568n/a s = data[i % len_data]