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 20095-ff095b1) Lines: 1255 1374 91.3 %
Date: 2017-01-21 05:50:01 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 953
QXQXV_to_mod 539
QXQX_to_mod 1918
QXQX_to_mod_shallow 83111
QXQ_powers 1393
QXQ_to_mod 408321
QXQ_to_mod_copy 14221
QXV_QXQ_eval 777
QXX_QXQ_eval 42
QX_ZXQV_eval 1729
RgM_to_RgXV 35376
RgM_to_RgXX 15309
RgV_to_RgM 6195
RgV_to_RgX 364345
RgV_to_RgX_reverse 149566
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 28
RgXQX_divrem 20921
RgXQX_mul 1659
RgXQX_pseudodivrem 25145
RgXQX_pseudorem 69628
RgXQX_red 5530
RgXQX_sqr 0
RgXQX_translate 6048
RgXQ_matrix_pow 287
RgXQ_minpoly_naive 56
RgXQ_norm 33008
RgXQ_pow 29896
RgXQ_powers 1701
RgXQ_powu 180508
RgXV_RgV_eval 105
RgXV_to_RgM 5355
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 44527
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 10599794
RgX_Rg_add_shallow 2422
RgX_Rg_div 21948601
RgX_Rg_divexact 923617
RgX_Rg_eval_bk 0
RgX_Rg_mul 63882246
RgX_Rg_sub 32215
RgX_add 15729234
RgX_blocks 69776
RgX_deflate 72792
RgX_deriv 264932
RgX_div_by_X_x 28227
RgX_divrem 12751998
RgX_divs 1729
RgX_equal 4038428
RgX_even_odd 22859
RgX_get_0 137592
RgX_get_1 234729
RgX_inflate 105342
RgX_mul 10932506
RgX_mulXn 2580149
RgX_mul_normalized 427793
RgX_muls 231
RgX_mulspec 12672644
RgX_mulspec_basecase 12002572
RgX_mulspec_basecase_limb 71021910
RgX_neg 1160579
RgX_normalize 1456
RgX_pseudodivrem 25026
RgX_pseudorem 69628
RgX_recip 62580
RgX_recip_shallow 429734
RgX_recipspec_shallow 290872
RgX_renormalize_lg 645904
RgX_rescale 1099
RgX_rotate_shallow 310303
RgX_shift 3346251
RgX_shift_shallow 54306660
RgX_splitting 40446
RgX_sqr 280693
RgX_sqrspec 281598
RgX_sqrspec_basecase 281145
RgX_sqrspec_basecase_limb 2881154
RgX_sub 9498625
RgX_to_RgC 3366642
RgX_translate 1001979
RgX_unscale 3353
RgX_val 2121145
RgX_valrem 40315608
RgX_valrem_inexact 2830
RgXnV_red_shallow 336
RgXn_eval 1561
RgXn_exp 0
RgXn_inv 658
RgXn_mul 3599707
RgXn_mul_basecase 3138617
RgXn_powers 336
RgXn_powu 0
RgXn_powu_i 1505
RgXn_red_shallow 5344
RgXn_reverse 84
RgXn_sqr 1995
RgXn_sqr_basecase 665
RgXspec_kill0 30564138
Rg_RgX_sub 288988
Rg_to_RgC 25795
ZXQX_dvd 1099
ZX_translate 44641
ZX_unscale 7727
ZX_unscale2n 9766
ZX_unscale_div 161
_add 69650
_cmul 114751
_gen_add 20186722
_gen_cmul 16135
_gen_mul 525583
_gen_nored 516155
_gen_one 526991
_gen_sqr 168919
_gen_sub 0
_gen_zero 84
_mul 94663
_mulXn 1176
_one 106078
_oneXn 1407
_red 72751
_sqr 220509
_sqrXn 1785
_sub 0
_zero 105
_zeroXn 0
addmulXn 1841779
addmulXncopy 582655
addpol 2790160
addpolcopy 290213
addshiftpol 114401
brent_kung_optpow 1939128
do_QXQ_eval 819
gen_RgXQ_eval_powers 8721212
gen_bkeval 1027889
gen_bkeval_powers 5411016
get_Rg_algebra 68905
rem 919574

Generated by: LCOV version 1.11