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 - pclgp.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.0 lcov report (development 29806-4d001396c7) Lines: 1838 2381 77.2 %
Date: 2024-12-21 09:08:57 Functions: 153 180 85.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
D_xi_el_Flx_mul 34
D_xi_el_ZX_mul 35
D_xi_el_sl 0
D_xi_el_ss 0
D_xi_el_vell 0
D_xi_el_vell_FFT 0
Flv_FlvV_factorback 19124
Flv_extgcd 18795
Flv_shift_add 173
Flv_shift_sub 102
FlxX_weier_deg 448
FlxXn_translate1 224
Flx_ber_conj 21756
Flx_ber_den 14490
Flx_divcheck 896
Flx_recip1_inplace 14
Flx_red_inplace 17094
Flx_rescale_inplace 14
Flx_weier_deg 1582
Flxn_Weierstrass_prep 84
Flxn_shift_mul 308
Flxn_translate1 756
FlxqX_xi_conj 966
FlxqX_xi_norm 0
Flxq_xi_conj 39046
FpV_shift_add 15
FpV_shift_sub 10
FpX_ber_conj 252
FpX_one_cyclo 343
GHinit 329
G_K_l 114
G_K_p 12
G_K_vell 182
K_get_H 17368
K_get_d 112755
K_get_dchi 59314
K_get_f 82965
K_get_g 17102
K_get_h 17424
K_get_nconj 23660
K_get_s 0
Xi_el 47
ZX_ber_conj 26257
ZX_ber_den 26257
ZX_p_val 315
_get_H 30787
_get_d 178002
_get_f 119820
_get_g 53957
_get_h 30843
_get_s 28392
abeliwasawa 49
ary2mat 77
ber_conj 196
ber_cyc5 812
ber_norm_by_cyc 21
ber_norm_by_val 98
ber_norm_cyc 49
ber_norm_with_val 0
ber_norm_with_val2 301
bound_coeff_xi 14
bound_pol_xi 0
checkp 336
chk_el_real_basis 14
chk_el_real_chi 21
chk_el_real_f 0
chk_el_real_factor 7
chk_el_real_galois 0
chk_ell_real 616
cyc_buch 0
cyc_imag 26334
cyc_imag_MLL 42
cyc_real_MLL 21
cyc_real_ll 5145
cyc_real_pre 35091
cyc_real_ss 26579
deg_trunc 1057
delete_el 0
delete_ele 252
ediff 35
ediff_ber 28
errpdiv 14
find_conj_el 0
find_del_el 14
find_ele 259
find_gen 0
gather_part 392
gauss_Flx_mul 85
gauss_ZX_mul 90
gauss_el_vell 4
get_Xi 14
get_chi 13419
get_coset 7
get_e_chi 35857
get_e_chi_ll 5145
get_str 63
get_teich 0
get_xi_1 462
get_xi_2 0
get_y 175
imag_MLL 12
imag_MLL1 42
imag_MLLn 2
imag_cyc_lam 3262
imag_cyc_pol 56
imagquadstkpol 14
is_cyclic 0
lam_chi_ber 14504
lam_chi_xi 910
make_G_K 7
make_Theta 47
make_Xi 47
make_p_part 77
minpol_theta 14
minpol_xi 0
next_el_imag 56
next_el_real 21
next_ell_imag 70
next_ell_real 35
norm_chi 94
pclgp 161
pclgp_cyc_imag 10080
pclgp_cyc_real 10164
pol_chi_xi 56
pol_xi_el 0
pol_zero 53263
quadlambda 28
quadlambda2 0
quadstk2 14
quadstkp 14
quadstkp1 14
quadstkp2 0
quadteichstk 0
real_MLL 7
real_MLL1 14
real_MLLn 0
realquadstkpol 14
reduce_gcd 413
rel_class_num 119
root_of_1 119
set_A 35
set_C 1134
set_chin 28
set_ell_imag 56
set_ell_real 21
set_gam 476
set_gam2 14
set_minpol 945
set_minpol_teich 91
set_p_f 196
set_quad_chi 56
srh_1 18963
srh_pol 3024
srh_x 8995
structure_MLL 77
subcyclo_init 441
subcyclohminus 119
subcycloiwasawa 126
subcycloiwasawa_i 126
subcyclopclgp 210
subgp2ary 18795
subgr2vecsmall 7
theta_xi_approx 14
theta_xi_el 47
unit_index 21
use_basis 21
use_factor 7
vecsmall2vec2 28
verbose_output 0
vz_vell 6
xi_approx 0
xi_conj_l 1673
xi_conj_s 13797
xi_data_basis 14
xi_data_galois 0
zncharlift 18795
znstar_subgr 0
zx_ber_num 13146
zx_p_val 49
zx_to_Flx_inplace 14

Generated by: LCOV version 1.16