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 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 - RgX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 20459-9710128) Lines: 1279 1395 91.7 %
Date: 2017-04-25 05:33:46 Functions: 140 152 92.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 162
QXQV_to_mod 924
QXQXV_to_mod 462
QXQX_to_mod 1644
QXQX_to_mod_shallow 71238
QXQ_powers 1230
QXQ_to_mod 349992
QXQ_to_mod_copy 12354
QXV_QXQ_eval 672
QXX_QXQ_eval 54
QX_ZXQV_eval 1500
RgM_to_RgXV 30384
RgM_to_RgXX 13122
RgV_to_RgM 21996
RgV_to_RgX 303436
RgV_to_RgX_reverse 128172
RgXQC_red 0
RgXQM_mul 0
RgXQM_red 0
RgXQV_RgXQ_mul 48
RgXQV_red 48
RgXQX_RgXQ_mul 24
RgXQX_divrem 18150
RgXQX_mul 1422
RgXQX_pseudodivrem 38994
RgXQX_pseudorem 20394
RgXQX_red 4740
RgXQX_sqr 0
RgXQX_translate 5184
RgXQ_matrix_pow 246
RgXQ_minpoly_naive 48
RgXQ_norm 28056
RgXQ_pow 14916
RgXQ_powers 1494
RgXQ_powu 157008
RgXV_RgV_eval 174
RgXV_to_RgM 1554
RgXV_unscale 174
RgXX_to_RgM 18
RgXY_degreex 0
RgXY_swap 192
RgXY_swapspec 10842
RgX_RgV_eval 8634
RgX_RgXQV_eval 0
RgX_RgXQ_eval 37020
RgX_RgXnV_eval 576
RgX_RgXn_eval 0
RgX_Rg_add 8608242
RgX_Rg_add_shallow 2076
RgX_Rg_div 18071286
RgX_Rg_divexact 436512
RgX_Rg_eval_bk 0
RgX_Rg_mul 53116518
RgX_Rg_sub 27666
RgX_add 12840518
RgX_blocks 77034
RgX_deflate 63570
RgX_deriv 150534
RgX_div_by_X_x 27372
RgX_divrem 10600536
RgX_divs 1482
RgX_equal 3413202
RgX_even_odd 21318
RgX_get_0 109806
RgX_get_1 487392
RgX_inflate 93058
RgX_mul 9147936
RgX_mulXn 2300598
RgX_mul_normalized 369522
RgX_mulhigh_i 16890
RgX_muls 528
RgX_mulspec 10475683
RgX_mulspec_basecase 9950158
RgX_mulspec_basecase_limb 60986788
RgX_neg 751788
RgX_normalize 1248
RgX_pseudodivrem 38892
RgX_pseudorem 20394
RgX_recip 432
RgX_recip_shallow 277403
RgX_recipspec_shallow 234485
RgX_renormalize_lg 593748
RgX_rescale 942
RgX_rotate_shallow 270666
RgX_shift 2884224
RgX_shift_shallow 45576840
RgX_splitting 34836
RgX_sqr 234684
RgX_sqrspec 236027
RgX_sqrspec_basecase 235355
RgX_sqrspec_basecase_limb 2552787
RgX_sub 8176957
RgX_to_RgC 2897136
RgX_translate 873162
RgX_unscale 2874
RgX_val 1713792
RgX_valrem 33533772
RgX_valrem_inexact 2790
RgXnV_red_shallow 288
RgXn_eval 1338
RgXn_exp 174
RgXn_inv 84258
RgXn_mul 3136584
RgXn_mul_basecase 2718966
RgXn_mulhigh 16890
RgXn_powers 288
RgXn_powu 0
RgXn_powu_i 1290
RgXn_red_shallow 32670
RgXn_reverse 72
RgXn_sqr 2040
RgXn_sqr_basecase 570
RgXspec_kill0 25574122
Rg_RgX_sub 265674
Rg_to_RgC 108906
ZXQX_dvd 942
ZX_translate 313962
ZX_unscale 12906
ZX_unscale2n 8358
ZX_unscale_div 138
_add 53868
_cmul 91380
_gen_add 17466858
_gen_cmul 27246
_gen_mul 464184
_gen_nored 460980
_gen_one 469752
_gen_sqr 149148
_gen_sub 0
_gen_zero 144
_mul 74522
_mulXn 1008
_one 86682
_oneXn 1206
_red 58458
_sqr 181584
_sqrXn 1530
_sub 0
_zero 90
_zeroXn 0
addmulXn 1471060
addmulXncopy 445309
addpol 2220692
addpolcopy 228049
addshiftpol 19524
brent_kung_optpow 1680965
do_QXQ_eval 726
gen_RgXQ_eval_powers 8059250
gen_bkeval 883352
gen_bkeval_powers 5148637
get_Rg_algebra 60840
rem 537702

Generated by: LCOV version 1.11