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.1 lcov report (development 28676-df828f1c94) Lines: 1785 1934 92.3 %
Date: 2023-08-26 07:54:43 Functions: 174 184 94.6 %
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 687407
abelrel_factor 687435
abelrel_pfactor 989961
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 203
checkldata 59885
chigeneval_i 96516
chigenevalvec 84343
chigenkerfind 497
closure2ldata 168
cyclo_is_real 6496
cyclotoi 7700
cyclotos 2891
deg1ser_shallow 315
dirartin 53993
dirartin_worker 15665
direllsympow_worker 5656
dirgenus2 2156
dirgenus2_worker 875
dirzetak 2079
dirzetak0 2079
elldiscfix 70
ellfromeqncharpoly 21
ellminimaldotwist 189
ellsympow 89918
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 86796
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 28
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 1886304
gaddmulvec 1805328
galois_get_conj 280
gamma_imagchi 245
genus2_eulerfact 49
genus2_eulerfact2 14
genus2_redmodel 49
ginvvec 539
handle_zeta 1596
idealfrobenius_easy 52400
idealfrobenius_hard 1596
is_ldata 69825
is_tagged 59997
ldata_eulerf 826
ldata_newprec 19768
ldata_vecan 18767
lfunabelianrelinit 497
lfunabelrel 21
lfunabelrel_i 518
lfunartin 1610
lfunchiZ 1750
lfunchigen 1197
lfunchiquad 4172
lfuncombdual 133
lfunconj 84
lfunconvol 77
lfunconvolinv 56
lfuncreate 1869
lfuncreate_tag 609
lfundatatype 8225
lfundiv 56
lfundivpoles 56
lfundual 602
lfundualpoles 252
lfunell 1806
lfunellQ 1617
lfunellmfpeters 70
lfunellmfpetersmintwist 70
lfunellnf 189
lfunellsympow 140
lfunellsymsqmintwist 70
lfunetaquo 49
lfuneuler 679
lfungenus2 35
lfunmfspec 28
lfunmfspec_i 28
lfunmisc_to_ldata 1358
lfunmisc_to_ldata_i 67655
lfunmisc_to_ldata_shallow 52815
lfunmisc_to_ldata_shallow_i 13482
lfunmul 63
lfunmul_k 77
lfunmulpoles 77
lfunparams 133
lfunproduct 315
lfunqf 91
lfunshift 98
lfunsympow 70
lfuntwist 889
lfunvgasub 56
lfunzeta 1757
lfunzetak 714
lfunzetak_i 1127
lfunzetakinit 910
lfunzetakinit_artin 21
lfunzetakinit_quotient 315
linit_get_mat 630
localfactor 58954
mfpeters 70
mkvchi 1925
oneminusxd 308
orderpole 266
pole_translate 28
poles_translate 14
qfiseven 336
rtopoles 168
safe_Z_pvalrem 0
simple_pole 266
tag 14140
vec01 4221
vec_classes 497
vecan_Kronecker 1295
vecan_abelrel 119
vecan_artin 2947
vecan_chiZ 980
vecan_chigen 945
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