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 - ellsea.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30074-db9b3c0519) Lines: 1207 1260 95.8 %
Date: 2025-03-13 08:38:27 Functions: 93 97 95.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpXQ_elldivpol 0
Fp_elldivpol 0
Zq_sqrt 0
pari_get_seadata 0
Fq_ellcard_CM 12
Zq_divexact 12
Zq_pval 12
find_CM 12
list_singular_discs 12
vecpoints_to_vecx 12
ellmodulareqn 30
a4a6t_from_J 42
find_isogenous_from_J 42
Fq_polmodular_eval 60
find_trace_lp1_roots 60
get_seadata 78
seadata_filename 78
corr 84
Fq_to_Flx 104
RgXY_deflatex 144
Flxq_find_eigen_Frobenius 316
Flxq_find_eigen_value_power 316
Flxq_elldivpolmod 332
find_eigen_value_oneroot 432
find_trace_one_root 462
Flxq_study_eqn 578
Flxq_elldivpolmod_init 648
separation 780
match_and_sort 828
Fp_ellcard_SEA 834
get_FqE_group 840
champion 870
get_bound_bsgs 870
Zq_inv 888
Fq_ellcard_SEA 912
Flxq_rhs 964
FqX_homogenous_div 1110
Flxq_elldivpol34 1296
FqX_numer_isog_abscissa 1320
Fq_elldivpol2 1320
Fq_elldivpol2d 1320
find_kernel_power 1320
BSGS_pre 1560
compute_diff 1560
multiple_crt 1560
possible_traces 1560
pari_set_seadata 1628
get_lgatkin 1650
find_isogenous_from_Atkin 2208
Fq_ellj 2232
Zq_ellj 2304
add_atkin 3522
find_trace_Atkin 4038
Fq_elldivpolmod 4158
find_isogenous_from_canonical 4182
find_trace_Elkies_power 4464
Fq_find_eigen_value_power 4790
find_eigen_value_power 5106
Fq_find_eigen_Frobenius 5222
FqX_homogenous_eval 5298
Fq_elldivpolmod_close 5538
compute_u 5634
ZqXn_WNewton 6108
Zq_Weierstrass 6108
find_isogenous 6438
a4a6t 7620
find_kernel 7662
Fp_study_eqn 7704
list_to_pol 8544
seadata_parse 8544
Fq_study_eqn 8562
find_trace 8574
get_modular_eqn 8574
study_modular_eqn 8574
seadata_cache 8592
Fq_elldivpolmod_init 9048
divpol_free 9696
divpolmod_init 9696
meqn_j 9948
cmp_atkin 14808
rhs 15152
FqX_invlift1 16638
FqX_invsqrtlift1 16638
Fq_elldivpol34 18096
Fq_ellyn 20958
ZqX_integ2Xn 22746
FqX_mulhigh 33276
FqX_mulhigh_i 33276
divpol_ff 75612
Zq_div 84378
Zq_divu_safe 103032
divpol_f2 124464
FqX_shift 140898
set_cost 156528
divpol 161184
value 317052
cost 393750

Generated by: LCOV version 1.16