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.16.2 lcov report (development 29115-f22e516b23) Lines: 1301 1607 81.0 %
Date: 2024-05-19 08:07:28 Functions: 121 124 97.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Babai 0
Babai_dpe 4622800
Babai_fast 29815065
Babai_heuristic 285708
REDgen 196
RgM_Cholesky_dynprec 4057
RgM_flip 34648
RgM_flop 0
RgM_is_square_mat 50537
ZC_to_RC 16931
ZM2_lll_norms 4684979
ZM_flatter 627919
ZM_flatter_rank 625938
ZM_flattergram 1322
ZM_flattergram_rank 1322
ZM_is_knapsack 609970
ZM_is_lower 1191117
ZM_is_upper 4223637
ZM_lll_norms 6948913
ZM_to_RM 4254
absrsmall 883924
absrsmall2 469696
addmuliu2n 4106003
addmuliu642n 665952
addmuliu64_inplace 9641715
addmulziu 4599862
addmulzu2n 326940
addzi 17909518
affdbldpe 3150121
affdpe 25748181
affidpe 20660055
affii_or_copy_gc 1406322
cget_dblmat 8319685
cget_dblvec 34688820
cget_dpemat 3150118
cget_dpevec 13103306
dbldotproduct 116362813
dbldotsquare 2449005
dblrotate 34607928
do_SWAPgen 196
dpeM_diagonal_shallow 20028
dpe_abscmp 14489336
dpe_abssmall 1406344
dpe_addmuluz 343412
dpe_addz 1952817
dpe_cmp 5243847
dpe_cmpmul 5243840
dpe_divz 14052910
dpe_muluz 799436
dpe_mulz 56861918
dpe_negz 242919
dpe_normalize 47951929
dpe_normalize0 108270870
dpe_submuluz 408825
dpe_submulz 51618248
dpe_subz 53654881
dperotate 665602
dpetor 93409
drop 5080305
flat 1354874
flattergram_i 4057
fplll 0
fplll_dpe 1575061
fplll_fast 2079930
fplll_flatter 627260
fplll_heuristic 4254
gc_lll 4640
get_gaussred 49570
get_gramschmidt 1093884
gramschmidt_dynprec 2709749
gramschmidt_upper 1455
gsisinv 4182901
incrementalGSgen 168
itodbl_exp 160048322
kerint 42
kerint0 70
lll 1173379
lll_finish 2140477
lll_trivial 768773
lllall 56123
lllallgen 168
lllfp 5324467
lllgen 42
lllgram 8949
lllgramallgen 168
lllgramgen 42
lllgramint 41353
lllgramkerim 35
lllgramkerimgen 42
lllint 14693
lllkerim 35
lllkerimgen 42
matkerint0 28
mpabscmp 23087472
mulshift 440248
nbits2prec64 6487870
pari_rint 10934389
pslg 504
qflll0 301
qflllgram0 245
realdotproduct 1397760
realsqrdotproduct 186486
rotate 31959289
rotateG 447130
rotateG_fast 11535988
setG2_fast 16885366
setG2_heuristic 175753
setG_fast 22501446
setG_heuristic 198575
set_line 24739783
sizered 1354875
spread 1127337
submuliu2n 4225482
submuliu642n 688460
submuliu64_inplace 9732654
submulshift 2075086
submulziu 5907952
submulzu2n 320022
subzi 18624562
truncexpo 32828
u64toi 20062829
u64toineg 665952
update_alpha 11983210
vectail_inplace 2067391

Generated by: LCOV version 1.14