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-05 08:08:07 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 4622735
Babai_fast 29813538
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 4684890
ZM_flatter 627937
ZM_flatter_rank 625956
ZM_flattergram 1322
ZM_flattergram_rank 1322
ZM_is_knapsack 609887
ZM_is_lower 1191101
ZM_is_upper 4223505
ZM_lll_norms 6948740
ZM_to_RM 4254
absrsmall 883924
absrsmall2 469696
addmuliu2n 4106175
addmuliu642n 665952
addmuliu64_inplace 9641715
addmulziu 4599819
addmulzu2n 326940
addzi 17909807
affdbldpe 3150081
affdpe 25748116
affidpe 20659628
affii_or_copy_gc 1406330
cget_dblmat 8319330
cget_dblvec 34686259
cget_dpemat 3150081
cget_dpevec 13102783
dbldotproduct 116357017
dbldotsquare 2448733
dblrotate 34606515
do_SWAPgen 196
dpeM_diagonal_shallow 20028
dpe_abscmp 14489133
dpe_abssmall 1406345
dpe_addmuluz 343409
dpe_addz 1952819
dpe_cmp 5243801
dpe_cmpmul 5243788
dpe_divz 14052717
dpe_muluz 799432
dpe_mulz 56861475
dpe_negz 242895
dpe_normalize 47951317
dpe_normalize0 108269429
dpe_submuluz 408823
dpe_submulz 51617822
dpe_subz 53654441
dperotate 665602
dpetor 93410
drop 5080106
flat 1354818
flattergram_i 4057
fplll 0
fplll_dpe 1575042
fplll_fast 2079837
fplll_flatter 627278
fplll_heuristic 4254
gc_lll 4640
get_gaussred 49570
get_gramschmidt 1093869
gramschmidt_dynprec 2709635
gramschmidt_upper 1455
gsisinv 4182710
incrementalGSgen 168
itodbl_exp 160031519
kerint 42
kerint0 70
lll 1173380
lll_finish 2140381
lll_trivial 768774
lllall 56123
lllallgen 168
lllfp 5324306
lllgen 42
lllgram 8949
lllgramallgen 168
lllgramgen 42
lllgramint 41353
lllgramkerim 35
lllgramkerimgen 42
lllint 14693
lllkerim 35
lllkerimgen 42
matkerint0 28
mpabscmp 23085410
mulshift 440248
nbits2prec64 6487637
pari_rint 10933744
pslg 504
qflll0 301
qflllgram0 245
realdotproduct 1397760
realsqrdotproduct 186486
rotate 31957863
rotateG 447130
rotateG_fast 11535506
setG2_fast 16884394
setG2_heuristic 175753
setG_fast 22499951
setG_heuristic 198575
set_line 24738306
sizered 1354819
spread 1127229
submuliu2n 4225417
submuliu642n 688460
submuliu64_inplace 9732654
submulshift 2075086
submulziu 5907838
submulzu2n 320022
subzi 18624734
truncexpo 32828
u64toi 20062829
u64toineg 665952
update_alpha 11982746
vectail_inplace 2067295

Generated by: LCOV version 1.14