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.2 lcov report (development 29115-f22e516b23) Lines: 1591 1632 97.5 %
Date: 2024-04-19 08:07:09 Functions: 163 163 100.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
lfunthetacost0 21
sersplit1 42
lfuncost0 49
derservec 63
checkconductor 84
lfun_get_bitprec 91
ldata_get_k1 98
lfunconductor 98
lfunzeros 98
lfunzeros_i 98
parse_maxcond 98
lfununext 105
lfununextvec 105
derser 126
lfunnoinit 165
lfunthetainit 336
lfunser 371
lfunservec 371
Rtor 413
lfunthetaspec 420
lfuninit0 532
lfunorderzero 553
Z_radical 560
lfuncenterinit 560
znchargauss_i 560
ginvsqrtvec 1078
ser_coeff0 1214
znchargauss 1218
lfunlambda0 1512
lfunderiv 1617
gammafrac 1708
rfrac_degree 1799
theta_pole_contrib 1918
lfunan 2162
lfunlambdaord 2198
der_level 2230
_product 2418
lfunprod_get_fact 2540
ldata_isreal 2789
lfunparams2 3356
lfunrootno 3423
get_eno 3472
gsubvec 3556
lfuncheckfeq_i 3598
polgammaeval 3640
lfuncheckfeq 3731
ropm1 3836
lfunsumcoth 4153
lfunrootres 4200
lfunrtopoles 4378
theta_add_polar_part 4389
rtoR 4609
lfunlambda 4793
serpole 4917
gammaordinary 4942
simple_pole 5022
wrap2 5032
lfun_get_Residue 5140
lfunpoleresidue 5140
is_dirichlet 5152
normalizepoles 5253
lfun_OK 5526
lfun_get_factgammavec 5526
normalize_simple_pole 5876
theta_get_R 5991
lfuninit_ab 6156
lfun_init_theta 6170
fracgammadegree 6250
lfuninit_pol 6310
gamma_C 6398
serisscalar 6453
serextendifnegint 6474
lfun0 6811
wrap1 6888
gdivvec 7049
theta_dual 7070
lfuninit_make 7175
deg1ser_shallow 7409
mkvroots 7633
theta_get_K 7633
lfunthetainit_i 8001
veccothderivn 8369
polepart 8488
residues_known 8522
lfun 8737
lfuninit_theta2_worker 8799
is_ser 9803
gamma_R 9988
lfuninit_cutoff 10294
antwist 11693
condset 11962
mysercoeff 12009
lfunrtoR 14143
lfunthetainit0 14143
prec_fix 14143
get_domain 15140
fracgammaeval 15399
gammafactproduct 15399
mulrealvec 15897
isnegint 16127
lfunrtoR_eno 16187
lfuncost 16242
lfunrtoR_i 16663
gammafactor 16817
lfunhardyzeros 18396
lfun_get_expot 19116
lfun_get_w2 19116
lfunhardy 19135
lfunp_set 22412
sumVgaimpos 22412
ldata_get_degree 23141
sdomain_isincl 24742
checklfuninit 24819
domain_get_der 25239
gmulvec 26853
lfun_get_pol 27252
lfun_get_step 27252
lfunlambda_OK 28910
vgaell 30715
lfuninit 31752
domain_get_bitprec 31882
lfunspec_OK 33400
theta1 37394
ldata_get_dual 42913
lfun_get_k2 45332
ldata_get_an 46735
lfuntheta 47246
theta_get_an 47533
theta_get_tdom 48912
lfuninit_worker 53304
theta_get_isqrtN 53395
lfun_get_dom 54162
lfunthetacheckinit 54645
lfunthetacost 57186
ldata_get_type 57287
theta_get_bitprec 60909
worker_init 62088
get_cone_fuzz 71315
Vgaeasytheta 72960
domain_get_dom 79009
lfun_get_domain 79569
gammavec_expo 79591
ldata_get_k1_dbl 79598
ldata_get_rootno 81285
sumVga 86766
theta_get_m 92147
get_cone 120227
ldata_get_k 125253
parse_dom 126484
linit_get_type 136520
ldata_get_residue 141706
theta2 148342
theta2_i 154106
linit_get_ldata 172827
mulT 191499
ldata_get_conductor 212315
an_msum 224808
linit_get_tech 224905
is_linit 244731
ldata_get_gammavec 270967
mul_an 12631992
get_an 14711879
vecan_cmul 28270522

Generated by: LCOV version 1.14