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

Generated by: LCOV version 1.16