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) Coverage Total Hit
Test: PARI/GP v2.18.1 lcov report (development 31042-0fbe168e69) Lines: 82.6 % 1977 1633
Test Date: 2026-07-23 17:04:59 Functions: 82.2 % 157 129
Legend: Lines:     hit not hit

Function Name Sort by function name Hit count Sort by function hit count
F2xX_to_F2x 17067
F2x_factorff_i 420
F2x_rootsff_i 16647
F2xqXQ_Frobenius 70565
F2xqX_Frobenius 0
F2xqX_Frobenius_deflate 9247
F2xqX_ddf 0
F2xqX_ddf_Shoup 294
F2xqX_ddf_i 91
F2xqX_ddf_init 42
F2xqX_degfact 42
F2xqX_easyroots 206417
F2xqX_edf_simple 168
F2xqX_factor 133
F2xqX_factor_2 574
F2xqX_factor_Cantor 1281
F2xqX_factor_Shoup 252
F2xqX_factor_squarefree 71328
F2xqX_ispower 56
F2xqX_nbroots 0
F2xqX_quad_roots 11683
F2xqX_roots 71391
F2xqX_roots_ddf 80911
F2xqX_roots_edf 50041
F2xqX_roots_i 75507
F2xqX_split_part 0
FE_concat 553
Flm_Frobenius_pow 399
Flx_Flm_Flc_eval 40340
Flx_factorff_i 12019
Flx_factorff_irred 111831
Flx_factorgalois 40514
Flx_ffintersect 0
Flx_ffintersect_pre 43450
Flx_ffisom 2922
Flx_intersect_ker 39264
Flx_nbfactff 7084
Flx_rootsff 0
Flx_rootsff_i 30099
FlxqXQ_Frobenius 70052
FlxqXQ_halfFrobenius 414
FlxqXQ_halfFrobenius_i 12110
FlxqX_Berlekamp_i 0
FlxqX_Berlekamp_ker_i 0
FlxqX_Frobenius 594
FlxqX_Frobenius_deflate 658
FlxqX_Frobenius_pre 10691
FlxqX_ddf 0
FlxqX_ddf_Shoup 531
FlxqX_ddf_degree 233
FlxqX_ddf_i 42
FlxqX_degfact 42
FlxqX_easyroots 183450
FlxqX_edf 146
FlxqX_edf_rec 362
FlxqX_edf_simple 357
FlxqX_factor 187
FlxqX_factor_2 720
FlxqX_factor_Cantor 12675
FlxqX_factor_Shoup 342
FlxqX_factor_squarefree 35
FlxqX_factor_squarefree_i 59927
FlxqX_factor_squarefree_pre 77
FlxqX_invFrobenius 595
FlxqX_is_squarefree 11562
FlxqX_ispower 98
FlxqX_nbfact 7084
FlxqX_nbfact_Frobenius 0
FlxqX_nbfact_by_degree 147
FlxqX_nbroots 8188
FlxqX_quad_roots 14427
FlxqX_roots 46434
FlxqX_roots_ddf 63847
FlxqX_roots_edf 53213
FlxqX_roots_i 66432
FlxqX_roots_split 9387
FlxqX_split_Berlekamp 0
FlxqX_split_part 9908
Flxq_ffisom_inv 0
Flxq_ffisom_inv_pre 2922
FpM_Frobenius_pow 35
FpXQXQ_Frobenius 493
FpXQXQ_halfFrobenius 217
FpXQXQ_halfFrobenius_i 1184
FpXQX_Berlekamp_i 0
FpXQX_Berlekamp_ker_i 0
FpXQX_Frobenius 388
FpXQX_ddf 7
FpXQX_ddf_Shoup 71
FpXQX_ddf_degree 187
FpXQX_ddf_i 49
FpXQX_ddf_raw 7
FpXQX_degfact 42
FpXQX_degfact_raw 42
FpXQX_easyroots 2564
FpXQX_edf 8
FpXQX_edf_rec 23
FpXQX_edf_simple 0
FpXQX_factor 13813
FpXQX_factor_2 43
FpXQX_factor_Berlekamp 0
FpXQX_factor_Berlekamp_i 0
FpXQX_factor_Cantor 177
FpXQX_factor_Shoup 22
FpXQX_factor_Yun 210
FpXQX_factor_i 13813
FpXQX_factor_squarefree 42
FpXQX_is_squarefree 8813
FpXQX_ispower 98
FpXQX_nbfact 0
FpXQX_nbfact_Frobenius 0
FpXQX_nbroots 1673
FpXQX_quad_roots 845
FpXQX_roots 24714
FpXQX_roots_ddf 83
FpXQX_roots_edf 1881
FpXQX_roots_i 24714
FpXQX_roots_mult 35
FpXQX_roots_split 922
FpXQX_split_Berlekamp 0
FpXQX_split_part 1736
FpXQ_ffisom_inv 588
FpX_FpM_FpC_eval 182
FpX_factorff 0
FpX_factorff_i 63
FpX_factorff_irred 32879
FpX_factorgalois 322
FpX_ffintersect 322
FpX_ffisom 2880
FpX_intersect_ker 182
FpX_nbfactff 0
FpX_rootsff 0
FpX_rootsff_i 308
FqX_ispower 210
FqX_nbfact 0
FqX_nbroots 122997
RgX_to_FFX 350
err_Flxq 14
err_FpXQ 0
factmod 924
factmod_init 152639
factorff 0
factormod0 48451
factormodDDF 28
factormodSQF 35
ff_parse_Tp 49529
isabsolutepol 2649
polrootsff 0
polrootsmod 103677
rootmod0 0
simplefactmod 47975
simpleff_to_nbfact 7084
sqf_to_fact 14
to_Fq 4851
to_FqC 224
to_Fq_fact 189
to_Fq_pol 252

Generated by: LCOV version 2.0-1