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.18.0 lcov report (development 29712-7c8a932571) Lines: 1591 1632 97.5 %
Date: 2024-11-15 09:08:45 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 210
lfunthetainit 336
lfunser 371
lfunservec 371
Rtor 413
lfunthetaspec 420
lfuninit0 532
lfunorderzero 553
lfuncenterinit 560
ser_coeff0 1232
lfunlambda0 1512
lfunderiv 1624
gammafrac 1708
rfrac_degree 1799
theta_pole_contrib 1918
ginvsqrtvec 2219
lfunlambdaord 2226
der_level 2248
lfunan 2408
_product 2428
lfunprod_get_fact 2561
ldata_isreal 2799
Z_radical 2856
znchargauss_i 2856
lfunparams2 3374
gsubvec 3556
lfuncheckfeq_i 3598
polgammaeval 3640
lfuncheckfeq 3731
lfunsumcoth 4157
lfunrtopoles 4431
rtoR 4662
lfunlambda 4814
gammaordinary 4942
serpole 5019
wrap2 5032
simple_pole 5124
lfun_get_Residue 5151
lfunpoleresidue 5151
normalizepoles 5306
znchargauss 5502
lfunrootno 5740
get_eno 5789
normalize_simple_pole 5978
theta_get_R 5991
ropm1 6153
fracgammadegree 6307
serisscalar 6517
serextendifnegint 6538
lfunrootres 6545
theta_add_polar_part 6706
lfun0 6818
wrap1 6888
deg1ser_shallow 7469
mkvroots 7651
theta_get_K 7651
veccothderivn 8377
polepart 8496
residues_known 8624
gdivvec 9366
theta_dual 9387
is_dirichlet 9436
lfun_OK 9814
lfun_get_factgammavec 9814
gamma_R 10052
lfunthetainit_i 10318
lfuninit_ab 10458
lfun_init_theta 10472
lfuninit_cutoff 10526
lfuninit_pol 10612
gamma_C 10682
lfuninit_make 11536
condset 11962
mysercoeff 12017
lfun 13027
mulrealvec 15897
lfuncost 16242
antwist 18298
is_ser 18375
lfunhardyzeros 18570
lfun_get_expot 19347
lfun_get_w2 19347
lfunhardy 19354
get_domain 19458
fracgammaeval 19740
gammafactproduct 19740
isnegint 20468
lfunrtoR 20762
lfunthetainit0 20762
prec_fix 20762
gammafactor 21231
lfuninit_theta2_worker 22264
lfunrtoR_eno 22855
lfunrtoR_i 23331
sdomain_isincl 24763
checklfuninit 24840
domain_get_der 25260
ldata_get_degree 25681
lfunp_set 26714
sumVgaimpos 26714
gmulvec 31155
lfun_get_pol 31554
lfun_get_step 31554
lfunlambda_OK 33219
lfuninit 36082
domain_get_bitprec 36264
lfunspec_OK 37916
theta1 39711
vgaell 41625
lfun_get_k2 49634
lfuntheta 51859
theta_get_an 52146
lfuninit_worker 53244
theta_get_tdom 53525
ldata_get_dual 58541
lfun_get_dom 58648
lfunthetacheckinit 61575
theta_get_isqrtN 62310
lfunthetacost 64116
theta_get_bitprec 65522
ldata_get_an 73563
ldata_get_type 75140
worker_init 75506
domain_get_dom 83516
lfun_get_domain 84076
get_cone_fuzz 84864
Vgaeasytheta 86523
gammavec_expo 90823
ldata_get_k1_dbl 90830
theta_get_m 101373
sumVga 102359
ldata_get_rootno 103460
get_cone 138389
parse_dom 139432
linit_get_type 145880
ldata_get_k 151865
ldata_get_residue 172938
linit_get_ldata 195205
an_msum 224959
linit_get_tech 247508
ldata_get_conductor 268473
theta2 272979
theta2_i 281039
is_linit 296324
mulT 320743
ldata_get_gammavec 344638
mul_an 12778807
get_an 14711353
vecan_cmul 34058563

Generated by: LCOV version 1.16