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.12.0 lcov report (development 23861-3a0b89ade) Lines: 1352 1408 96.0 %
Date: 2019-05-21 05:44:45 Functions: 139 140 99.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
lfun_get_dom 0
lfunthetacost0 14
lfuncost0 42
sersplit1 42
dirpowers 49
lfun_get_bitprec 49
lfunzeros 49
Rtor 56
checkconductor 84
lfunconductor 91
lfunthetaspec 91
parse_maxcond 91
ser_coeff0 217
vecpowuu 231
lfunthetainit 259
lfuninit0 406
lfuncenterinit 420
lfunorderzero 434
Z_radical 595
znchargauss_i 595
znchargauss 812
lfunan 819
lfunlambda 882
gammafrac 1099
der_level 1107
lfunlambda0 1211
lfunlambda_product 1279
lfunderiv 1281
ldata_isreal 1713
lfunprod_get_fact 1797
lfunlambdaord 1848
lfuninit_vecc2_sum 2086
wrap2 2194
lfuncheckfeq_i 2499
lfunrootres 2513
lfunparams2 2527
lfuninit_vecc_sum 2548
lfuncheckfeq 2569
theta_get_R 2670
lfun0 3227
lfun 3234
lfunsumcoth 3330
theta_pole_contrib 3759
lfunrootno 3829
get_eno 3864
ropm1 3885
lfun_OK 4025
lfun_get_factgammavec 4025
gammaordinary 4053
lfun_get_Residue 4233
lfunpoleresidue 4233
theta_add_polar_part 4319
lfuninit_vecc 4494
gamma_C 4501
lfun_init_theta 4501
lfuninit_pol 4634
lfuninit_make 5180
get_domain 5390
mkvroots 5393
theta_get_K 5393
simple_pole 5439
ldata_get_type 5607
normalize_simple_pole 5831
theta_dual 6377
wrap1 6473
lfunrtopoles 6615
rtoR 6657
veccothderivn 6667
polepart 6730
lfunthetainit_i 7077
normalizepoles 7434
fracgammadegree 8015
vecpowug 8524
condset 8709
residues_known 9079
antwist 10024
gamma_R 10997
lfunhardyzeros 11023
lfuncost 11037
lfun_get_expot 11513
lfun_get_w2 11513
lfunhardy 11520
lfunthetainit0 11564
ldata_get_degree 11758
mysercoeff 11847
deg1ser_shallow 13748
lfunrtoR 14021
ldata_get_an 14028
vgaell 14056
checklfuninit 14110
sdomain_isincl 14110
domain_get_der 14516
fracgammaeval 14707
gammafactproduct 14707
isnegint 15498
lfunparams 15538
sumVgaimpos 15538
gammafactor 15708
polgammaeval 15897
lfunrtoR_eno 16751
lfunrtoR_i 16835
lfun_get_pol 18889
lfun_get_step 18889
lfuninit 19087
domain_get_bitprec 19367
lfunlambda_OK 20168
theta1 25383
ldata_get_dual 29566
lfun_get_k2 29968
lfuntheta 32488
theta_get_an 32614
domain_get_dom 33027
lfun_get_domain 33454
theta_get_tdom 34889
theta_get_sqrtN 36975
lfunthetacheckinit 38830
lfunthetacost 39460
vgaeasytheta 39467
theta_get_bitprec 43661
ldata_get_rootno 45692
get_cone_fuzz 51010
gammavec_expo 54991
ldata_get_k1 54998
sumVga 60171
theta_get_m 64616
linit_get_type 73815
parse_dom 81536
get_cone 85899
ldata_get_k 93064
ldata_get_residue 105576
linit_get_ldata 112262
is_linit 112903
theta2 117310
ldata_get_conductor 125043
linit_get_tech 134092
mulT 142693
ldata_get_gammavec 172525
get_an 4681547
mul_an 11331030
vecan_cmul 23550275

Generated by: LCOV version 1.13