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.18.0 lcov report (development 29806-4d001396c7) Lines: 1805 1991 90.7 %
Date: 2024-12-22 09:08:28 Functions: 180 192 93.8 %
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
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 609
checkldata 104859
chigeneval_i 97293
chigenevalvec 85050
chigenkerfind 518
closure2ldata 168
cyclo_is_real 6496
cyclotoi 7700
cyclotos 2891
deg1ser_shallow 315
dirartin 53990
dirartin_worker 15666
direllsympow_worker 5655
dirgenus2 2156
dirgenus2_worker 875
dirzetak 2107
dirzetak0 2107
elldiscfix 70
ellfromeqncharpoly 21
ellminimaldotwist 189
ellsympow 89822
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 86669
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 1887018
gaddmulvec 1805916
galois_get_conj 280
gamma_imagchi 2387
genus2_eulerfact 49
genus2_eulerfact2 14
genus2_eulerfact2_semistable 14
genus2_eulerfact_semistable 49
genus2_red5 0
genus2_redmodel 49
genus2_type5 63
ginvvec 567
handle_zeta 1596
idealfrobenius_easy 52402
idealfrobenius_hard 1596
is_ldata 126440
is_tagged 104971
ldata_eulerf 854
ldata_newprec 32613
ldata_vecan 31878
lfunabelianrelinit 518
lfunabelrel 21
lfunabelrel_i 539
lfunartin 1610
lfunchiZ 8421
lfunchigen 1309
lfunchiinit 1057
lfunchiquad 6881
lfuncombdual 133
lfunconj 84
lfunconvol 77
lfunconvolinv 56
lfuncreate 4025
lfuncreate_tag 609
lfundatatype 17696
lfundiv 56
lfundivpoles 56
lfundual 630
lfundualpoles 280
lfunell 4053
lfunellQ 3850
lfunellmfpeters 70
lfunellmfpetersmintwist 70
lfunellnf 203
lfunellsympow 140
lfunellsymsqmintwist 70
lfunetaquo 49
lfuneuler 707
lfungenus2 35
lfunmfspec 28
lfunmfspec_i 28
lfunmisc_to_ldata 3514
lfunmisc_to_ldata_i 122114
lfunmisc_to_ldata_shallow 97803
lfunmisc_to_ldata_shallow_i 20797
lfunmul 63
lfunmul_k 77
lfunmulpoles 77
lfunparams 133
lfunproduct 329
lfunqf 91
lfunshift 98
lfunsympow 70
lfuntwist 5173
lfunvgasub 56
lfunzeta 4074
lfunzetak 819
lfunzetak_i 1246
lfunzetakinit 945
lfunzetakinit_artin 21
lfunzetakinit_quotient 329
linit_get_mat 658
localfactor 58954
mfpeters 70
mkvchi 4991
nfellcharpoly 0
oneminusxd 308
orderpole 266
pole_translate 28
poles_translate 14
qfiseven 336
rtopoles 168
safe_Z_pvalrem 0
simple_pole 266
tag 26047
vec01 4480
vec_classes 518
vecan_Kronecker 3654
vecan_abelrel 168
vecan_artin 2947
vecan_chiZ 3647
vecan_chigen 1344
vecan_closure 1932
vecan_conj 126
vecan_div 630
vecan_ellsympow 343
vecan_eta 147
vecan_genus2 196
vecan_mul 308
vecan_qf 399
vecan_shift 637
vecan_twist 2877
vecchar_renormalize 224
veclfunchiinit 518

Generated by: LCOV version 1.16