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 29419-8afb0ed749) Lines: 1330 1636 81.3 %
Date: 2024-07-02 09:03:41 Functions: 125 128 97.7 %
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
qflllgram 63
kerint0 70
incrementalGSgen 168
lllallgen 168
lllgramallgen 168
REDgen 196
do_SWAPgen 196
qflllgram0 245
qflll0 301
pslg 504
ZM_flattergram 975
ZM_flattergram_rank 975
gramschmidt_upper 1312
RgM_Cholesky_dynprec 3009
flattergram_i 3009
ZM_to_RM 4115
fplll_heuristic 4115
gc_lll 4669
lllgram 8949
truncexpo 11507
lllint 14651
ZC_to_RC 15608
dpeM_diagonal_shallow 20028
RgM_flip 34867
lllgramint 36054
get_gaussred 43854
RgM_is_square_mat 45301
lllall 50782
dpetor 93417
setG2_heuristic 148216
realsqrdotproduct 157807
setG_heuristic 165784
Babai_heuristic 225089
dpe_negz 243913
submulzu2n 262957
addmulzu2n 270968
mulshift 314194
absrsmall2 326730
dpe_addmuluz 342388
dpe_submuluz 411548
rotateG 420465
absrsmall 563113
ZM_is_knapsack 604398
ZM_flatter_rank 615437
fplll_flatter 616411
ZM_flatter 617438
dperotate 649730
addmuliu642n 662927
u64toineg 662927
submuliu642n 679163
lll_trivial 768903
dpe_muluz 798420
realdotproduct 945582
get_gramschmidt 1081143
lll 1174642
ZM_is_lower 1179867
sizered 1333626
flat 1333629
potential 1333629
drop 1336638
affii_or_copy_gc 1385480
dpe_abssmall 1385497
submulshift 1482516
fplll_dpe 1564138
dpe_addz 1941014
vectail_inplace 2049860
fplll_fast 2063252
lll_finish 2123063
dbldotsquare 2426145
gramschmidt_dynprec 2667257
cget_dpemat 3128268
affdbldpe 3128274
addmuliu2n 4049644
mpabscmp 4072826
submuliu2n 4138030
ZM_is_upper 4170970
addmulziu 4573674
Babai_dpe 4576176
ZM2_lll_norms 4630824
GS_extraprec 4684569
condition_bound 4684570
gsisinv 5143936
dpe_cmpmul 5184490
dpe_cmp 5184498
lllfp 5261131
spread 5798601
submulziu 5915847
ZM_lll_norms 6877410
nbits2prec64 7403306
cget_dblmat 8252993
addmuliu64_inplace 9453030
submuliu64_inplace 9503081
pari_rint 10650713
rotateG_fast 11416873
update_alpha 11837457
cget_dpevec 12995903
dpe_divz 13930355
dpe_abscmp 14371449
setG2_fast 16802481
addzi 17765234
subzi 18508981
u64toi 19635274
affidpe 20473771
setG_fast 22345522
set_line 24564570
affdpe 25516342
Babai_fast 29881047
rotate 31500950
dblrotate 34250613
cget_dblvec 34362630
dpe_normalize 47851622
dpe_submulz 51459840
dpe_subz 53488916
dpe_mulz 56644219
dpe_normalize0 107903044
dbldotproduct 117055615
itodbl_exp 160891908

Generated by: LCOV version 1.16