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-25 08:08:21 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 93407
setG2_heuristic 175753
realsqrdotproduct 186486
setG_heuristic 198575
dpe_negz 242918
Babai_heuristic 285708
submulzu2n 320022
addmulzu2n 326940
dpe_addmuluz 343412
dpe_submuluz 408821
mulshift 440248
rotateG 447130
absrsmall2 469696
ZM_is_knapsack 609962
ZM_flatter_rank 625953
fplll_flatter 627275
ZM_flatter 627934
dperotate 665602
addmuliu642n 665952
u64toineg 665952
submuliu642n 688460
lll_trivial 768772
dpe_muluz 799432
absrsmall 883924
get_gramschmidt 1093856
spread 1127295
lll 1173382
ZM_is_lower 1191087
flat 1354786
sizered 1354786
realdotproduct 1397760
affii_or_copy_gc 1406314
dpe_abssmall 1406337
fplll_dpe 1575034
dpe_addz 1952821
vectail_inplace 2067362
submulshift 2075086
fplll_fast 2079897
lll_finish 2140450
dbldotsquare 2449012
gramschmidt_dynprec 2709569
affdbldpe 3150063
cget_dpemat 3150065
addmuliu2n 4102355
gsisinv 4182692
submuliu2n 4222284
ZM_is_upper 4223426
addmulziu 4599836
Babai_dpe 4622674
ZM2_lll_norms 4684720
drop 5080065
dpe_cmpmul 5243737
dpe_cmp 5243745
lllfp 5324205
submulziu 5907880
nbits2prec64 6487500
ZM_lll_norms 6948628
cget_dblmat 8319570
addmuliu64_inplace 9641715
submuliu64_inplace 9732654
pari_rint 10934148
rotateG_fast 11534502
update_alpha 11981709
cget_dpevec 13102991
dpe_divz 14052248
dpe_abscmp 14488700
setG2_fast 16882418
addzi 17909085
subzi 18624023
u64toi 20062829
affidpe 20659234
setG_fast 22497998
mpabscmp 23085142
set_line 24736243
affdpe 25747643
Babai_fast 29810165
rotate 31954777
dblrotate 34603397
cget_dblvec 34687368
dpe_normalize 47947987
dpe_submulz 51614492
dpe_subz 53651018
dpe_mulz 56858034
dpe_normalize0 108261965
dbldotproduct 116337740
itodbl_exp 159995811

Generated by: LCOV version 1.14