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.0 lcov report (development 29804-254f602fce) Lines: 1208 1260 95.9 %
Date: 2024-12-18 09:08:59 Functions: 94 97 96.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
BSGS_pre 1820
Flxq_elldivpol34 1522
Flxq_elldivpolmod 390
Flxq_elldivpolmod_init 761
Flxq_find_eigen_Frobenius 371
Flxq_find_eigen_value_power 371
Flxq_rhs 1132
Flxq_study_eqn 678
FpXQ_elldivpol 0
Fp_ellcard_SEA 973
Fp_elldivpol 0
Fp_study_eqn 8988
FqX_homogenous_div 1295
FqX_homogenous_eval 6181
FqX_invlift1 19411
FqX_invsqrtlift1 19411
FqX_mulhigh 38822
FqX_mulhigh_i 38822
FqX_numer_isog_abscissa 1540
FqX_shift 164381
Fq_ellcard_CM 14
Fq_ellcard_SEA 1064
Fq_elldivpol2 1540
Fq_elldivpol2d 1540
Fq_elldivpol34 21102
Fq_elldivpolmod 4851
Fq_elldivpolmod_close 6461
Fq_elldivpolmod_init 10551
Fq_ellj 2604
Fq_ellyn 24451
Fq_find_eigen_Frobenius 6090
Fq_find_eigen_value_power 5586
Fq_polmodular_eval 70
Fq_study_eqn 9989
Fq_to_Flx 122
RgXY_deflatex 168
ZqX_integ2Xn 26537
ZqXn_WNewton 7126
Zq_Weierstrass 7126
Zq_div 98441
Zq_divexact 14
Zq_divu_safe 120204
Zq_ellj 2688
Zq_inv 1036
Zq_pval 14
Zq_sqrt 0
a4a6t 8890
a4a6t_from_J 49
add_atkin 4109
champion 1015
cmp_atkin 17276
compute_diff 1820
compute_u 6573
corr 98
cost 459375
divpol 188048
divpol_f2 145208
divpol_ff 88214
divpol_free 11312
divpolmod_init 11312
ellmodulareqn 35
find_CM 14
find_eigen_value_oneroot 504
find_eigen_value_power 5957
find_isogenous 7511
find_isogenous_from_Atkin 2576
find_isogenous_from_J 49
find_isogenous_from_canonical 4879
find_kernel 8939
find_kernel_power 1540
find_trace 10003
find_trace_Atkin 4711
find_trace_Elkies_power 5208
find_trace_lp1_roots 70
find_trace_one_root 539
get_FqE_group 980
get_bound_bsgs 1015
get_lgatkin 1925
get_modular_eqn 10003
get_seadata 91
list_singular_discs 14
list_to_pol 9968
match_and_sort 966
meqn_j 11606
multiple_crt 1820
pari_get_seadata 324524
pari_set_seadata 326134
possible_traces 1820
rhs 17670
seadata_cache 10024
seadata_filename 91
seadata_parse 9968
separation 910
set_cost 182616
study_modular_eqn 10003
value 369894
vecpoints_to_vecx 14

Generated by: LCOV version 1.16