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 29465-f396510193) Lines: 1330 1636 81.3 %
Date: 2024-07-25 09:03:53 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 43853
RgM_is_square_mat 45301
lllall 50782
dpetor 93417
setG2_heuristic 148216
realsqrdotproduct 157807
setG_heuristic 165784
Babai_heuristic 225089
dpe_negz 243915
submulzu2n 262957
addmulzu2n 270968
mulshift 314194
absrsmall2 326730
dpe_addmuluz 342387
dpe_submuluz 411547
rotateG 420465
absrsmall 563113
ZM_is_knapsack 604659
ZM_flatter_rank 615437
fplll_flatter 616411
ZM_flatter 617438
dperotate 649730
addmuliu642n 662927
u64toineg 662927
submuliu642n 679163
lll_trivial 768906
dpe_muluz 798418
realdotproduct 945582
get_gramschmidt 1081139
lll 1174644
ZM_is_lower 1179859
flat 1333649
potential 1333649
sizered 1333649
drop 1336658
affii_or_copy_gc 1385470
dpe_abssmall 1385492
submulshift 1482516
fplll_dpe 1564115
dpe_addz 1941013
vectail_inplace 2050122
fplll_fast 2063447
lll_finish 2123326
dbldotsquare 2426398
gramschmidt_dynprec 2667299
affdbldpe 3128223
cget_dpemat 3128229
addmuliu2n 4047516
mpabscmp 4073369
submuliu2n 4134444
ZM_is_upper 4171010
addmulziu 4573699
Babai_dpe 4576190
ZM2_lll_norms 4630631
GS_extraprec 4684700
condition_bound 4684700
gsisinv 5144062
dpe_cmpmul 5184508
dpe_cmp 5184514
lllfp 5261186
spread 5798988
submulziu 5915797
ZM_lll_norms 6877532
nbits2prec64 7403407
cget_dblmat 8254023
addmuliu64_inplace 9453030
submuliu64_inplace 9503081
pari_rint 10652809
rotateG_fast 11418816
update_alpha 11839361
cget_dpevec 12995852
dpe_divz 13930569
dpe_abscmp 14371685
setG2_fast 16805587
addzi 17765140
subzi 18508813
u64toi 19635274
affidpe 20474013
setG_fast 22349629
set_line 24569787
affdpe 25516567
Babai_fast 29885940
rotate 31506765
dblrotate 34256391
cget_dblvec 34368401
dpe_normalize 47852607
dpe_submulz 51460855
dpe_subz 53489896
dpe_mulz 56645224
dpe_normalize0 107905340
dbldotproduct 117068432
itodbl_exp 160915328

Generated by: LCOV version 1.16