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-08 08:08:05 Functions: 121 124 97.6 %
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
kerint0 70
incrementalGSgen 168
lllallgen 168
lllgramallgen 168
REDgen 196
do_SWAPgen 196
qflllgram0 245
qflll0 301
pslg 504
ZM_flattergram 1322
ZM_flattergram_rank 1322
gramschmidt_upper 1455
RgM_Cholesky_dynprec 4057
flattergram_i 4057
ZM_to_RM 4254
fplll_heuristic 4254
gc_lll 4640
lllgram 8949
lllint 14693
ZC_to_RC 16931
dpeM_diagonal_shallow 20028
truncexpo 32828
RgM_flip 34648
lllgramint 41353
get_gaussred 49570
RgM_is_square_mat 50537
lllall 56123
dpetor 93409
setG2_heuristic 175753
realsqrdotproduct 186486
setG_heuristic 198575
dpe_negz 242901
Babai_heuristic 285708
submulzu2n 320022
addmulzu2n 326940
dpe_addmuluz 343412
dpe_submuluz 408824
mulshift 440248
rotateG 447130
absrsmall2 469696
ZM_is_knapsack 609821
ZM_flatter_rank 625848
fplll_flatter 627170
ZM_flatter 627829
dperotate 665602
addmuliu642n 665952
u64toineg 665952
submuliu642n 688460
lll_trivial 768768
dpe_muluz 799434
absrsmall 883924
get_gramschmidt 1093781
spread 1127174
lll 1173378
ZM_is_lower 1191013
flat 1354663
sizered 1354663
realdotproduct 1397760
affii_or_copy_gc 1406343
dpe_abssmall 1406357
fplll_dpe 1574958
dpe_addz 1952829
vectail_inplace 2067142
submulshift 2075086
fplll_fast 2079681
lll_finish 2140226
dbldotsquare 2448671
gramschmidt_dynprec 2709324
affdbldpe 3149913
cget_dpemat 3149916
addmuliu2n 4102025
gsisinv 4182276
submuliu2n 4221368
ZM_is_upper 4223107
addmulziu 4599884
Babai_dpe 4622413
ZM2_lll_norms 4684499
drop 5079504
dpe_cmpmul 5243487
dpe_cmp 5243491
lllfp 5323832
submulziu 5908002
nbits2prec64 6486868
ZM_lll_norms 6948192
cget_dblmat 8318697
addmuliu64_inplace 9641715
submuliu64_inplace 9732654
pari_rint 10932715
rotateG_fast 11533051
update_alpha 11980263
cget_dpevec 13102032
dpe_divz 14051660
dpe_abscmp 14488066
setG2_fast 16880703
addzi 17910136
subzi 18624940
u64toi 20062829
affidpe 20658286
setG_fast 22495413
mpabscmp 23081689
set_line 24733366
affdpe 25746531
Babai_fast 29807136
rotate 31950513
dblrotate 34599035
cget_dblvec 34682872
dpe_normalize 47947867
dpe_submulz 51613927
dpe_subz 53650609
dpe_mulz 56857308
dpe_normalize0 108261818
dbldotproduct 116328234
itodbl_exp 159980501

Generated by: LCOV version 1.14