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) Coverage Total Hit
Test: PARI/GP v2.18.1 lcov report (development 31042-0fbe168e69) Lines: 95.2 % 1254 1194
Test Date: 2026-07-23 17:04:59 Functions: 94.7 % 95 90
Legend: Lines:     hit not hit

Function Name Sort by function name Hit count Sort by function hit count
FpXQ_elldivpol 0
Fp_elldivpol 0
Zq_divexact 0
Zq_pval 0
Zq_sqrt 0
Fq_ellcard_CM 14
find_CM 14
list_singular_discs 14
vecpoints_to_vecx 14
ellmodulareqn 35
a4a6t_from_J 49
find_isogenous_from_J 49
Fq_polmodular_eval 70
find_trace_lp1_roots 70
get_seadata 91
seadata_filename 91
corr 98
Fq_to_Flx 108
RgXY_deflatex 168
Flxq_find_eigen_Frobenius 336
Flxq_find_eigen_value_power 336
Flxq_elldivpolmod 348
find_eigen_value_oneroot 483
find_trace_one_root 518
Flxq_study_eqn 594
Flxq_elldivpolmod_init 684
Zq_inv 763
separation 903
match_and_sort 959
Fp_ellcard_SEA 973
get_FqE_group 973
champion 1008
get_bound_bsgs 1008
Flxq_rhs 1020
Fq_ellcard_SEA 1057
FqX_homogenous_div 1288
Flxq_elldivpol34 1368
FqX_numer_isog_abscissa 1519
Fq_elldivpol2 1519
Fq_elldivpol2d 1519
find_kernel_power 1519
BSGS_pre 1806
compute_diff 1806
multiple_crt 1806
possible_traces 1806
get_lgatkin 1911
find_isogenous_from_Atkin 2555
Fq_ellj 2576
Zq_ellj 2646
add_atkin 4081
find_trace_Atkin 4676
Fq_elldivpolmod 4809
find_isogenous_from_canonical 4830
find_trace_Elkies_power 5159
Fq_find_eigen_value_power 5586
find_eigen_value_power 5922
Fq_find_eigen_Frobenius 6069
FqX_homogenous_eval 6139
compute_u 6531
ZqXn_WNewton 7070
Zq_Weierstrass 7070
find_isogenous 7441
a4a6t 8820
find_kernel 8869
Fp_study_eqn 8988
list_to_pol 9884
seadata_parse 9884
Fq_study_eqn 9905
find_trace 9919
get_modular_eqn 9919
study_modular_eqn 9919
seadata_cache 9940
Fq_elldivpolmod_init 10530
divpolmod_init 11214
meqn_j 11480
cmp_atkin 17157
rhs 17621
FqX_invlift1 19250
FqX_invsqrtlift1 19250
Fq_elldivpol34 21060
Fq_ellyn 24283
ZqX_integ2Xn 26320
FqX_mulhigh 38500
FqX_mulhigh_i 38500
divpol_ff 86870
Zq_div 97580
Zq_divu_safe 119238
divpol_f2 143465
FqX_shift 163030
set_cost 182469
divpol 185906
value 369607
pari_get_seadata 376653
pari_set_seadata 378548
cost 458990

Generated by: LCOV version 2.0-1