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 18946-c0ba5ba) Lines: 1256 1372 91.5 %
Date: 2016-05-25 Functions: 138 148 93.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 822 1004 81.9 %

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 82894
QXQ_powers 1351
QXQ_to_mod 407172
QXQ_to_mod_copy 13776
QXV_QXQ_eval 735
QXX_QXQ_eval 42
QX_ZXQV_eval 1652
RgM_to_RgXV 35223
RgM_to_RgXX 15050
RgV_to_RgM 5950
RgV_to_RgX 345699
RgV_to_RgX_reverse 149838
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 14
RgXQX_divrem 39865
RgXQX_mul 9478
RgXQX_pseudodivrem 262973
RgXQX_pseudorem 68964
RgXQX_red 23891
RgXQX_sqr 0
RgXQX_translate 6055
RgXQ_matrix_pow 287
RgXQ_minpoly_naive 56
RgXQ_norm 23918
RgXQ_pow 3130
RgXQ_powers 1659
RgXQ_powu 181803
RgXV_RgV_eval 105
RgXV_to_RgM 4881
RgXV_unscale 161
RgXX_to_RgM 21
RgXY_degreex 297379
RgXY_swap 224
RgXY_swapspec 22054
RgX_RgV_eval 5257
RgX_RgXQV_eval 0
RgX_RgXQ_eval 43113
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 10636866
RgX_Rg_add_shallow 2380
RgX_Rg_div 22154298
RgX_Rg_divexact 1695487
RgX_Rg_eval_bk 0
RgX_Rg_mul 65861190
RgX_Rg_sub 30675
RgX_add 17479838
RgX_blocks 69244
RgX_deflate 65057
RgX_deriv 307045
RgX_div_by_X_x 30429
RgX_divrem 13146629
RgX_divs 1729
RgX_equal 4119404
RgX_even_odd 22335
RgX_get_0 7077
RgX_get_1 331557
RgX_inflate 100890
RgX_mul 10911839
RgX_mulXn 2580051
RgX_mul_normalized 414274
RgX_muls 231
RgX_mulspec 12635220
RgX_mulspec_basecase 11860573
RgX_mulspec_basecase_limb 61623963
RgX_neg 1332795
RgX_normalize 1449
RgX_pseudodivrem 262854
RgX_pseudorem 68964
RgX_recip 63847
RgX_recip_shallow 1155969
RgX_recipspec_shallow 317440
RgX_renormalize_lg 310093
RgX_rescale 1351
RgX_rotate_shallow 306915
RgX_shift 3346090
RgX_shift_shallow 54441168
RgX_splitting 40180
RgX_sqr 255528
RgX_sqrspec 256493
RgX_sqrspec_basecase 256011
RgX_sqrspec_basecase_limb 2718809
RgX_sub 10141265
RgX_to_RgC 2794745
RgX_translate 967023
RgX_unscale 3626
RgX_val 1966226
RgX_valrem 40354132
RgX_valrem_inexact 2885
RgXnV_red_shallow 336
RgXn_eval 1491
RgXn_exp 0
RgXn_inv 294
RgXn_mul 2658200
RgXn_mul_basecase 2446009
RgXn_powers 336
RgXn_powu 0
RgXn_powu_i 56
RgXn_red_shallow 3804
RgXn_reverse 84
RgXn_sqr 497
RgXn_sqr_basecase 77
RgXspec_kill0 28869153
Rg_RgX_sub 440191
Rg_to_RgC 25585
ZXQX_dvd 1127
ZX_translate 33366
ZX_unscale 6300
ZX_unscale2n 7966
ZX_unscale_div 154
_add 68061
_cmul 111762
_gen_add 32692708
_gen_cmul 16135
_gen_mul 490940
_gen_nored 458909
_gen_one 467330
_gen_sqr 158608
_gen_sub 0
_gen_zero 84
_mul 81453
_mulXn 749
_one 103047
_oneXn 1407
_red 70987
_sqr 193780
_sqrXn 315
_sub 0
_zero 91
_zeroXn 0
addmulXn 1841516
addmulXncopy 576749
addpol 2775713
addpolcopy 283290
addshiftpol 116879
brent_kung_optpow 1779829
do_QXQ_eval 777
gen_RgXQ_eval_powers 7748257
gen_bkeval 966416
gen_bkeval_powers 4864844
get_Rg_algebra 54149
rem 2235808

Generated by: LCOV version 1.9