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-18 08:06:58 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 4623020
Babai_fast 29810747
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 4685352
ZM_flatter 628038
ZM_flatter_rank 626057
ZM_flattergram 1322
ZM_flattergram_rank 1322
ZM_is_knapsack 609935
ZM_is_lower 1191209
ZM_is_upper 4223950
ZM_lll_norms 6949355
ZM_to_RM 4254
absrsmall 883924
absrsmall2 469696
addmuliu2n 4101898
addmuliu642n 665952
addmuliu64_inplace 9641715
addmulziu 4599883
addmulzu2n 326940
addzi 17909830
affdbldpe 3150299
affdpe 25749013
affidpe 20660204
affii_or_copy_gc 1406340
cget_dblmat 8319937
cget_dblvec 34688002
cget_dpemat 3150297
cget_dpevec 13103533
dbldotproduct 116338823
dbldotsquare 2448849
dblrotate 34605148
do_SWAPgen 196
dpeM_diagonal_shallow 20028
dpe_abscmp 14489442
dpe_abssmall 1406355
dpe_addmuluz 343411
dpe_addz 1952827
dpe_cmp 5244082
dpe_cmpmul 5244075
dpe_divz 14053010
dpe_muluz 799435
dpe_mulz 56860128
dpe_negz 242904
dpe_normalize 47949397
dpe_normalize0 108265483
dpe_submuluz 408825
dpe_submulz 51616204
dpe_subz 53652892
dperotate 665602
dpetor 93410
drop 5080728
flat 1354987
flattergram_i 4057
fplll 0
fplll_dpe 1575151
fplll_fast 2079987
fplll_flatter 627379
fplll_heuristic 4254
gc_lll 4640
get_gaussred 49569
get_gramschmidt 1093977
gramschmidt_dynprec 2709972
gramschmidt_upper 1455
gsisinv 4183180
incrementalGSgen 168
itodbl_exp 159995272
kerint 42
kerint0 70
lll 1173382
lll_finish 2140524
lll_trivial 768772
lllall 56123
lllallgen 168
lllfp 5324808
lllgen 42
lllgram 8949
lllgramallgen 168
lllgramgen 42
lllgramint 41353
lllgramkerim 35
lllgramkerimgen 42
lllint 14693
lllkerim 35
lllkerimgen 42
matkerint0 28
mpabscmp 23086468
mulshift 440248
nbits2prec64 6488576
pari_rint 10934557
pslg 504
qflll0 301
qflllgram0 245
realdotproduct 1397760
realsqrdotproduct 186486
rotate 31956528
rotateG 447130
rotateG_fast 11535074
setG2_fast 16883055
setG2_heuristic 175753
setG_fast 22498595
setG_heuristic 198575
set_line 24736899
sizered 1354987
spread 1127285
submuliu2n 4221352
submuliu642n 688460
submuliu64_inplace 9732654
submulshift 2075086
submulziu 5907964
submulzu2n 320022
subzi 18624864
truncexpo 32828
u64toi 20062829
u64toineg 665952
update_alpha 11982291
vectail_inplace 2067438

Generated by: LCOV version 1.14