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 - FlxqE.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30702-bddb8d6928) Lines: 866 926 93.5 %
Date: 2026-02-23 02:23:56 Functions: 86 91 94.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FlxqE_add 0
FlxqE_dbl 0
FlxqE_sub 0
Flxq_ellcard_Kedlaya 0
Flxq_ellj_to_a4a6 0
FlxqE_weilpairing 18
Flxq_ellcard_Harley 18
get_trace_Robert 18
FlxqE_log 42
get_FlxqE_group 52
FlxqE_tatepairing 54
Fl_ellheightabovefloor 116
Fl_ellj_trace 276
Fl_end13 276
RgX_is_monic_ZX 294
polisclass 299
Flxq_ffellcard 389
Flxq_ellcard_naive 774
FlxqE_neg 1021
FlxqE_order 1260
FlxqE_Miller_add 3582
FlxqE_chord_update 3582
Flxq_ellcard_Shanks 4092
Flxq_ellpoint 4744
_FlxqE_order 4744
_FlxqE_order_multiple 4744
F3xq_ellcard_naive 5304
FlxqE_neg_i 5795
_FlxqE_sub 5795
_teich_lin 7674
F3xq_ellcardj 7896
Teichmuller_lift 8772
closest_lift 8836
ZpXQ_sqrtnorm_pcyc 9516
Flxq_ellcard_Satoh 9558
Flxq_kronecker 9577
ZpXQ_norm_pcyc 9720
ZpXQ_sqrtnorm 11958
Flxq_ellgens 12317
_FlxqE_pairorder 12462
FlxqE_weilpairing_pre 12480
Flxq_ellcardj 13566
FlxqE_Miller 15174
_teich_invd 17622
_teich_iter 17622
F3xq_ellcard 17994
Flxq_ellgroup 19109
ZpXQ_norm_sqr 19470
Flxq_elltwist 19572
nonsquare_Flxq 19572
_lift_lin 20352
Flxq_ellcard_Kohel 21456
fill_pols 21456
get_Kohel_polynomials 21456
getc2 21456
get_norm 21474
lift_isogeny 21474
zx_is_pcyc 21474
FlxqE_Miller_line 25062
_teich_invl 25296
ZpXQ_norm_mul 28134
FlxqE_Miller_dbl 40236
FlxqE_tangent_update 40236
Flxq_ellj 49125
_lift_invd 51714
_lift_iter 51714
Flxq_ellcard 53721
Flxq_ellcard_i 53721
FlxqE_mul 54914
Flx_next 55170
Flx_renormalize_ip 55170
FlxqE_changepointinv 56402
RgE_to_FlxqE 56402
FlxqE_vert 59076
_FlxqE_rand 63603
RgX_circular_shallow 65358
ZpXQ_frob_cyc 65358
random_F3xqE 65940
random_FlxqE 65947
_lift_invl 72066
ZpXQ_frob 97380
FpXC_powderiv 103464
random_FlxqE_pre 129550
FlxqE_changepoint 135272
FpM_FpXQV_bilinear 155178
FpM_FpXV_bilinear 155178
_FlxqE_mul 238123
_FlxqE_add 580882
FlxqE_add_slope 589047
_FlxqE_dbl 1273756
FlxqE_dbl_slope 1300112

Generated by: LCOV version 1.16