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-04-19 08:07:09 Functions: 121 124 97.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Babai 0
RgM_flop 0
fplll 0
matkerint0 28
lllgramkerim 35
lllkerim 35
kerint 42
lllgen 42
lllgramgen 42
lllgramkerimgen 42
lllkerimgen 42
kerint0 70
incrementalGSgen 168
lllallgen 168
lllgramallgen 168
REDgen 196
do_SWAPgen 196
qflllgram0 245
qflll0 301
pslg 504
ZM_flattergram 1322
ZM_flattergram_rank 1322
gramschmidt_upper 1455
RgM_Cholesky_dynprec 4057
flattergram_i 4057
ZM_to_RM 4254
fplll_heuristic 4254
gc_lll 4640
lllgram 8949
lllint 14693
ZC_to_RC 16931
dpeM_diagonal_shallow 20028
truncexpo 32828
RgM_flip 34648
lllgramint 41353
get_gaussred 49570
RgM_is_square_mat 50537
lllall 56123
dpetor 93410
setG2_heuristic 175753
realsqrdotproduct 186486
setG_heuristic 198575
dpe_negz 242907
Babai_heuristic 285708
submulzu2n 320022
addmulzu2n 326940
dpe_addmuluz 343412
dpe_submuluz 408824
mulshift 440248
rotateG 447128
absrsmall2 469696
ZM_is_knapsack 609838
ZM_flatter_rank 625978
fplll_flatter 627300
ZM_flatter 627959
dperotate 665599
addmuliu642n 665952
u64toineg 665952
submuliu642n 688460
lll_trivial 768772
dpe_muluz 799432
absrsmall 883924
get_gramschmidt 1093862
spread 1127147
lll 1173380
ZM_is_lower 1191095
flat 1354845
sizered 1354846
realdotproduct 1397760
affii_or_copy_gc 1406331
dpe_abssmall 1406345
fplll_dpe 1575043
dpe_addz 1952820
vectail_inplace 2067235
submulshift 2075086
fplll_fast 2079783
lll_finish 2140319
dbldotsquare 2448647
gramschmidt_dynprec 2709690
affdbldpe 3150083
cget_dpemat 3150083
addmuliu2n 4102358
gsisinv 4182779
submuliu2n 4221973
ZM_is_upper 4223562
addmulziu 4599857
Babai_dpe 4622660
ZM2_lll_norms 4685029
drop 5080243
dpe_cmpmul 5243725
dpe_cmp 5243732
lllfp 5324386
submulziu 5907881
nbits2prec64 6487775
ZM_lll_norms 6948833
cget_dblmat 8319120
addmuliu64_inplace 9641715
submuliu64_inplace 9732654
pari_rint 10932890
rotateG_fast 11533224
update_alpha 11980410
cget_dpevec 13102559
dpe_divz 14052187
dpe_abscmp 14488563
setG2_fast 16880808
addzi 17909684
subzi 18624535
u64toi 20062829
affidpe 20658956
setG_fast 22495824
mpabscmp 23083891
set_line 24734088
affdpe 25747546
Babai_fast 29807581
rotate 31950970
dblrotate 34599604
cget_dblvec 34684288
dpe_normalize 47948310
dpe_submulz 51614693
dpe_subz 53651384
dpe_mulz 56858283
dpe_normalize0 108263057
dbldotproduct 116330733
itodbl_exp 159992271

Generated by: LCOV version 1.14