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 29395-ef22f77854) Lines: 1480 1543 95.9 %
Date: 2024-06-15 09:03:40 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 14567
_sqrtnr 22101
polrootsbound_i 26957
polrootsbound 26964
RgX_normalize1 35213
ZX_realroots_irred 47341
realroots 50543
check_ab 53611
checkbound 105598
ZX_sturm_irred 114973
ZX_sturm_i 116387
polsolve 164754
split_pols 164754
splitcauchy 164756
ZX_Uspensky 182185
usp 229295
solve_exact_pol 230942
cleanroots 231313
isexactpol 239198
roots_com 239198
roots_aux 239226
checkvalidpol 266169
fujiwara_bound_real 269382
QX_complex_roots 286887
_gen_zero 321248
fix_roots1 391816
ZX_rescale2prim 418039
conformal_mapping 465337
split_1 465337
split_0_1 465659
split_0_2 465659
logradius 491090
parameters 491093
split_2 491094
optimize_split 491096
split_fromU 491096
update_radius 491096
split_0 491419
refine_F 499319
dft 499326
all_roots 526042
clean_roots 526088
a_posteriori_errors 526856
fix_roots 526857
mygprec_special 526859
logmodulus 602591
logpre_modulus 602593
abs_update_r 773739
ind_maxlog2 897639
isexactscalar 930550
isreal 956432
initdft 990417
dual_modulus 1006720
fujiwara_bound 1118786
tocomplex 1189938
isvalidcoeff 1221569
X2XP1 1281985
conformal_basecase 1396129
conformal_pol 1396248
split_complete 1509690
append_clone 1592008
homothetie 1600155
logmin_modulus 1605645
root_error 1884777
mygprecrc_special 2143676
cmp_complex_appr 2212914
refine_H 2442761
quicktofp 4142916
mygprec_absolute 4262616
scalepol 4265222
_mp_mul 4352754
logmax_modulus 4425638
splitpoleval 5168208
bkeval_single_power 5168226
newton_polygon 5469186
_mp_sqr 6255491
dblexp 6509461
RgX_gtofp_bit 6976198
abs_update 7961861
mydbllogr 9494282
homothetie2n 9894502
_gen_nored 11070507
eval_rel_pol 13055489
fft 14052144
_gen_one 14300287
ZX_to_ZiX 16385539
pol_to_gaussint 17481145
_mp_add 24532299
_mp_cmul 34505497
myshiftrc 35259353
homothetie_gauss 36295155
lower_bound 40724254
findpower 40725919
graeffe 49220215
mydbllog2r 53447259
mygprec 63255353
ZiX_sqr 98468060
myshiftic 134960790
mygprecrc 213272852
mydbllog2i 222942858
dbllog2 298587276

Generated by: LCOV version 1.16