Code coverage tests
This page documents the degree to which the PARI/GP source code is tested by
our public test suite, distributed with the source distribution in directory
src/test/. This is measured by the gcov utility; we then
process gcov output using the lcov frond-end.
We test a few variants depending on Configure flags
on the pari.math.u-bordeaux.fr machine (x86_64
architecture), and agregate them in the final report:
- with GMP kernel
- with GMP kernel using --mt=pthread
- with native kernel, including micro-assembler code
- with native kernel, without micro-assembler
- with native kernel, without micro-assembler, disabling GCC extensions
(DISABLE_INLINE)
- with GMP kernel, emulating an
x86_32 architecture at
Configure time via setarch
The target is to exceed 90% coverage for all mathematical modules
(given that branches depending on DEBUGLEVEL
or DEBUGMEM are not covered). This script is
run to produce the results below.
| LCOV - code coverage report |
 |
|
|
 |
|
|
|
|
|
|
Filename  |
Line Coverage  |
Functions  |
| ZG.c |
|
60.3 % |
44 / 73 |
57.1 % |
8 / 14 |
| base5.c |
|
68.4 % |
1085 / 1587 |
85.2 % |
75 / 88 |
| FpV.c |
|
76.5 % |
737 / 964 |
79.7 % |
110 / 138 |
| pclgp.c |
|
77.2 % |
1838 / 2381 |
85.0 % |
153 / 180 |
| FpXX.c |
|
78.0 % |
951 / 1220 |
85.1 % |
114 / 134 |
| FlxX.c |
|
80.7 % |
1198 / 1484 |
75.8 % |
150 / 198 |
| lll.c |
|
81.4 % |
1335 / 1641 |
96.2 % |
125 / 130 |
| FpXQX_factor.c |
|
81.6 % |
1614 / 1977 |
80.9 % |
127 / 157 |
| ifactor1.c |
|
81.9 % |
1826 / 2230 |
87.7 % |
107 / 122 |
| aprcl.c |
|
82.4 % |
580 / 704 |
96.0 % |
48 / 50 |
| mpqs.c |
|
82.6 % |
695 / 841 |
89.5 % |
34 / 38 |
| galconj.c |
|
83.3 % |
1915 / 2300 |
79.1 % |
121 / 153 |
| F3v.c |
|
83.5 % |
152 / 182 |
76.7 % |
23 / 30 |
| F2x.c |
|
83.6 % |
1536 / 1838 |
89.3 % |
191 / 214 |
| crvwtors.c |
|
84.8 % |
274 / 323 |
83.3 % |
25 / 30 |
| factcyclo.c |
|
84.9 % |
916 / 1079 |
90.6 % |
77 / 85 |
| ZV.c |
|
84.9 % |
839 / 988 |
87.9 % |
131 / 149 |
| Zp.c |
|
85.3 % |
734 / 860 |
87.3 % |
69 / 79 |
| lfunlarge.c |
|
86.6 % |
445 / 514 |
96.0 % |
72 / 75 |
| F2v.c |
|
87.4 % |
554 / 634 |
80.9 % |
55 / 68 |
| buch2.c |
|
87.5 % |
2215 / 2530 |
90.3 % |
159 / 176 |
| Flx.c |
|
87.6 % |
2553 / 2914 |
84.7 % |
304 / 359 |
| alglin1.c |
|
87.9 % |
2704 / 3077 |
93.7 % |
296 / 316 |
| RgV.c |
|
88.1 % |
509 / 578 |
91.3 % |
95 / 104 |
| polarit3.c |
|
88.3 % |
1903 / 2156 |
91.1 % |
205 / 225 |
| ellanal.c |
|
88.3 % |
705 / 798 |
91.7 % |
66 / 72 |
| lambert.c |
|
89.8 % |
237 / 264 |
81.8 % |
18 / 22 |
| ZX.c |
|
90.0 % |
710 / 789 |
89.5 % |
94 / 105 |
| Qfb.c |
|
90.2 % |
1108 / 1229 |
93.0 % |
133 / 143 |
| hnf_snf.c |
|
90.1 % |
1602 / 1778 |
90.6 % |
96 / 106 |
| FF.c |
|
90.4 % |
1349 / 1493 |
92.2 % |
141 / 153 |
| arith1.c |
|
90.4 % |
2080 / 2301 |
93.6 % |
218 / 233 |
| polarit2.c |
|
90.3 % |
2271 / 2514 |
95.6 % |
215 / 225 |
| alglin2.c |
|
90.7 % |
1078 / 1189 |
92.7 % |
89 / 96 |
| prime.c |
|
90.9 % |
643 / 707 |
92.2 % |
71 / 77 |
| FpE.c |
|
91.2 % |
1095 / 1201 |
93.8 % |
122 / 130 |
| RgX.c |
|
91.3 % |
1631 / 1787 |
91.9 % |
205 / 223 |
| FpX.c |
|
91.7 % |
1976 / 2156 |
93.4 % |
213 / 228 |
| FpX_factor.c |
|
91.7 % |
1308 / 1426 |
91.9 % |
114 / 124 |
| lfunutils.c |
|
92.0 % |
1645 / 1789 |
94.4 % |
167 / 177 |
| base4.c |
|
91.9 % |
1696 / 1845 |
91.9 % |
170 / 185 |
| concat.c |
|
92.2 % |
330 / 358 |
100.0 % |
15 / 15 |
| perm.c |
|
92.1 % |
1019 / 1106 |
94.1 % |
112 / 119 |
| alglin3.c |
|
92.3 % |
536 / 581 |
89.3 % |
50 / 56 |
| subcyclo.c |
|
92.8 % |
609 / 656 |
93.9 % |
46 / 49 |
| elltrans.c |
|
92.8 % |
1375 / 1481 |
96.6 % |
113 / 117 |
| gen3.c |
|
92.9 % |
2476 / 2664 |
96.0 % |
237 / 247 |
| nffactor.c |
|
93.1 % |
1223 / 1314 |
94.9 % |
75 / 79 |
| ecpp.c |
|
93.3 % |
751 / 805 |
96.9 % |
95 / 98 |
| ellrank.c |
|
93.3 % |
1153 / 1236 |
93.9 % |
108 / 115 |
| buch3.c |
|
93.2 % |
1519 / 1629 |
96.0 % |
119 / 124 |
| modsym.c |
|
93.3 % |
2815 / 3016 |
98.0 % |
295 / 301 |
| FlxqE.c |
|
93.4 % |
865 / 926 |
94.5 % |
86 / 91 |
| Fle.c |
|
93.6 % |
427 / 456 |
89.1 % |
57 / 64 |
| hyperell.c |
|
93.6 % |
1142 / 1220 |
98.1 % |
101 / 103 |
| gen2.c |
|
93.7 % |
1554 / 1658 |
95.5 % |
149 / 156 |
| F2xqE.c |
|
93.8 % |
426 / 454 |
94.9 % |
56 / 59 |
| arith2.c |
|
93.9 % |
524 / 558 |
93.4 % |
71 / 76 |
| gen1.c |
|
93.9 % |
1866 / 1987 |
100.0 % |
105 / 105 |
| bb_group.c |
|
94.0 % |
553 / 588 |
100.0 % |
37 / 37 |
| base2.c |
|
94.0 % |
2228 / 2369 |
97.8 % |
174 / 178 |
| elliptic.c |
|
94.0 % |
3902 / 4150 |
97.8 % |
361 / 369 |
| quad.c |
|
94.2 % |
686 / 728 |
93.4 % |
57 / 61 |
| trans3.c |
|
94.4 % |
1207 / 1279 |
98.8 % |
84 / 85 |
| ispower.c |
|
94.6 % |
630 / 666 |
94.4 % |
34 / 36 |
| bibli1.c |
|
94.5 % |
1175 / 1243 |
92.6 % |
75 / 81 |
| base1.c |
|
94.7 % |
1720 / 1816 |
88.6 % |
140 / 158 |
| bern.c |
|
95.0 % |
341 / 359 |
97.2 % |
35 / 36 |
| base3.c |
|
95.1 % |
2053 / 2158 |
95.4 % |
226 / 237 |
| bibli2.c |
|
95.4 % |
1235 / 1295 |
95.9 % |
116 / 121 |
| dirichlet.c |
|
95.5 % |
483 / 506 |
93.3 % |
42 / 45 |
| digits.c |
|
95.6 % |
195 / 204 |
100.0 % |
27 / 27 |
| buch1.c |
|
95.5 % |
681 / 713 |
92.9 % |
52 / 56 |
| elltors.c |
|
95.7 % |
421 / 440 |
92.3 % |
24 / 26 |
| polarit1.c |
|
95.7 % |
312 / 326 |
100.0 % |
32 / 32 |
| Flxq_log.c |
|
95.7 % |
448 / 468 |
100.0 % |
28 / 28 |
| char.c |
|
95.7 % |
827 / 864 |
100.0 % |
64 / 64 |
| QX_factor.c |
|
95.7 % |
913 / 954 |
95.3 % |
61 / 64 |
| buch4.c |
|
95.8 % |
138 / 144 |
100.0 % |
7 / 7 |
| ellsea.c |
|
95.9 % |
1212 / 1264 |
96.9 % |
94 / 97 |
| rootpol.c |
|
95.9 % |
1467 / 1530 |
97.5 % |
116 / 119 |
| subgroup.c |
|
96.0 % |
356 / 371 |
100.0 % |
24 / 24 |
| trans2.c |
|
96.1 % |
1262 / 1313 |
99.0 % |
96 / 97 |
| ellpadic.c |
|
96.2 % |
588 / 611 |
100.0 % |
47 / 47 |
| nflist.c |
|
96.3 % |
3111 / 3230 |
97.8 % |
316 / 323 |
| lerch.c |
|
96.5 % |
354 / 367 |
100.0 % |
23 / 23 |
| msfarey.c |
|
96.9 % |
187 / 193 |
100.0 % |
17 / 17 |
| lfunquad.c |
|
96.8 % |
337 / 348 |
97.7 % |
42 / 43 |
| bit.c |
|
96.8 % |
430 / 444 |
94.7 % |
36 / 38 |
| zetamult.c |
|
96.9 % |
560 / 578 |
97.6 % |
40 / 41 |
| bb_hnf.c |
|
96.8 % |
643 / 664 |
96.4 % |
53 / 55 |
| hgm.c |
|
96.9 % |
1216 / 1255 |
100.0 % |
139 / 139 |
| bnfunits.c |
|
96.9 % |
222 / 229 |
100.0 % |
14 / 14 |
| nflistQT.c |
|
97.0 % |
164 / 169 |
100.0 % |
12 / 12 |
| trans1.c |
|
97.1 % |
2194 / 2259 |
99.4 % |
168 / 169 |
| ramanujantau.c |
|
97.3 % |
107 / 110 |
100.0 % |
12 / 12 |
| Flv.c |
|
97.2 % |
737 / 758 |
93.5 % |
58 / 62 |
| lfun.c |
|
97.2 % |
1591 / 1636 |
100.0 % |
163 / 163 |
| polmodular.c |
|
97.3 % |
2595 / 2666 |
100.0 % |
157 / 157 |
| mftrace.c |
|
97.4 % |
7502 / 7706 |
99.2 % |
770 / 776 |
| polclass.c |
|
97.5 % |
825 / 846 |
98.6 % |
72 / 73 |
| bnflog.c |
|
97.8 % |
272 / 278 |
100.0 % |
26 / 26 |
| subfield.c |
|
98.0 % |
927 / 946 |
100.0 % |
51 / 51 |
| qfisom.c |
|
98.1 % |
862 / 879 |
100.0 % |
54 / 54 |
| qfsolve.c |
|
98.3 % |
623 / 634 |
100.0 % |
34 / 34 |
| volcano.c |
|
98.6 % |
340 / 345 |
100.0 % |
28 / 28 |
| mellininv.c |
|
98.6 % |
349 / 354 |
100.0 % |
40 / 40 |
| grossenchar.c |
|
98.6 % |
1033 / 1048 |
100.0 % |
66 / 66 |
| Ser.c |
|
98.8 % |
162 / 164 |
100.0 % |
21 / 21 |
| kummer.c |
|
98.8 % |
854 / 864 |
100.0 % |
60 / 60 |
| ellisog.c |
|
98.9 % |
1028 / 1039 |
100.0 % |
89 / 89 |
| map.c |
|
99.2 % |
240 / 242 |
100.0 % |
30 / 30 |
| random.c |
|
99.4 % |
161 / 162 |
100.0 % |
17 / 17 |
| hypergeom.c |
|
99.4 % |
682 / 686 |
100.0 % |
69 / 69 |
| matperm.c |
|
100.0 % |
78 / 78 |
100.0 % |
4 / 4 |
| ellpadiclambdamu.c |
|
100.0 % |
113 / 113 |
100.0 % |
7 / 7 |