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 29466-df46cf9131) Lines: 1481 1543 96.0 %
Date: 2024-07-27 09:04:25 Functions: 116 119 97.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
_intervalcmp 0
_mp_sub 0
scalepol2n 0
ZX_Uspensky_equal_yes 14
polgraeffe 14
ZX_Uspensky_no 21
ZX_Uspensky_equal 28
rootsdeg0 42
FFT 56
FFTinv 56
polmod_to_embed 84
FFT_i 98
ZX_sturm 1414
ZX_sturmpart 3068
sol_ok 3399
ZX_graeffe 5313
fft2 7462
roots 7913
ZX_deg1root 14569
_sqrtnr 22104
polrootsbound_i 26957
polrootsbound 26964
RgX_normalize1 35213
ZX_realroots_irred 47343
realroots 50543
check_ab 53611
checkbound 105598
ZX_sturm_irred 114978
ZX_sturm_i 116392
split_pols 164751
polsolve 164752
splitcauchy 164757
ZX_Uspensky 182188
usp 229299
solve_exact_pol 230942
cleanroots 231313
isexactpol 239198
roots_com 239198
roots_aux 239226
checkvalidpol 266169
fujiwara_bound_real 269387
QX_complex_roots 286884
_gen_zero 321252
fix_roots1 391809
ZX_rescale2prim 418060
conformal_mapping 465335
split_1 465337
split_0_1 465660
split_0_2 465660
parameters 491091
logradius 491092
split_2 491092
optimize_split 491093
split_fromU 491093
update_radius 491094
split_0 491418
refine_F 499318
dft 499322
all_roots 526039
clean_roots 526083
a_posteriori_errors 526850
fix_roots 526850
mygprec_special 526855
logpre_modulus 602574
logmodulus 602577
abs_update_r 773721
ind_maxlog2 897628
isexactscalar 930550
isreal 956427
initdft 990414
dual_modulus 1006706
fujiwara_bound 1118788
tocomplex 1189908
isvalidcoeff 1221569
X2XP1 1282030
conformal_basecase 1396120
conformal_pol 1396240
split_complete 1509684
append_clone 1591987
homothetie 1600126
logmin_modulus 1605674
root_error 1884765
mygprecrc_special 2143648
cmp_complex_appr 2212876
refine_H 2442727
quicktofp 4142873
mygprec_absolute 4262529
scalepol 4265202
_mp_mul 4352776
logmax_modulus 4425648
splitpoleval 5168184
bkeval_single_power 5168459
newton_polygon 5469013
_mp_sqr 6255448
dblexp 6509389
RgX_gtofp_bit 6975969
abs_update 7962000
mydbllogr 9494338
homothetie2n 9894344
_gen_nored 11070441
eval_rel_pol 13055201
fft 14051997
_gen_one 14300325
ZX_to_ZiX 16387978
pol_to_gaussint 17480556
_mp_add 24530742
_mp_cmul 34505083
myshiftrc 35259178
homothetie_gauss 36295504
lower_bound 40725660
findpower 40727076
graeffe 49223658
mydbllog2r 53448795
mygprec 63256379
ZiX_sqr 98470414
myshiftic 135009412
mygprecrc 213274661
mydbllog2i 222969287
dbllog2 298647211

Generated by: LCOV version 1.16