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-03-28 08:06:56 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 4623328
Babai_fast 29814959
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 4686223
ZM_flatter 628157
ZM_flatter_rank 626176
ZM_flattergram 1322
ZM_flattergram_rank 1322
ZM_is_knapsack 609822
ZM_is_lower 1191307
ZM_is_upper 4224551
ZM_lll_norms 6950134
ZM_to_RM 4254
absrsmall 883924
absrsmall2 469696
addmuliu2n 4106561
addmuliu642n 665952
addmuliu64_inplace 9641715
addmulziu 4599863
addmulzu2n 326940
addzi 17909821
affdbldpe 3150492
affdpe 25750267
affidpe 20661282
affii_or_copy_gc 1406346
cget_dblmat 8319875
cget_dblvec 34687645
cget_dpemat 3150489
cget_dpevec 13103990
dbldotproduct 116362835
dbldotsquare 2448607
dblrotate 34610403
do_SWAPgen 196
dpeM_diagonal_shallow 20028
dpe_abscmp 14490305
dpe_abssmall 1406355
dpe_addmuluz 343412
dpe_addz 1952827
dpe_cmp 5244402
dpe_cmpmul 5244396
dpe_divz 14053877
dpe_muluz 799433
dpe_mulz 56863713
dpe_negz 242901
dpe_normalize 47952488
dpe_normalize0 108272605
dpe_submuluz 408822
dpe_submulz 51619489
dpe_subz 53656176
dperotate 665602
dpetor 93409
drop 5081639
flat 1355239
flattergram_i 4057
fplll 0
fplll_dpe 1575248
fplll_fast 2079975
fplll_flatter 627498
fplll_heuristic 4254
gc_lll 4640
get_gaussred 49569
get_gramschmidt 1094076
gramschmidt_dynprec 2710470
gramschmidt_upper 1455
gsisinv 4183807
incrementalGSgen 168
itodbl_exp 160061674
kerint 42
kerint0 70
lll 1173382
lll_finish 2140520
lll_trivial 768773
lllall 56123
lllallgen 168
lllfp 5325565
lllgen 42
lllgram 8949
lllgramallgen 168
lllgramgen 42
lllgramint 41353
lllgramkerim 35
lllgramkerimgen 42
lllint 14693
lllkerim 35
lllkerimgen 42
matkerint0 28
mpabscmp 23088770
mulshift 440248
nbits2prec64 6489779
pari_rint 10934867
pslg 504
qflll0 301
qflllgram0 245
realdotproduct 1397760
realsqrdotproduct 186486
rotate 31961699
rotateG 447130
rotateG_fast 11536829
setG2_fast 16885747
setG2_heuristic 175753
setG_fast 22501471
setG_heuristic 198575
set_line 24740167
sizered 1355239
spread 1127147
submuliu2n 4225780
submuliu642n 688460
submuliu64_inplace 9732654
submulshift 2075086
submulziu 5907889
submulzu2n 320022
subzi 18624726
truncexpo 32828
u64toi 20062829
u64toineg 665952
update_alpha 11984015
vectail_inplace 2067435

Generated by: LCOV version 1.14