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 16937-4bd9b4e) Lines: 1169 1335 87.6 %
Date: 2014-10-24 Functions: 124 132 93.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 773 990 78.1 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 140
QXQXV_to_mod 273
QXQX_to_mod 1162
QXQX_to_mod_shallow 5271
QXQ_powers 609
QXQ_to_mod 15389
QXQ_to_mod_copy 8792
QXV_QXQ_eval 147
QXX_QXQ_eval 28
QX_ZXQV_eval 539
RgM_to_RgXV 30422
RgM_to_RgXX 602
RgV_to_RgM 2786
RgV_to_RgX 230747
RgV_to_RgX_reverse 112808
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 14
RgXQX_divrem 12054
RgXQX_mul 2926
RgXQX_pseudodivrem 177746
RgXQX_pseudorem 20531
RgXQX_red 9632
RgXQX_sqr 0
RgXQX_translate 399
RgXQ_matrix_pow 182
RgXQ_minpoly_naive 7
RgXQ_norm 22750
RgXQ_pow 666
RgXQ_powers 812
RgXQ_powu 131934
RgXV_to_RgM 7352
RgXV_unscale 119
RgXX_to_RgM 21
RgXY_swap 224
RgXY_swapspec 17770
RgX_RgXQV_eval 0
RgX_RgXQ_eval 15351
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 9441579
RgX_Rg_add_shallow 2352
RgX_Rg_div 22129222
RgX_Rg_divexact 826587
RgX_Rg_mul 60006649
RgX_Rg_sub 28436
RgX_add 13074490
RgX_blocks 35000
RgX_deflate 32431
RgX_deriv 147869
RgX_div_by_X_x 22134
RgX_divrem 11667110
RgX_divs 273
RgX_equal 781158
RgX_even_odd 13639
RgX_get_0 4256
RgX_get_1 165592
RgX_inflate 54239
RgX_mul 8689518
RgX_mulXn 2577132
RgX_mul_normalized 168697
RgX_muls 175
RgX_mulspec 10104150
RgX_mulspec_basecase 9466414
RgX_mulspec_basecase_limb 38422905
RgX_neg 736348
RgX_normalize 42
RgX_pseudodivrem 177711
RgX_pseudorem 20531
RgX_recip 7
RgX_recip_shallow 647159
RgX_recipspec_shallow 187185
RgX_renormalize_lg 161553
RgX_rescale 700
RgX_rotate_shallow 161287
RgX_shift 3496625
RgX_shift_shallow 52986473
RgX_splitting 20377
RgX_sqr 166964
RgX_sqrspec 167060
RgX_sqrspec_basecase 167012
RgX_sqrspec_basecase_limb 1441216
RgX_sub 6824653
RgX_to_RgC 882262
RgX_translate 166977
RgX_unscale 2044
RgX_val 1150809
RgX_valrem 40045837
RgX_valrem_inexact 1114
RgXnV_red_shallow 336
RgXn_eval 42
RgXn_exp 0
RgXn_inv 294
RgXn_mul 109669
RgXn_mul_basecase 104440
RgXn_powers 336
RgXn_red_shallow 2947
RgXn_reverse 84
RgXn_sqr 259
RgXn_sqr_basecase 0
RgXspec_kill0 19308706
Rg_RgX_sub 341288
Rg_to_RgC 14784
ZXQX_dvd 539
ZX_translate 25177
ZX_unscale 4312
ZX_unscale2n 5040
ZX_unscale_div 147
_add 35994
_cmul 52010
_mul 51301
_mulXn 735
_one 43162
_oneXn 1407
_red 36477
_sqr 124198
_sqrXn 259
_zero 14
_zeroXn 0
addmulXn 1053914
addmulXncopy 472247
addpol 1860015
addpolcopy 181339
addshiftpol 20538
brent_kung_optpow 659281
do_QXQ_eval 175
gen_RgXQ_eval_powers 4289084
gen_bkeval 678715
gen_bkeval_powers 2501459
rem 1255182

Generated by: LCOV version 1.9