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 - RgX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 16375-9f41ae0) Lines: 1134 1329 85.3 %
Date: 2014-04-19 Functions: 120 130 92.3 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 752 982 76.6 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 147
QXQXV_to_mod 280
QXQX_to_mod 1120
QXQX_to_mod_shallow 5271
QXQ_powers 658
QXQ_to_mod 15386
QXQ_to_mod_copy 8729
QXV_QXQ_eval 161
QXX_QXQ_eval 28
QX_ZXQV_eval 609
RgM_to_RgXV 30759
RgM_to_RgXX 574
RgV_to_RgM 2800
RgV_to_RgX 235500
RgV_to_RgX_reverse 168003
RgXQC_red 0
RgXQV_red 0
RgXQX_RgXQ_mul 14
RgXQX_divrem 12683
RgXQX_mul 3164
RgXQX_pseudodivrem 195231
RgXQX_pseudorem 32623
RgXQX_red 10388
RgXQX_sqr 0
RgXQX_translate 385
RgXQ_matrix_pow 189
RgXQ_minpoly_naive 7
RgXQ_norm 22784
RgXQ_pow 665
RgXQ_powers 875
RgXQ_powu 154928
RgXV_to_RgM 12502
RgXV_unscale 168
RgXX_to_RgM 21
RgXY_swap 224
RgXY_swapspec 9428
RgX_RgXQV_eval 0
RgX_RgXQ_eval 15704
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 9441202
RgX_Rg_add_shallow 2354
RgX_Rg_div 22130484
RgX_Rg_divexact 715453
RgX_Rg_mul 60128645
RgX_Rg_sub 28519
RgX_add 13518686
RgX_blocks 35000
RgX_deflate 29219
RgX_deriv 105751
RgX_div_by_X_x 22407
RgX_divrem 11990598
RgX_divs 273
RgX_equal 790246
RgX_even_odd 13447
RgX_get_0 1477
RgX_get_1 149020
RgX_inflate 56182
RgX_mul 8854731
RgX_mulXn 2578042
RgX_mul_normalized 170468
RgX_muls 182
RgX_mulspec 10296034
RgX_mulspec_basecase 9615981
RgX_mulspec_basecase_limb 39546301
RgX_neg 634388
RgX_pseudodivrem 195196
RgX_pseudorem 32623
RgX_recip 14
RgX_recip_shallow 757408
RgX_recipspec_shallow 170374
RgX_renormalize_lg 177177
RgX_rescale 672
RgX_rotate_shallow 161287
RgX_shift 3497157
RgX_shift_shallow 53306223
RgX_splitting 20377
RgX_sqr 182176
RgX_sqrspec 182272
RgX_sqrspec_basecase 182224
RgX_sqrspec_basecase_limb 1702524
RgX_sub 7042178
RgX_to_RgV 932660
RgX_translate 180948
RgX_unscale 2121
RgX_val 1138524
RgX_valrem 40272020
RgX_valrem_inexact 702
RgXnV_red_shallow 336
RgXn_eval 63
RgXn_exp 0
RgXn_inv 0
RgXn_mul 114173
RgXn_mul_basecase 110834
RgXn_powers 336
RgXn_red_shallow 2065
RgXn_reverse 84
RgXn_sqr 266
RgXn_sqr_basecase 0
RgXspec_kill0 19635840
Rg_RgX_sub 371027
Rg_to_RgV 14966
ZXQX_dvd 483
ZX_translate 140
ZX_unscale 1876
ZX_unscale2n 21
ZX_unscale_div 147
_add 36966
_cmul 53342
_mul 59462
_mulXn 763
_one 44258
_oneXn 1442
_red 37395
_sqr 147809
_sqrXn 266
_zero 14
_zeroXn 0
addmulXn 1100761
addmulXncopy 482217
addpol 1913499
addpolcopy 191396
addshiftpol 20862
brent_kung_optpow 683274
do_QXQ_eval 189
gen_RgXQ_eval_powers 3999664
gen_bkeval 770581
gen_bkeval_powers 2137316
rem 1742711

Generated by: LCOV version 1.9