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
Babai_dpe 4576190
Babai_fast 29885940
Babai_heuristic 225089
GS_extraprec 4684700
REDgen 196
RgM_Cholesky_dynprec 3009
RgM_flip 34867
RgM_flop 0
RgM_is_square_mat 45301
ZC_to_RC 15608
ZM2_lll_norms 4630631
ZM_flatter 617438
ZM_flatter_rank 615437
ZM_flattergram 975
ZM_flattergram_rank 975
ZM_is_knapsack 604659
ZM_is_lower 1179859
ZM_is_upper 4171010
ZM_lll_norms 6877532
ZM_to_RM 4115
absrsmall 563113
absrsmall2 326730
addmuliu2n 4047516
addmuliu642n 662927
addmuliu64_inplace 9453030
addmulziu 4573699
addmulzu2n 270968
addzi 17765140
affdbldpe 3128223
affdpe 25516567
affidpe 20474013
affii_or_copy_gc 1385470
cget_dblmat 8254023
cget_dblvec 34368401
cget_dpemat 3128229
cget_dpevec 12995852
condition_bound 4684700
dbldotproduct 117068432
dbldotsquare 2426398
dblrotate 34256391
do_SWAPgen 196
dpeM_diagonal_shallow 20028
dpe_abscmp 14371685
dpe_abssmall 1385492
dpe_addmuluz 342387
dpe_addz 1941013
dpe_cmp 5184514
dpe_cmpmul 5184508
dpe_divz 13930569
dpe_muluz 798418
dpe_mulz 56645224
dpe_negz 243915
dpe_normalize 47852607
dpe_normalize0 107905340
dpe_submuluz 411547
dpe_submulz 51460855
dpe_subz 53489896
dperotate 649730
dpetor 93417
drop 1336658
flat 1333649
flattergram_i 3009
fplll 0
fplll_dpe 1564115
fplll_fast 2063447
fplll_flatter 616411
fplll_heuristic 4115
gc_lll 4669
get_gaussred 43853
get_gramschmidt 1081139
gramschmidt_dynprec 2667299
gramschmidt_upper 1312
gsisinv 5144062
incrementalGSgen 168
itodbl_exp 160915328
kerint 42
kerint0 70
lll 1174644
lll_finish 2123326
lll_trivial 768906
lllall 50782
lllallgen 168
lllfp 5261186
lllgen 42
lllgram 8949
lllgramallgen 168
lllgramgen 42
lllgramint 36054
lllgramkerim 35
lllgramkerimgen 42
lllint 14651
lllkerim 35
lllkerimgen 42
matkerint0 28
mpabscmp 4073369
mulshift 314194
nbits2prec64 7403407
pari_rint 10652809
potential 1333649
pslg 504
qflll0 301
qflllgram 63
qflllgram0 245
realdotproduct 945582
realsqrdotproduct 157807
rotate 31506765
rotateG 420465
rotateG_fast 11418816
setG2_fast 16805587
setG2_heuristic 148216
setG_fast 22349629
setG_heuristic 165784
set_line 24569787
sizered 1333649
spread 5798988
submuliu2n 4134444
submuliu642n 679163
submuliu64_inplace 9503081
submulshift 1482516
submulziu 5915797
submulzu2n 262957
subzi 18508813
truncexpo 11507
u64toi 19635274
u64toineg 662927
update_alpha 11839361
vectail_inplace 2050122

Generated by: LCOV version 1.16