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 - lfunutils.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.2 lcov report (development 29115-f22e516b23) Lines: 1812 1980 91.5 %
Date: 2024-03-28 08:06:56 Functions: 177 187 94.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2x_genus2_find_trans 28
F2x_genus2_trans 35
F2x_genus_red 14
F2x_genus_redoo 42
F2x_pseudodisc 35
F2xqX_quad_nbroots 21
Flv_diffnext 233611
Flx_difftable 1995
Flx_genus2trace_naive 1995
RgV_Rg_translate 98
_direuler_abelrel 687883
abelrel_factor 687925
abelrel_pfactor 990451
algo57bis 42
artin_badprimes 1379
artin_charfromgens 119
artin_dim 3213
artin_gamma 1379
artin_ind 623
artin_ram 2282
c4c6_ap 0
c4c6_testp 0
char_dim 2821
char_expand 2856
char_is_real 1379
char_renormalize 224
checkldata 82480
chigeneval_i 97113
chigenevalvec 84885
chigenkerfind 518
closure2ldata 168
cyclo_is_real 6496
cyclotoi 7700
cyclotos 2891
deg1ser_shallow 315
dirartin 53993
dirartin_worker 15666
direllsympow_worker 5653
dirgenus2 2156
dirgenus2_worker 875
dirzetak 2079
dirzetak0 2079
elldiscfix 70
ellfromeqncharpoly 21
ellminimaldotwist 189
ellsympow 89845
ellsympow_abelian 3129
ellsympow_abelian_twist 0
ellsympow_betam 196
ellsympow_deltam2 28
ellsympow_deltam3 70
ellsympow_epsm 98
ellsympow_gamma 140
ellsympow_goodred 0
ellsympow_goodred2 28
ellsympow_goodred3 70
ellsympow_inertia2 28
ellsympow_inertia3 70
ellsympow_isabelian2 0
ellsympow_isabelian3 0
ellsympow_multred 98
ellsympow_nonabelian 98
ellsympow_rootno2 0
ellsympow_rootno3 35
ellsympow_trace 86668
ellsymsq_bad2 28
ellsymsq_bad3 14
ellsymsq_badp 42
eta_ZXn 1222
eta_product_ZXn 322
etachar 203
etacuspidal 231
etaquotype 259
etaselfdual 49
eulerf_abelrel 42
eulerf_artin 28
eulerf_bad 56
eulerf_chiZ 42
eulerf_chigen 28
eulerf_closure 70
eulerf_conj 0
eulerf_div 14
eulerf_ellsympow 28
eulerf_genus2 0
eulerf_hgm 84
eulerf_mul 28
eulerf_shift 42
eulerf_twist 14
eulerf_zetak 168
gaddmul 1886766
gaddmulvec 1805691
galois_get_conj 280
gamma_imagchi 245
genus2_eulerfact 49
genus2_eulerfact2 14
genus2_eulerfact_semistable 49
genus2_redmodel 49
ginvvec 567
handle_zeta 1596
idealfrobenius_easy 52402
idealfrobenius_hard 1596
is_ldata 93096
is_tagged 82592
ldata_eulerf 854
ldata_newprec 21401
ldata_vecan 20344
lfunabelianrelinit 518
lfunabelrel 21
lfunabelrel_i 539
lfunartin 1610
lfunchiZ 1841
lfunchigen 1309
lfunchiquad 4484
lfuncombdual 133
lfunconj 84
lfunconvol 77
lfunconvolinv 56
lfuncreate 1883
lfuncreate_tag 609
lfundatatype 8873
lfundiv 56
lfundivpoles 56
lfundual 630
lfundualpoles 280
lfunell 1911
lfunellQ 1708
lfunellmfpeters 70
lfunellmfpetersmintwist 70
lfunellnf 203
lfunellsympow 140
lfunellsymsqmintwist 70
lfunetaquo 49
lfuneuler 707
lfungenus2 35
lfunmfspec 28
lfunmfspec_i 28
lfunmisc_to_ldata 1372
lfunmisc_to_ldata_i 90912
lfunmisc_to_ldata_shallow 75369
lfunmisc_to_ldata_shallow_i 14171
lfunmul 63
lfunmul_k 77
lfunmulpoles 77
lfunparams 133
lfunproduct 315
lfunqf 91
lfunshift 98
lfunsympow 70
lfuntwist 889
lfunvgasub 56
lfunzeta 2020
lfunzetak 805
lfunzetak_i 1218
lfunzetakinit 924
lfunzetakinit_artin 21
lfunzetakinit_quotient 315
linit_get_mat 630
list_minimalmodels 42
localfactor 58954
mfpeters 70
mkvchi 2664
oneminusxd 308
orderpole 266
pole_translate 28
poles_translate 14
qfiseven 336
rtopoles 168
safe_Z_pvalrem 0
simple_pole 266
tag 14865
vec01 4438
vec_classes 518
vecan_Kronecker 1316
vecan_abelrel 168
vecan_artin 2947
vecan_chiZ 1365
vecan_chigen 1299
vecan_closure 1925
vecan_conj 126
vecan_div 616
vecan_ellsympow 343
vecan_eta 147
vecan_genus2 196
vecan_mul 308
vecan_qf 399
vecan_shift 637
vecan_twist 581

Generated by: LCOV version 1.14