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-04-19 08:07:09 Functions: 177 187 94.7 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.14