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.1 lcov report (development 30338-25bc3391a4) Lines: 1591 1632 97.5 %
Date: 2025-06-22 09:20:59 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 224
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
lfunlambdaord 2226
der_level 2248
ginvsqrtvec 2373
lfunan 2450
_product 2456
lfunprod_get_fact 2575
ldata_isreal 2813
Z_radical 2856
znchargauss_i 2856
gsubvec 3556
lfuncheckfeq_i 3598
lfunparams2 3598
polgammaeval 3640
lfuncheckfeq 3731
lfunsumcoth 4157
lfunrtopoles 4473
rtoR 4704
wrap2 5032
serpole 5089
lfunlambda 5094
lfun_get_Residue 5151
lfunpoleresidue 5151
gammaordinary 5166
simple_pole 5194
normalizepoles 5348
znchargauss 5502
lfunrootno 5950
theta_get_R 5991
get_eno 5999
normalize_simple_pole 6048
fracgammadegree 6349
ropm1 6363
serisscalar 6559
serextendifnegint 6580
lfunrootres 6783
lfun0 6860
wrap1 6888
theta_add_polar_part 6916
deg1ser_shallow 7511
mkvroots 7889
theta_get_K 7889
veccothderivn 8377
polepart 8496
residues_known 8694
gdivvec 9576
theta_dual 9597
is_dirichlet 9688
lfun_OK 9828
lfun_get_factgammavec 9828
gamma_R 10318
lfunthetainit_i 10360
gamma_C 10696
lfuninit_ab 10696
lfun_init_theta 10710
lfuninit_pol 10850
lfuninit_cutoff 11016
lfuninit_make 11802
condset 11962
mysercoeff 12017
lfun 13111
mulrealvec 15897
lfuncost 16242
is_ser 18403
antwist 18564
lfunhardyzeros 18570
lfun_get_expot 19347
lfun_get_w2 19347
lfunhardy 19354
get_domain 19822
fracgammaeval 20020
gammafactproduct 20020
isnegint 20748
lfunrtoR 21042
lfunthetainit0 21042
prec_fix 21042
gammafactor 21763
lfuninit_theta2_worker 22307
lfunrtoR_eno 23163
lfunrtoR_i 23639
sdomain_isincl 25029
checklfuninit 25106
domain_get_der 25526
ldata_get_degree 26115
lfunp_set 26952
sumVgaimpos 26952
gmulvec 31421
lfun_get_pol 31820
lfun_get_step 31820
lfunlambda_OK 33499
lfuninit 36614
domain_get_bitprec 36796
lfunspec_OK 38280
theta1 39921
vgaell 41975
lfun_get_k2 49900
lfuntheta 52111
theta_get_an 52398
theta_get_tdom 53945
lfuninit_worker 56378
lfun_get_dom 59208
ldata_get_dual 59297
lfunthetacheckinit 62037
theta_get_isqrtN 62800
lfunthetacost 64606
theta_get_bitprec 65942
ldata_get_an 74284
ldata_get_type 76554
worker_init 78676
domain_get_dom 84342
lfun_get_domain 84902
get_cone_fuzz 85634
Vgaeasytheta 87069
gammavec_expo 91551
ldata_get_k1_dbl 91558
theta_get_m 102031
sumVga 103353
ldata_get_rootno 104790
get_cone 139579
parse_dom 140748
linit_get_type 147168
ldata_get_k 153657
ldata_get_residue 174926
linit_get_ldata 196773
an_msum 239250
linit_get_tech 249272
ldata_get_conductor 271539
theta2 274138
theta2_i 282226
is_linit 299320
mulT 322144
ldata_get_gammavec 348026
mul_an 12879218
get_an 14712655
vecan_cmul 34079022

Generated by: LCOV version 1.16