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 - lll.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 30316-0578a48613) Lines: 1335 1641 81.4 %
Date: 2025-06-03 09:18:42 Functions: 125 130 96.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Babai 0
Babai_dpe 4585520
Babai_fast 29992131
Babai_heuristic 288670
GS_extraprec 4688854
REDgen 196
RgM_Cholesky_dynprec 2967
RgM_flip 34918
RgM_flop 0
RgM_is_square_mat 45828
ZC_to_RC 15745
ZM2_lll_norms 4700699
ZM_flatter 618309
ZM_flatter_rank 616295
ZM_flattergram 961
ZM_flattergram_rank 961
ZM_is_knapsack 605902
ZM_is_lower 1182167
ZM_is_upper 4177809
ZM_lll_norms 6953888
ZM_to_RM 4144
absrsmall 696359
absrsmall2 401359
addmuliu2n 4082421
addmuliu642n 667795
addmuliu64_inplace 9532506
addmulziu 4577314
addmulzu2n 271563
addzi 17775886
affdbldpe 3135360
affdpe 25565636
affidpe 20520274
affii_or_copy_gc 1388069
cget_dblmat 8272573
cget_dblvec 34474765
cget_dpemat 3135367
cget_dpevec 13039713
condition_bound 4688854
dbg_flatter 0
dbg_flattergram 0
dbldotproduct 117547985
dbldotsquare 2439742
dblrotate 34384733
do_SWAPgen 196
dpeM_diagonal_shallow 20168
dpe_abscmp 14396027
dpe_abssmall 1388098
dpe_addmuluz 342689
dpe_addz 1942238
dpe_cmp 5193682
dpe_cmpmul 5193682
dpe_divz 13955264
dpe_muluz 799193
dpe_mulz 56709505
dpe_negz 244156
dpe_normalize 47894323
dpe_normalize0 108011235
dpe_submuluz 411956
dpe_submulz 51515998
dpe_subz 53546197
dperotate 651482
dpetor 93718
drop 1335582
flat 1335582
flattergram_i 2967
fplll 0
fplll_dpe 1567682
fplll_fast 2068146
fplll_flatter 617256
fplll_heuristic 4144
gc_lll 4733
get_gaussred 44320
get_gramschmidt 1082361
gramschmidt_dynprec 2671161
gramschmidt_upper 1336
gsisinv 5148675
incrementalGSgen 168
itodbl_exp 161583290
kerint 42
kerint0 70
lll 1174816
lll_finish 2128574
lll_trivial 770470
lllall 36699
lllallgen 168
lllfp 5268236
lllgen 42
lllgram 9089
lllgramallgen 168
lllgramgen 42
lllgramint 36439
lllgramkerim 35
lllgramkerimgen 42
lllint 183
lllkerim 35
lllkerimgen 42
matkerint0 28
mpabscmp 4063437
mulshift 317352
nbits2prec64 7413853
pari_rint 10707384
potential 1335582
pslg 504
qflll0 301
qflllgram 63
qflllgram0 245
realdotproduct 1182991
realsqrdotproduct 197241
rotate 31716650
rotateG 442790
rotateG_fast 11461603
setG2_fast 16889149
setG2_heuristic 187538
setG_fast 22443170
setG_heuristic 205419
set_line 24677857
sizered 1335582
spread 5805251
submuliu2n 4173631
submuliu642n 683874
submuliu64_inplace 9584977
submulshift 1499893
submulziu 5920091
submulzu2n 262549
subzi 18517651
truncexpo 12138
u64toi 19801357
u64toineg 667795
update_alpha 11904530
vectail_inplace 2054492

Generated by: LCOV version 1.16