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:

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
Current view: top level - language - intnum.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.2 lcov report (development 29115-f22e516b23) Lines: 1583 1632 97.0 %
Date: 2024-04-24 08:07:32 Functions: 132 133 99.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Legendrenext 96808
Legendreroot 15211
M_from_wrapmon 35
Pade 287
QD 5999
RFRAC_eval 2093
RX_realroots 287
_exfn 33922
_int_eval 20230
_invf 12474
_mpmul 1844164
add_RFRAC_eval 2093
add_sumrfrac 21
auxcirc 5222
auxeuler 37274090
auxlin 36750
checkmonroots 231
checksumtab 28
checktab 4709
checktabdoub 553
checktabsimp 9586
code_aux 4550
contfrac_Euler 5698
contfraceval 35
contfraceval_inv 4285551
contfracinit 2961
contfracinit_i 2772
divr2_ip 399108
err_code 14
euler_set_Fs 126
expscalpr 128643
exptab 119
expvec 238
expvecpr 238
f_getycplx 2149
get_kN 28
get_oo 210
homtab 539
id 187922
init_fin 854
initexpexp 259
initexpsinh 259
initnumsine 112
initsinh 133
initsinhsinh 14
inittanhsinh 420
intcirc 14
intcirc0 14
interp 168
intfuncinit 147
intfuncinit0 147
intfuncinit_i 133
intinit_end 1197
intinit_start 1197
intlin 70
intn 4079
intninfinf 588
intninfpm 553
intnsing 203
intnum 5353
intnum0 4641
intnum_i 5325
intnumainfrat 28
intnumgauexp 56
intnumgauexpinit 56
intnumgauss 20321
intnumgauss0 91
intnumgaussinit 273
intnuminit 1001
intnuminit0 5325
intnuminit_i 1148
intnumosc 168
intnumosc0 168
intnumromb 63
intnumromb0 63
is_fin_f 994
is_osc 147
isinC 23351
isinR 24863
logzetan 4214
monrefine 2436
monroots 182
opFps 77
osc_wrap 9639
osc_wrap_prec 10591
polmax 168
prodeulerrat 70
prodnumrat 28
qrom2 63
qrom3 14
qromi 28
quodif 0
quodif_i 5733
ratpolemax 21
ratpolemax2 56
rfrac_eval 2093
rfrac_eval0 28
rfrac_evalfp 665
rfrac_gtofp 63
rfrac_logderiv 49
rfracm1_degree 70
rom_bsmall 28
rombint 35
sdmob 5362
sercoeff 23226
sumaux 14
sumeulerrat 56
sumlogzeta 77
sumnum 140
sumnum0 98
sumnumap 63
sumnumap0 63
sumnumapinit 56
sumnuminit 126
sumnumlagrange 91
sumnumlagrange0 91
sumnumlagrange1init 49
sumnumlagrange2init 7
sumnumlagrangeinit 77
sumnumlagrangeinit_i 56
sumnummonien 238
sumnummonien0 182
sumnummonieninit 168
sumnummonieninit_i 238
sumnumrat 56
sumnumrat_i 28
sumnumsidi 133
sumnumsidi0 28
transcode 23897
veczetaprime 7
weight 266
wrapmonw 34384
wrapmonw2 18819

Generated by: LCOV version 1.14