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 - basemath - lfun.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28676-df828f1c94) Lines: 1477 1513 97.6 %
Date: 2023-08-26 07:54:43 Functions: 158 159 99.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Rtor 399
Vgaeasytheta 69259
Z_radical 560
an_msum 155090
antwist 11004
checkconductor 84
checklfuninit 16084
condset 12088
deg1ser_shallow 6706
der_level 1401
derser 126
derservec 63
domain_get_bitprec 22524
domain_get_der 16560
domain_get_dom 37710
fracgammadegree 5544
fracgammaeval 14000
gamma_C 6363
gamma_R 8624
gammafactor 15225
gammafactproduct 14000
gammafrac 1708
gammaordinary 4739
gammavec_expo 74721
gdivvec 6881
get_an 14711879
get_cone 119275
get_cone_fuzz 70400
get_domain 9338
get_eno 3374
ginvsqrtvec 1043
gmulvec 21199
gsubvec 3486
is_linit 167829
is_ser 8820
isnegint 14728
ldata_get_an 42021
ldata_get_conductor 170915
ldata_get_degree 13809
ldata_get_dual 35413
ldata_get_gammavec 238872
ldata_get_k 99421
ldata_get_k1 98
ldata_get_k1_dbl 74728
ldata_get_residue 128813
ldata_get_rootno 68164
ldata_get_type 12733
ldata_isreal 2280
lfun 6762
lfun0 6545
lfun_OK 5033
lfun_get_Residue 5066
lfun_get_bitprec 77
lfun_get_dom 0
lfun_get_domain 38235
lfun_get_expot 13130
lfun_get_factgammavec 5033
lfun_get_k2 34329
lfun_get_pol 21598
lfun_get_step 21598
lfun_get_w2 13130
lfun_init_theta 5670
lfunan 1274
lfuncenterinit 525
lfuncheckfeq 3647
lfuncheckfeq_i 3528
lfunconductor 98
lfuncost 12098
lfuncost0 49
lfunderiv 1575
lfunhardy 13137
lfunhardyzeros 12507
lfuninit 22412
lfuninit0 483
lfuninit_ab 5656
lfuninit_make 6489
lfuninit_pol 5810
lfuninit_theta2_worker 14452
lfuninit_worker 37294
lfunlambda 1008
lfunlambda0 1463
lfunlambda_OK 23024
lfunlambda_product 1426
lfunlambdaord 2198
lfunorderzero 525
lfunp_set 17768
lfunparams2 2856
lfunpoleresidue 5066
lfunprod_get_fact 2035
lfunrootno 3325
lfunrootres 3745
lfunrtoR 13454
lfunrtoR_eno 15106
lfunrtoR_i 15568
lfunrtopoles 3689
lfunser 357
lfunservec 357
lfunsumcoth 4079
lfuntheta 47216
lfunthetacheckinit 54433
lfunthetacost 56960
lfunthetacost0 21
lfunthetainit 322
lfunthetainit0 13454
lfunthetainit_i 7812
lfunthetaspec 406
lfununext 105
lfununextvec 105
lfunzeros 84
lfunzeros_i 84
linit_get_ldata 139594
linit_get_tech 176069
linit_get_type 93338
mkvroots 7133
mulT 191445
mul_an 11365156
mulrealvec 10773
mysercoeff 11749
normalize_simple_pole 4809
normalizepoles 4536
parse_dom 93132
parse_maxcond 98
polepart 8340
polgammaeval 3640
prec_fix 13454
residues_known 7371
rfrac_degree 1799
ropm1 3724
rtoR 3920
sdomain_isincl 16084
ser_coeff0 385
serextendifnegint 5768
serisscalar 5747
serpole 3878
sersplit1 42
simple_pole 3969
sumVga 81210
sumVgaimpos 17768
theta1 37434
theta2 148253
theta2_i 153962
theta_add_polar_part 4235
theta_dual 6902
theta_get_K 7133
theta_get_R 5941
theta_get_an 47503
theta_get_bitprec 60998
theta_get_isqrtN 52865
theta_get_m 92080
theta_get_tdom 48875
theta_pole_contrib 1806
vecan_cmul 28302819
veccothderivn 8221
vgaell 27268
worker_init 51745
wrap1 7008
wrap2 5038
znchargauss 1218
znchargauss_i 560

Generated by: LCOV version 1.14