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 - FpXQX_factor.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30702-bddb8d6928) Lines: 1614 1977 81.6 %
Date: 2026-02-23 02:23:56 Functions: 127 157 80.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2xqX_Frobenius 0
F2xqX_ddf 0
F2xqX_nbroots 0
F2xqX_split_part 0
Flx_ffintersect 0
Flx_rootsff 0
FlxqX_Berlekamp_i 0
FlxqX_Berlekamp_ker_i 0
FlxqX_ddf 0
FlxqX_factor_squarefree 0
FlxqX_nbfact_Frobenius 0
FlxqX_split_Berlekamp 0
Flxq_ffisom_inv 0
FpXQX_Berlekamp_i 0
FpXQX_Berlekamp_ker_i 0
FpXQX_edf_simple 0
FpXQX_factor_Berlekamp 0
FpXQX_factor_Berlekamp_i 0
FpXQX_nbfact 0
FpXQX_nbfact_Frobenius 0
FpXQX_roots_mult 0
FpXQX_split_Berlekamp 0
FpX_factorff 0
FpX_nbfactff 0
FpX_rootsff 0
FqX_nbfact 0
err_FpXQ 0
factorff 0
polrootsff 0
rootmod0 0
FpXQX_ddf 6
FpXQX_ddf_raw 6
FpXQX_factor_squarefree 6
FpXQX_edf 7
err_Flxq 12
sqf_to_fact 12
FpXQX_factor_Shoup 19
FpXQX_edf_rec 20
factormodDDF 24
FpM_Frobenius_pow 30
factormodSQF 30
F2xqX_ddf_init 36
F2xqX_degfact 36
FlxqX_ddf_i 36
FlxqX_degfact 36
FlxqX_factor_squarefree_pre 36
FpXQX_degfact 36
FpXQX_degfact_raw 36
FpXQX_factor_2 37
FpXQX_ddf_i 42
F2xqX_ispower 48
FpX_factorff_i 54
FpXQX_ddf_Shoup 61
FpXQX_roots_ddf 72
F2xqX_ddf_i 78
FlxqX_ispower 84
FpXQX_ispower 84
FlxqX_nbfact_by_degree 105
F2xqX_factor 114
FlxqX_edf 125
F2xqX_edf_simple 141
FpXQX_factor_Cantor 152
FpX_FpM_FpC_eval 156
FpX_intersect_ker 156
FlxqX_factor 160
FpXQX_ddf_degree 161
to_Fq_fact 161
FqX_ispower 180
FpXQX_factor_Yun 181
to_FqC 192
FpXQXQ_halfFrobenius 206
F2xqX_factor_Shoup 212
to_Fq_pol 213
FlxqX_ddf_degree 229
F2xqX_ddf_Shoup 248
FpX_rootsff_i 264
FpX_factorgalois 276
FpX_ffintersect 276
FlxqX_factor_Shoup 286
RgX_to_FFX 300
FlxqX_edf_simple 306
FlxqX_edf_rec 310
FpXQX_Frobenius 336
Flm_Frobenius_pow 342
F2x_factorff_i 357
FlxqXQ_halfFrobenius 400
FlxqX_ddf_Shoup 427
FpXQXQ_Frobenius 427
FE_concat 465
FpXQ_ffisom_inv 486
F2xqX_factor_2 488
FlxqX_invFrobenius 491
FlxqX_Frobenius_deflate 545
FlxqX_Frobenius 578
FlxqX_factor_2 605
FpXQX_quad_roots 722
factmod 789
FpXQX_roots_split 797
FpXQXQ_halfFrobenius_i 1033
F2xqX_factor_Cantor 1088
FpXQX_nbroots 1440
FpXQX_split_part 1488
FpXQX_roots_edf 1626
FpX_ffisom 2204
FpXQX_easyroots 2217
Flx_ffisom 2240
Flxq_ffisom_inv_pre 2240
isabsolutepol 2290
to_Fq 4152
Flx_nbfactff 5474
FlxqX_nbfact 5474
simpleff_to_nbfact 5474
FlxqX_nbroots 6298
FpXQX_is_squarefree 7626
FlxqX_split_part 7772
F2xqX_Frobenius_deflate 7920
FlxqX_roots_split 8035
FlxqX_Frobenius_pre 8491
FlxqX_is_squarefree 8568
F2xqX_quad_roots 9890
Flx_factorff_i 10157
FlxqXQ_halfFrobenius_i 10374
FlxqX_factor_Cantor 10704
FpXQX_factor 11670
FpXQX_factor_i 11670
FlxqX_quad_roots 12394
F2x_rootsff_i 14157
F2xX_to_F2x 14514
FpXQX_roots 20910
FpXQX_roots_i 20910
Flx_rootsff_i 25671
FpX_factorff_irred 28117
Flx_intersect_ker 33218
Flx_Flm_Flc_eval 34107
Flx_factorgalois 34524
Flx_ffintersect_pre 36776
simplefactmod 38435
factormod0 38841
ff_parse_Tp 39757
FlxqX_roots 39840
F2xqX_roots_edf 42762
FlxqX_roots_edf 45600
FlxqX_factor_squarefree_i 51341
FlxqX_roots_ddf 54738
FlxqX_roots_i 56942
FlxqXQ_Frobenius 59375
F2xqXQ_Frobenius 60374
F2xqX_factor_squarefree 61027
F2xqX_roots 61110
F2xqX_roots_i 64399
F2xqX_roots_ddf 69242
polrootsmod 88865
Flx_factorff_irred 94807
FqX_nbroots 105432
factmod_init 128143
FlxqX_easyroots 157275
F2xqX_easyroots 176397

Generated by: LCOV version 1.16