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-20 08:07:50 Functions: 163 163 100.0 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.14