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 29420-55f63b8cfe) Lines: 1330 1636 81.3 %
Date: 2024-07-03 09:03:24 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 4576162
Babai_fast 29881484
Babai_heuristic 225089
GS_extraprec 4684537
REDgen 196
RgM_Cholesky_dynprec 3009
RgM_flip 34867
RgM_flop 0
RgM_is_square_mat 45301
ZC_to_RC 15608
ZM2_lll_norms 4630667
ZM_flatter 617428
ZM_flatter_rank 615427
ZM_flattergram 975
ZM_flattergram_rank 975
ZM_is_knapsack 604440
ZM_is_lower 1179862
ZM_is_upper 4170890
ZM_lll_norms 6877314
ZM_to_RM 4115
absrsmall 563113
absrsmall2 326730
addmuliu2n 4050311
addmuliu642n 662927
addmuliu64_inplace 9453030
addmulziu 4573734
addmulzu2n 270968
addzi 17765775
affdbldpe 3128265
affdpe 25516321
affidpe 20473645
affii_or_copy_gc 1385490
cget_dblmat 8253114
cget_dblvec 34363121
cget_dpemat 3128264
cget_dpevec 12995804
condition_bound 4684537
dbldotproduct 117055819
dbldotsquare 2426149
dblrotate 34251188
do_SWAPgen 196
dpeM_diagonal_shallow 20027
dpe_abscmp 14371404
dpe_abssmall 1385501
dpe_addmuluz 342388
dpe_addz 1941018
dpe_cmp 5184485
dpe_cmpmul 5184474
dpe_divz 13930272
dpe_muluz 798421
dpe_mulz 56644028
dpe_negz 243918
dpe_normalize 47851445
dpe_normalize0 107902587
dpe_submuluz 411549
dpe_submulz 51459677
dpe_subz 53488779
dperotate 649730
dpetor 93412
drop 1336600
flat 1333591
flattergram_i 3009
fplll 0
fplll_dpe 1564133
fplll_fast 2063282
fplll_flatter 616402
fplll_heuristic 4115
gc_lll 4669
get_gaussred 43854
get_gramschmidt 1081142
gramschmidt_dynprec 2667178
gramschmidt_upper 1312
gsisinv 5143910
incrementalGSgen 168
itodbl_exp 160898085
kerint 42
kerint0 70
lll 1174642
lll_finish 2123098
lll_trivial 768903
lllall 50782
lllallgen 168
lllfp 5261017
lllgen 42
lllgram 8949
lllgramallgen 168
lllgramgen 42
lllgramint 36054
lllgramkerim 35
lllgramkerimgen 42
lllint 14651
lllkerim 35
lllkerimgen 42
matkerint0 28
mpabscmp 4072758
mulshift 314194
nbits2prec64 7403134
pari_rint 10650780
potential 1333591
pslg 504
qflll0 301
qflllgram 63
qflllgram0 245
realdotproduct 945582
realsqrdotproduct 157807
rotate 31501446
rotateG 420465
rotateG_fast 11417058
setG2_fast 16802604
setG2_heuristic 148216
setG_fast 22345820
setG_heuristic 165784
set_line 24565399
sizered 1333591
spread 5798609
submuliu2n 4138414
submuliu642n 679163
submuliu64_inplace 9503081
submulshift 1482516
submulziu 5915897
submulzu2n 262957
subzi 18509437
truncexpo 11507
u64toi 19635274
u64toineg 662927
update_alpha 11837611
vectail_inplace 2049893

Generated by: LCOV version 1.16