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 19834-0e97742) Lines: 1254 1376 91.1 %
Date: 2016-12-09 05:49:11 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 869
QXQXV_to_mod 525
QXQX_to_mod 1883
QXQX_to_mod_shallow 82992
QXQ_powers 1386
QXQ_to_mod 407964
QXQ_to_mod_copy 13920
QXV_QXQ_eval 770
QXX_QXQ_eval 42
QX_ZXQV_eval 1722
RgM_to_RgXV 35201
RgM_to_RgXX 15309
RgV_to_RgM 6027
RgV_to_RgX 359228
RgV_to_RgX_reverse 149566
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 28
RgXQX_divrem 20725
RgXQX_mul 1638
RgXQX_pseudodivrem 24235
RgXQX_pseudorem 69210
RgXQX_red 5509
RgXQX_sqr 0
RgXQX_translate 6048
RgXQ_matrix_pow 287
RgXQ_minpoly_naive 56
RgXQ_norm 32980
RgXQ_pow 2477
RgXQ_powers 1694
RgXQ_powu 180507
RgXV_RgV_eval 105
RgXV_to_RgM 5152
RgXV_unscale 203
RgXX_to_RgM 21
RgXY_degreex 1
RgXY_swap 224
RgXY_swapspec 12922
RgX_RgV_eval 5257
RgX_RgXQV_eval 0
RgX_RgXQ_eval 44499
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 10345600
RgX_Rg_add_shallow 2422
RgX_Rg_div 21890907
RgX_Rg_divexact 918885
RgX_Rg_eval_bk 0
RgX_Rg_mul 63413988
RgX_Rg_sub 32138
RgX_add 15535855
RgX_blocks 69776
RgX_deflate 70920
RgX_deriv 266434
RgX_div_by_X_x 27457
RgX_divrem 12650114
RgX_divs 1729
RgX_equal 3791197
RgX_even_odd 22591
RgX_get_0 110873
RgX_get_1 214415
RgX_inflate 104459
RgX_mul 10881519
RgX_mulXn 2580149
RgX_mul_normalized 415661
RgX_muls 231
RgX_mulspec 12629767
RgX_mulspec_basecase 11975248
RgX_mulspec_basecase_limb 70591923
RgX_neg 1177630
RgX_normalize 1456
RgX_pseudodivrem 24116
RgX_pseudorem 69210
RgX_recip 63847
RgX_recip_shallow 434903
RgX_recipspec_shallow 290680
RgX_renormalize_lg 645638
RgX_rescale 1099
RgX_rotate_shallow 310303
RgX_shift 3346181
RgX_shift_shallow 54508483
RgX_splitting 40446
RgX_sqr 249685
RgX_sqrspec 250591
RgX_sqrspec_basecase 250138
RgX_sqrspec_basecase_limb 2703647
RgX_sub 9657498
RgX_to_RgC 3364754
RgX_translate 970842
RgX_unscale 3234
RgX_val 2076506
RgX_valrem 40396109
RgX_valrem_inexact 2648
RgXnV_red_shallow 336
RgXn_eval 1442
RgXn_exp 0
RgXn_inv 462
RgXn_mul 3520625
RgXn_mul_basecase 3062832
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 30326917
Rg_RgX_sub 305096
Rg_to_RgC 25606
ZXQX_dvd 1099
ZX_translate 35025
ZX_unscale 7489
ZX_unscale2n 9005
ZX_unscale_div 161
_add 69594
_cmul 114667
_gen_add 32936424
_gen_cmul 16135
_gen_mul 552358
_gen_nored 531142
_gen_one 541796
_gen_sqr 177928
_gen_sub 0
_gen_zero 84
_mul 79739
_mulXn 1176
_one 105987
_oneXn 1407
_red 72667
_sqr 190424
_sqrXn 1785
_sub 0
_zero 105
_zeroXn 0
addmulXn 1870446
addmulXncopy 585399
addpol 2820027
addpolcopy 292958
addshiftpol 114380
brent_kung_optpow 1969692
do_QXQ_eval 812
gen_RgXQ_eval_powers 8167209
gen_bkeval 1025907
gen_bkeval_powers 5056689
get_Rg_algebra 67687
rem 917592

Generated by: LCOV version 1.11