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 23353-42c433a02) Lines: 1372 1431 95.9 %
Date: 2018-12-15 05:41:59 Functions: 141 142 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
lfun_get_bitprec 42
lfuncost0 42
lfunzeros 42
sersplit1 42
dirpowers 49
Rtor 56
checkconductor 84
lfunconductor 91
lfunthetaspec 91
parse_maxcond 91
derivnser 112
ser_coeff0 217
vecpowuu 231
lfunthetainit 259
lfuncenterinit 406
lfuninit0 406
lfunorderzero 427
Z_radical 588
znchargauss_i 588
znchargauss 805
lfunlambda 812
lfunan 819
der_level 1093
gammafrac 1099
lfunlambda0 1211
lfunderiv 1267
lfunlambda_product 1279
ldata_isreal 1706
lfunprod_get_fact 1797
lfunlambdaord 1834
powersshift 1939
lfuninit_vecc2_sum 2058
wrap2 2194
lfunrootres 2478
lfuncheckfeq_i 2492
lfunparams2 2492
lfuninit_vecc_sum 2513
lfuncheckfeq 2562
theta_get_R 2663
lfun 3192
lfun0 3206
lfunsumcoth 3323
theta_pole_contrib 3689
lfunrootno 3794
get_eno 3829
ropm1 3850
lfun_OK 3969
lfun_get_factgammavec 3969
gammaordinary 4032
lfun_get_Residue 4212
lfunpoleresidue 4212
theta_add_polar_part 4277
lfuninit_vecc 4431
lfun_init_theta 4438
gamma_C 4459
lfuninit_pol 4571
lfuninit_make 5117
get_domain 5264
mkvroots 5358
theta_get_K 5358
simple_pole 5369
ldata_get_type 5537
normalize_simple_pole 5747
theta_dual 6335
wrap1 6473
lfunrtopoles 6517
rtoR 6566
veccothderivn 6653
polepart 6716
lfunthetainit_i 7014
normalizepoles 7308
fracgammadegree 7896
vecpowug 8433
condset 8709
residues_known 8925
antwist 9912
lfunhardyzeros 10344
lfuncost 10421
lfun_get_expot 10834
lfun_get_w2 10834
lfunhardy 10841
gamma_R 10843
ldata_get_degree 11079
lfunthetainit0 11438
mysercoeff 11749
checklfuninit 13340
sdomain_isincl 13340
deg1ser_shallow 13559
domain_get_der 13739
ldata_get_an 13860
lfunrtoR 13867
vgaell 13902
fracgammaeval 14539
gammafactproduct 14539
lfunparams 14859
sumVgaimpos 14859
isnegint 15302
gammafactor 15533
polgammaeval 15729
lfunrtoR_eno 16541
lfunrtoR_i 16618
lfun_get_pol 18084
lfun_get_step 18084
lfuninit 18254
domain_get_bitprec 18527
lfunlambda_OK 19363
theta1 25355
lfun_get_k2 28498
ldata_get_dual 28677
domain_get_dom 31452
lfun_get_domain 31865
lfuntheta 32411
theta_get_an 32537
theta_get_tdom 34805
theta_get_sqrtN 36835
lfunthetacheckinit 38711
lfunthetacost 39320
vgaeasytheta 39327
theta_get_bitprec 43577
ldata_get_rootno 44579
get_cone_fuzz 50744
gammavec_expo 54172
ldata_get_k1 54179
sumVga 59289
theta_get_m 64455
linit_get_type 72128
parse_dom 77707
get_cone 85549
ldata_get_k 89774
ldata_get_residue 103581
linit_get_ldata 109091
is_linit 109725
theta2 115175
ldata_get_conductor 122306
linit_get_tech 131523
mulT 140530
ldata_get_gammavec 169536
get_an 4681547
mul_an 11279188
vecan_cmul 23339281

Generated by: LCOV version 1.13