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 - FF.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30772-246cd0a587) Lines: 1339 1493 89.7 %
Date: 2026-03-28 09:27:57 Functions: 141 153 92.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F3x_equalm1 0
FFX_add 0
FFX_halfgcd 0
FFX_nbroots 0
FF_to_F2xq_i 0
FF_to_Flxq_i 0
Fp_cmp_1 0
FqV_to_FFV 0
FqX_to_FFX 0
RgC_is_FFC 0
RgM_is_FFM 0
Rg_is_FF 0
FFXQ_sqr 7
FFX_ddf 7
FFX_factor_squarefree 7
FF_ellmul 7
FF_issquare 7
FFV_roots_to_pol 14
FFXQ_inv 14
FF_ellcard_SEA 14
FFM_indexrank 21
FFX_extgcd 21
FFX_halfgcd_all 21
FFX_resultant 21
gc_gcdext 21
raw_to_FFXM 21
FF_charpoly 28
FF_conjvec 28
FF_norm 28
FF_trace 28
FFM_suppl 35
FFX_disc 35
FF_Frobenius 42
FF_equalm1 42
FFM_image 49
raw_to_FFXC 49
FFM_FFC_gauss 56
FF_order 56
FFM_FFC_invimage 63
FFM_det 63
FFM_gauss 63
fforder 63
FFM_rank 70
FFM_ker 77
FFXQ_minpoly 77
FFM_deplin 84
FFM_FFC_mul 91
FF_elllog 91
FF_elltatepairing 98
FFM_invimage 105
FFXQ_mul 105
FF_p 112
FF_elldata 119
FF_pow 122
FFX_degfact 126
FF_var 140
FFM_inv 147
FF_minpoly 154
FFX_ispower 168
FFX_preimagerel 168
FF_issquareall 189
FF_log 189
fflog 189
FFM_FFC_wrap 210
FF_ispower 210
FFM_wrap 308
FF_f 371
FF_primroot 406
ffprimroot 406
FFX_factor 441
raw_to_FFX_fact 448
Z_FF_div 462
FqM_to_FpXQM 476
FFX_rem 574
FF_gen 770
FFX_preimage 966
FqV_to_FpXQV 970
FFX_preimage_i 1029
FF_Q_add 1337
FqM_to_FFM 1715
FpXQ_ell_to_a4a6 1726
FF_ellorder 1764
FF_map 1785
FFX_zero 1816
FF_sqrtn 2205
FFX_sqr 2499
FFX_gcd 2723
FF_Z_Z_muldiv 3234
FqC_to_FpXQC 3436
ffgen 3439
FqC_to_FFC 3731
FFM_mul 4494
FFM_FFM_wrap 4662
raw_to_FFM 4844
FF_ellweilpairing 4998
FF_zero 5281
FF_sqrt 7161
Tp_to_FF 8225
p_to_FF 9765
FFM_to_raw 9968
FF_inv 13233
FF_ellgens 18116
to_FFE_vec 18116
FF_to_FpXQ 18973
FF_equal1 25452
FF_ellgroup 26117
FF_elltwist 27188
FF_1 28462
F3xq_ell_to_a4a6 31535
FFC_to_raw 44289
F2xq_ell_to_a4a6 45853
Flxq_ell_to_a4a6 73853
FF_q 81900
FF_neg_i 85499
FF_ellcard 103582
FFX_roots 103670
FFX_mul 103959
FFX_wrap2 107277
raw_to_FFX 110298
FF_ellinit 121313
raw_to_FFC 124397
Fq_to_FF 143738
FF_to_FpXQ_i 172802
ffrandom 184492
FF_ellrandom 245651
FF_equal 255752
to_FFE 266245
FFX_to_raw 323131
FF_mod 415912
Z_to_raw 431263
FF_to_F2xq 548895
FF_to_Flxq 602956
rawFq_to_FF 669209
FF_Z_add 1365243
Rg_to_raw 2217756
FF_neg 2296135
FF_div 2460925
FF_sqr 2971090
mkFF_i 3118419
FF_p_i 3148234
_mkFF_i 3347656
FF_mul2n 3840774
FF_Z_mul 3944959
FF_sub 7923098
FF_equal0 11509191
FF_mul 25751465
FF_add 33666061
_checkFF 69801738
FF_samechar 73582048
FF_samefield 73582048
_mkFF 84467834
_initFF 84704004
_getFF 85981905

Generated by: LCOV version 1.16