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.1 lcov report (development 30702-bddb8d6928) Lines: 1838 2381 77.2 %
Date: 2026-02-23 02:23:56 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_sl 0
D_xi_el_ss 0
D_xi_el_vell 0
D_xi_el_vell_FFT 0
FlxqX_xi_norm 0
K_get_s 0
ber_norm_with_val 0
bound_pol_xi 0
chk_el_real_f 0
chk_el_real_galois 0
cyc_buch 0
delete_el 0
find_conj_el 0
find_gen 0
get_teich 0
get_xi_2 0
is_cyclic 0
minpol_xi 0
pol_xi_el 0
quadlambda2 0
quadstkp2 0
quadteichstk 0
real_MLLn 0
verbose_output 0
xi_approx 0
xi_data_galois 0
znstar_subgr 0
imag_MLLn 2
gauss_el_vell 4
chk_el_real_factor 5
get_coset 5
make_G_K 5
real_MLL 5
subgr2vecsmall 5
use_factor 5
vz_vell 6
imag_MLL 8
Flx_recip1_inplace 10
Flx_rescale_inplace 10
FpV_shift_sub 10
bound_coeff_xi 10
chk_el_real_basis 10
errpdiv 10
find_del_el 10
get_Xi 10
imagquadstkpol 10
minpol_theta 10
quadstk2 10
quadstkp 10
quadstkp1 10
real_MLL1 10
realquadstkpol 10
set_gam2 10
theta_xi_approx 10
xi_data_basis 10
zx_to_Flx_inplace 10
G_K_p 12
FpV_shift_add 15
ber_norm_by_cyc 15
chk_el_real_chi 15
cyc_real_MLL 15
next_el_real 15
set_ell_real 15
unit_index 15
use_basis 15
ediff_ber 20
quadlambda 20
set_chin 20
vecsmall2vec2 20
D_xi_el_Flx_mul 24
D_xi_el_ZX_mul 25
ediff 25
next_ell_real 25
set_A 25
cyc_imag_MLL 30
imag_MLL1 30
Xi_el 35
abeliwasawa 35
ber_norm_cyc 35
make_Theta 35
make_Xi 35
theta_xi_el 35
zx_p_val 35
imag_cyc_pol 40
next_el_imag 40
pol_chi_xi 40
set_ell_imag 40
set_quad_chi 40
get_str 45
next_ell_imag 50
ary2mat 55
make_p_part 55
structure_MLL 55
gauss_Flx_mul 57
Flxn_Weierstrass_prep 60
gauss_ZX_mul 62
set_minpol_teich 65
norm_chi 66
Flv_shift_sub 68
ber_norm_by_val 70
G_K_l 78
rel_class_num 85
root_of_1 85
subcyclohminus 85
subcycloiwasawa 90
subcycloiwasawa_i 90
pclgp 115
Flv_shift_add 117
get_y 125
G_K_vell 130
ber_conj 140
set_p_f 140
subcyclopclgp 150
FlxXn_translate1 160
FpX_ber_conj 180
delete_ele 180
find_ele 185
ber_norm_with_val2 215
Flxn_shift_mul 220
ZX_p_val 225
GHinit 235
checkp 240
FpX_one_cyclo 245
gather_part 280
reduce_gcd 295
subcyclo_init 315
FlxX_weier_deg 320
get_xi_1 330
set_gam 340
chk_ell_real 440
Flxn_translate1 540
ber_cyc5 580
Flx_divcheck 640
lam_chi_xi 650
set_minpol 675
FlxqX_xi_conj 690
deg_trunc 755
set_C 810
Flx_weier_deg 1130
xi_conj_l 1195
srh_pol 2160
imag_cyc_lam 2330
cyc_real_ll 3675
get_e_chi_ll 3675
srh_x 6425
pclgp_cyc_imag 7200
pclgp_cyc_real 7260
zx_ber_num 9390
get_chi 9585
xi_conj_s 9855
Flx_ber_den 10350
lam_chi_ber 10360
Flx_red_inplace 12210
K_get_g 12216
K_get_H 12406
K_get_h 12446
Flv_extgcd 13425
subgp2ary 13425
zncharlift 13425
srh_1 13545
Flv_FlvV_factorback 13660
Flx_ber_conj 15540
K_get_nconj 16900
ZX_ber_conj 18755
ZX_ber_den 18755
cyc_imag 18810
cyc_real_ss 18985
_get_s 20280
_get_H 21991
_get_h 22031
cyc_real_pre 25065
get_e_chi 25611
Flxq_xi_conj 27890
pol_zero 38045
_get_g 38541
K_get_dchi 42366
K_get_f 59261
K_get_d 80541
_get_f 85586
_get_d 127146

Generated by: LCOV version 1.16