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 17960-0cd23ba) Lines: 1182 1353 87.4 %
Date: 2015-09-02 Functions: 125 142 88.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 793 994 79.8 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 805
QXQXV_to_mod 476
QXQX_to_mod 1729
QXQX_to_mod_shallow 68096
QXQ_powers 1344
QXQ_to_mod 291714
QXQ_to_mod_copy 13062
QXV_QXQ_eval 728
QXX_QXQ_eval 42
QX_ZXQV_eval 1638
RgM_to_RgXV 33613
RgM_to_RgXX 15050
RgV_to_RgM 4970
RgV_to_RgX 340380
RgV_to_RgX_reverse 145841
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 14
RgXQX_divrem 36477
RgXQX_mul 6825
RgXQX_pseudodivrem 204313
RgXQX_pseudorem 27587
RgXQX_red 19425
RgXQX_sqr 0
RgXQX_translate 5915
RgXQ_matrix_pow 287
RgXQ_minpoly_naive 56
RgXQ_norm 23820
RgXQ_pow 3032
RgXQ_powers 1652
RgXQ_powu 178363
RgXV_to_RgM 4775
RgXV_unscale 140
RgXX_to_RgM 21
RgXY_degreex 124497
RgXY_swap 224
RgXY_swapspec 15384
RgX_RgV_eval 0
RgX_RgXQV_eval 0
RgX_RgXQ_eval 43449
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 10141912
RgX_Rg_add_shallow 2394
RgX_Rg_div 22108095
RgX_Rg_divexact 1097127
RgX_Rg_eval_bk 0
RgX_Rg_mul 64302854
RgX_Rg_sub 30612
RgX_add 15977566
RgX_blocks 69244
RgX_deflate 51807
RgX_deriv 242914
RgX_div_by_X_x 28476
RgX_divrem 12815323
RgX_divs 1001
RgX_equal 4079208
RgX_even_odd 21151
RgX_get_0 7574
RgX_get_1 300708
RgX_inflate 99577
RgX_mul 9458300
RgX_mulXn 2580646
RgX_mul_normalized 231685
RgX_muls 231
RgX_mulspec 11028550
RgX_mulspec_basecase 10313819
RgX_mulspec_basecase_limb 44650616
RgX_neg 993920
RgX_normalize 595
RgX_pseudodivrem 204194
RgX_pseudorem 27587
RgX_recip 7
RgX_recip_shallow 787076
RgX_recipspec_shallow 203757
RgX_renormalize_lg 307153
RgX_rescale 644
RgX_rotate_shallow 306915
RgX_shift 3346083
RgX_shift_shallow 54016247
RgX_splitting 40180
RgX_sqr 241036
RgX_sqrspec 241782
RgX_sqrspec_basecase 241409
RgX_sqrspec_basecase_limb 2357243
RgX_sub 9105376
RgX_to_RgC 873880
RgX_translate 341949
RgX_unscale 2121
RgX_val 1285555
RgX_valrem 40357415
RgX_valrem_inexact 2458
RgXnV_red_shallow 336
RgXn_eval 63
RgXn_exp 0
RgXn_inv 294
RgXn_mul 369578
RgXn_mul_basecase 362410
RgXn_powers 336
RgXn_red_shallow 2947
RgXn_reverse 84
RgXn_sqr 350
RgXn_sqr_basecase 0
RgXspec_kill0 21593778
Rg_RgX_sub 402867
Rg_to_RgC 23583
ZXQX_dvd 1127
ZX_translate 31805
ZX_unscale 5361
ZX_unscale2n 6760
ZX_unscale_div 154
_add 68271
_cmul 112308
_gen_add 0
_gen_cmul 0
_gen_mul 0
_gen_nored 0
_gen_one 0
_gen_sqr 0
_gen_zero 0
_mul 78411
_mulXn 735
_one 103635
_oneXn 1407
_red 71183
_sqr 185210
_sqrXn 259
_zero 91
_zeroXn 0
addmulXn 1302577
addmulXncopy 525070
addpol 2195366
addpolcopy 232547
addshiftpol 24899
brent_kung_optpow 659704
do_QXQ_eval 770
gen_RgXQ_eval_powers 4661282
gen_bkeval 731449
gen_bkeval_powers 2731076
rem 1573632

Generated by: LCOV version 1.9