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 17072-bc6ca01) Lines: 1175 1335 88.0 %
Date: 2014-11-17 Functions: 124 132 93.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 784 990 79.2 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 805
QXQXV_to_mod 350
QXQX_to_mod 1386
QXQX_to_mod_shallow 5271
QXQ_powers 609
QXQ_to_mod 15389
QXQ_to_mod_copy 11298
QXV_QXQ_eval 147
QXX_QXQ_eval 28
QX_ZXQV_eval 539
RgM_to_RgXV 30996
RgM_to_RgXX 14756
RgV_to_RgM 3038
RgV_to_RgX 291920
RgV_to_RgX_reverse 113410
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 14
RgXQX_divrem 14147
RgXQX_mul 2926
RgXQX_pseudodivrem 179080
RgXQX_pseudorem 20804
RgXQX_red 9646
RgXQX_sqr 0
RgXQX_translate 735
RgXQ_matrix_pow 182
RgXQ_minpoly_naive 7
RgXQ_norm 23296
RgXQ_pow 666
RgXQ_powers 812
RgXQ_powu 131994
RgXV_to_RgM 7415
RgXV_unscale 126
RgXX_to_RgM 21
RgXY_swap 224
RgXY_swapspec 14474
RgX_RgXQV_eval 0
RgX_RgXQ_eval 15610
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 9483654
RgX_Rg_add_shallow 2359
RgX_Rg_div 22139358
RgX_Rg_divexact 950976
RgX_Rg_mul 60274324
RgX_Rg_sub 28645
RgX_add 13465464
RgX_blocks 35308
RgX_deflate 34942
RgX_deriv 146199
RgX_div_by_X_x 26138
RgX_divrem 11735361
RgX_divs 273
RgX_equal 1054548
RgX_even_odd 13639
RgX_get_0 4284
RgX_get_1 167447
RgX_inflate 55415
RgX_mul 8707586
RgX_mulXn 2577265
RgX_mul_normalized 169139
RgX_muls 175
RgX_mulspec 10129705
RgX_mulspec_basecase 9488524
RgX_mulspec_basecase_limb 38513820
RgX_neg 790758
RgX_normalize 42
RgX_pseudodivrem 178961
RgX_pseudorem 20804
RgX_recip 7
RgX_recip_shallow 656318
RgX_recipspec_shallow 189913
RgX_renormalize_lg 171073
RgX_rescale 700
RgX_rotate_shallow 170835
RgX_shift 3496758
RgX_shift_shallow 53081148
RgX_splitting 20524
RgX_sqr 170810
RgX_sqrspec 170948
RgX_sqrspec_basecase 170879
RgX_sqrspec_basecase_limb 1468033
RgX_sub 7118331
RgX_to_RgC 901011
RgX_translate 170362
RgX_unscale 2695
RgX_val 1150795
RgX_valrem 40092801
RgX_valrem_inexact 2108
RgXnV_red_shallow 336
RgXn_eval 35
RgXn_exp 0
RgXn_inv 294
RgXn_mul 109683
RgXn_mul_basecase 104440
RgXn_powers 336
RgXn_red_shallow 2947
RgXn_reverse 84
RgXn_sqr 259
RgXn_sqr_basecase 0
RgXspec_kill0 19356793
Rg_RgX_sub 351600
Rg_to_RgC 16170
ZXQX_dvd 1113
ZX_translate 26493
ZX_unscale 4333
ZX_unscale2n 5131
ZX_unscale_div 147
_add 36372
_cmul 52647
_mul 51365
_mulXn 735
_one 43778
_oneXn 1407
_red 36911
_sqr 124133
_sqrXn 259
_zero 14
_zeroXn 0
addmulXn 1061407
addmulXncopy 474831
addpol 1871230
addpolcopy 183915
addshiftpol 20839
brent_kung_optpow 665095
do_QXQ_eval 175
gen_RgXQ_eval_powers 4353358
gen_bkeval 682479
gen_bkeval_powers 2564453
rem 1278392

Generated by: LCOV version 1.9