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-bordeaux1.fr machine (x86_64 architecture), and agregate them in the final report:

The target is 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.8.0 lcov report (development 17774-15dbd24) Lines: 1540 1694 90.9 %
Date: 2015-04-27 Functions: 110 116 94.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 881 1060 83.1 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5059605
FFT 0
FFTinit 0
QX_complex_roots 10701
RUgen 101722
RgX_addspec 100437
RgX_gtofp_bit 408235
RgX_normalize1 245
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 56422
ZX_graeffe 4655
ZX_sturm 5733
ZX_sturmpart 546
ZX_uspensky 8485
ZX_uspensky_cst_pol 1554
_gen_nored 625548
_gen_one 718568
_gen_zero 8487
_intervalcmp 0
_mp_add 3421900
_mp_cmul 3883931
_mp_mul 726678
_mp_sqr 708995
a_posteriori_errors 11596
abs_update 676644
abs_update_r 33070
addCC 9390951
all_roots 11430
append_clone 55725
bkeval_single_power 235259
check_ab 3214
checkbound 1190
checkvalidpol 743
clean_roots 11437
cleanroots 147
cmp_complex_appr 151427
conformal_mapping 21218
conformal_pol 63654
cook_square 4859648
dblexp 370916
dbllog2 18462124
dbllog2mp 3939708
dft 25011
dual_modulus 50586
eval_rel_pol 765376
fft 1559283
findpower 1874366
fix_roots 11596
fix_roots1 6418
fujiwara_bound 71720
fujiwara_bound_real 8146
graeffe 2429824
homothetie 85187
homothetie2n 523590
homothetie_gauss 1673976
ind_maxlog2 41058
initRU 48272
initRUgen 5178
isexactpol 736
isexactscalar 2237
isreal 44479
isvalidcoeff 3154
karasquare 5160959
logmax_modulus 200390
logmax_modulus_bound 1596
logmin_modulus 70656
logmodulus 35468
logpre_modulus 35468
logradius 23261
lower_bound 1874366
mulCC 17764650
mydbllog2i 13702282
mydbllog2r 7103743
mydbllogr 756054
mygprec 3961174
mygprec_absolute 179128
mygprec_special 11596
mygprecrc 15214878
mygprecrc_special 87436
myreal_1 381806
myshiftic 8278387
myshiftrc 2234740
newton_polygon 323200
optimize_split 23261
parameters 23261
pol_to_gaussint 965766
polgraeffe 14
polmod_to_embed 77
polsolve 6793
quicktofp 350786
realroots 2668
refine_F 25011
refine_H 126626
root_error 75798
roots 617
roots_aux 764
roots_com 736
rootsdeg0 35
scalepol 197091
scalepol2n 0
set_karasquare_limit 2429824
solve_exact_pol 491
split_0 23261
split_0_1 21218
split_0_2 21218
split_1 21218
split_2 23261
split_complete 58118
split_fromU 23261
split_polynoms 6793
splitpoleval 235259
sqrCC 14609900
tocomplex 51447
update_radius 23261
usp 6816

Generated by: LCOV version 1.9