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 - rootpol.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.2 lcov report (development 29420-55f63b8cfe) Lines: 1480 1543 95.9 %
Date: 2024-07-03 09:03:24 Functions: 116 119 97.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FFT 56
FFT_i 98
FFTinv 56
QX_complex_roots 286891
RgX_gtofp_bit 6976099
RgX_normalize1 35213
X2XP1 1281974
ZX_Uspensky 182187
ZX_Uspensky_equal 28
ZX_Uspensky_equal_yes 14
ZX_Uspensky_no 21
ZX_deg1root 14569
ZX_graeffe 5313
ZX_realroots_irred 47342
ZX_rescale2prim 418048
ZX_sturm 1414
ZX_sturm_i 116391
ZX_sturm_irred 114977
ZX_sturmpart 3068
ZX_to_ZiX 16388286
ZiX_sqr 98460278
_gen_nored 11068929
_gen_one 14298784
_gen_zero 321241
_intervalcmp 0
_mp_add 24528165
_mp_cmul 34505973
_mp_mul 4352645
_mp_sqr 6255301
_mp_sub 0
_sqrtnr 22104
a_posteriori_errors 526855
abs_update 7962076
abs_update_r 773727
all_roots 526041
append_clone 1592009
bkeval_single_power 5167914
check_ab 53611
checkbound 105598
checkvalidpol 266169
clean_roots 526086
cleanroots 231313
cmp_complex_appr 2212913
conformal_basecase 1396149
conformal_mapping 465344
conformal_pol 1396267
dblexp 6509417
dbllog2 298605641
dft 499332
dual_modulus 1006723
eval_rel_pol 13055393
fft 14052449
fft2 7462
findpower 40725653
fix_roots 526854
fix_roots1 391811
fujiwara_bound 1118797
fujiwara_bound_real 269390
graeffe 49220708
homothetie 1600148
homothetie2n 9894464
homothetie_gauss 36290677
ind_maxlog2 897623
initdft 990431
isexactpol 239198
isexactscalar 930550
isreal 956444
isvalidcoeff 1221569
logmax_modulus 4425725
logmin_modulus 1605712
logmodulus 602585
logpre_modulus 602585
logradius 491096
lower_bound 40724637
mydbllog2i 222950569
mydbllog2r 53448657
mydbllogr 9494425
mygprec 63255108
mygprec_absolute 4262571
mygprec_special 526857
mygprecrc 213274371
mygprecrc_special 2143660
myshiftic 134945980
myshiftrc 35259670
newton_polygon 5469112
optimize_split 491101
parameters 491099
pol_to_gaussint 17481139
polgraeffe 14
polmod_to_embed 84
polrootsbound 26964
polrootsbound_i 26957
polsolve 164747
quicktofp 4142959
realroots 50543
refine_F 499330
refine_H 2442778
root_error 1884779
roots 7913
roots_aux 239226
roots_com 239198
rootsdeg0 42
scalepol 4265277
scalepol2n 0
sol_ok 3399
solve_exact_pol 230942
split_0 491421
split_0_1 465666
split_0_2 465666
split_1 465344
split_2 491099
split_complete 1509695
split_fromU 491101
split_pols 164745
splitcauchy 164751
splitpoleval 5167787
tocomplex 1189933
update_radius 491098
usp 229298

Generated by: LCOV version 1.16