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

Generated by: LCOV version 2.0-1