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.8.0 lcov report (development 19230-c71492b) Lines: 1255 1377 91.1 %
Date: 2016-07-30 07:10:28 Functions: 138 148 93.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 189
QXQV_to_mod 812
QXQXV_to_mod 525
QXQX_to_mod 1883
QXQX_to_mod_shallow 83048
QXQ_powers 1351
QXQ_to_mod 407592
QXQ_to_mod_copy 13776
QXV_QXQ_eval 735
QXX_QXQ_eval 42
QX_ZXQV_eval 1652
RgM_to_RgXV 35251
RgM_to_RgXX 15302
RgV_to_RgM 5985
RgV_to_RgX 356917
RgV_to_RgX_reverse 149838
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 14
RgXQX_divrem 39900
RgXQX_mul 9478
RgXQX_pseudodivrem 263848
RgXQX_pseudorem 68740
RgXQX_red 23898
RgXQX_sqr 0
RgXQX_translate 6055
RgXQ_matrix_pow 287
RgXQ_minpoly_naive 56
RgXQ_norm 23946
RgXQ_pow 3165
RgXQ_powers 1659
RgXQ_powu 180256
RgXV_RgV_eval 105
RgXV_to_RgM 4881
RgXV_unscale 161
RgXX_to_RgM 21
RgXY_degreex 1
RgXY_swap 224
RgXY_swapspec 21698
RgX_RgV_eval 5257
RgX_RgXQV_eval 0
RgX_RgXQ_eval 43155
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 10543549
RgX_Rg_add_shallow 2380
RgX_Rg_div 22146852
RgX_Rg_divexact 1587139
RgX_Rg_eval_bk 0
RgX_Rg_mul 65458095
RgX_Rg_sub 30675
RgX_add 17426588
RgX_blocks 69776
RgX_deflate 70341
RgX_deriv 265591
RgX_div_by_X_x 30163
RgX_divrem 13129468
RgX_divs 1729
RgX_equal 4397703
RgX_even_odd 22296
RgX_get_0 7154
RgX_get_1 331592
RgX_inflate 103706
RgX_mul 11344458
RgX_mulXn 2580149
RgX_mul_normalized 412955
RgX_muls 231
RgX_mulspec 13071516
RgX_mulspec_basecase 12289986
RgX_mulspec_basecase_limb 71243912
RgX_neg 1246106
RgX_normalize 1449
RgX_pseudodivrem 263729
RgX_pseudorem 68740
RgX_recip 63847
RgX_recip_shallow 1155275
RgX_recipspec_shallow 294611
RgX_renormalize_lg 313761
RgX_rescale 1414
RgX_rotate_shallow 310303
RgX_shift 3346181
RgX_shift_shallow 54378716
RgX_splitting 40446
RgX_sqr 254352
RgX_sqrspec 255008
RgX_sqrspec_basecase 254680
RgX_sqrspec_basecase_limb 2707176
RgX_sub 10022604
RgX_to_RgC 3735617
RgX_translate 958671
RgX_unscale 2499
RgX_val 2068571
RgX_valrem 40340154
RgX_valrem_inexact 2885
RgXnV_red_shallow 336
RgXn_eval 1421
RgXn_exp 0
RgXn_inv 462
RgXn_mul 3502718
RgXn_mul_basecase 3045835
RgXn_powers 336
RgXn_powu 0
RgXn_powu_i 1505
RgXn_red_shallow 4329
RgXn_reverse 84
RgXn_sqr 1967
RgXn_sqr_basecase 665
RgXspec_kill0 30926951
Rg_RgX_sub 438944
Rg_to_RgC 25662
ZXQX_dvd 1127
ZX_translate 33422
ZX_unscale 7399
ZX_unscale2n 8036
ZX_unscale_div 154
_add 68145
_cmul 111888
_gen_add 32929042
_gen_cmul 16135
_gen_mul 549740
_gen_nored 527922
_gen_one 538464
_gen_sqr 177088
_gen_sub 0
_gen_zero 84
_mul 80361
_mulXn 1176
_one 103173
_oneXn 1407
_red 71113
_sqr 191267
_sqrXn 1785
_sub 0
_zero 91
_zeroXn 0
addmulXn 1839332
addmulXncopy 578224
addpol 2775967
addpolcopy 285841
addshiftpol 116879
brent_kung_optpow 1770297
do_QXQ_eval 777
gen_RgXQ_eval_powers 7789287
gen_bkeval 992726
gen_bkeval_powers 4848731
get_Rg_algebra 67043
rem 2236424

Generated by: LCOV version 1.11