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 30622-caa25a75db) Lines: 1614 1977 81.6 %
Date: 2026-01-22 09:18:00 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 7
FpXQX_ddf_raw 7
FpXQX_factor_squarefree 7
FpXQX_edf 8
err_Flxq 14
sqf_to_fact 14
FpXQX_factor_Shoup 22
FpXQX_edf_rec 23
factormodDDF 28
FpM_Frobenius_pow 35
factormodSQF 35
F2xqX_ddf_init 42
F2xqX_degfact 42
FlxqX_ddf_i 42
FlxqX_degfact 42
FlxqX_factor_squarefree_pre 42
FpXQX_degfact 42
FpXQX_degfact_raw 42
FpXQX_factor_2 43
FpXQX_ddf_i 49
F2xqX_ispower 56
FpX_factorff_i 63
FpXQX_ddf_Shoup 71
FpXQX_roots_ddf 83
F2xqX_ddf_i 91
FlxqX_ispower 98
FpXQX_ispower 98
F2xqX_factor 133
FlxqX_edf 141
FlxqX_nbfact_by_degree 147
F2xqX_edf_simple 168
FpXQX_factor_Cantor 177
FpX_FpM_FpC_eval 182
FpX_intersect_ker 182
FlxqX_factor 187
FpXQX_ddf_degree 187
to_Fq_fact 189
FpXQX_factor_Yun 210
FqX_ispower 210
to_FqC 224
FpXQXQ_halfFrobenius 238
F2xqX_factor_Shoup 250
to_Fq_pol 252
FlxqX_ddf_degree 268
F2xqX_ddf_Shoup 292
FpX_rootsff_i 308
FpX_factorgalois 322
FpX_ffintersect 322
FlxqX_factor_Shoup 333
FlxqX_edf_rec 339
RgX_to_FFX 350
FlxqX_edf_simple 357
FpXQX_Frobenius 388
Flm_Frobenius_pow 399
F2x_factorff_i 401
FlxqXQ_halfFrobenius 470
FpXQXQ_Frobenius 493
FlxqX_ddf_Shoup 522
FE_concat 546
F2xqX_factor_2 573
FlxqX_invFrobenius 574
FpXQ_ffisom_inv 588
FlxqX_Frobenius_deflate 637
FlxqX_Frobenius 678
FlxqX_factor_2 701
FpXQX_quad_roots 838
factmod 910
FpXQX_roots_split 929
FpXQXQ_halfFrobenius_i 1198
F2xqX_factor_Cantor 1259
FpXQX_nbroots 1680
FpXQX_split_part 1734
FpXQX_roots_edf 1895
FpXQX_easyroots 2578
isabsolutepol 2663
FpX_ffisom 2683
Flx_ffisom 2725
Flxq_ffisom_inv_pre 2725
to_Fq 4851
Flx_nbfactff 7055
FlxqX_nbfact 7055
simpleff_to_nbfact 7055
FlxqX_nbroots 7317
FpXQX_is_squarefree 8897
FlxqX_split_part 9035
F2xqX_Frobenius_deflate 9247
FlxqX_roots_split 9360
FlxqX_Frobenius_pre 9902
FlxqX_is_squarefree 10660
Flx_factorff_i 10812
FlxqX_factor_Cantor 11463
F2xqX_quad_roots 11542
FlxqXQ_halfFrobenius_i 12091
FpXQX_factor 12579
FpXQX_factor_i 12579
FlxqX_quad_roots 14469
F2x_rootsff_i 16519
F2xX_to_F2x 16920
FpXQX_roots 24404
FpXQX_roots_i 24404
FpX_factorff_irred 28344
Flx_rootsff_i 29948
Flx_intersect_ker 34364
Flx_Flm_Flc_eval 35388
Flx_factorgalois 35884
Flx_ffintersect_pre 38623
FlxqX_roots 46483
simplefactmod 47872
factormod0 48348
ff_parse_Tp 49412
F2xqX_roots_edf 49889
FlxqX_roots_edf 53226
FlxqX_factor_squarefree_i 59908
FlxqX_roots_ddf 63868
FlxqX_roots_i 66445
FlxqXQ_Frobenius 69275
F2xqXQ_Frobenius 70439
F2xqX_factor_squarefree 71202
F2xqX_roots 71295
F2xqX_roots_i 75137
F2xqX_roots_ddf 80787
Flx_factorff_irred 102230
polrootsmod 103677
FqX_nbroots 123004
factmod_init 152522
FlxqX_easyroots 183532
F2xqX_easyroots 205806

Generated by: LCOV version 1.16