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 16741-1378b1c) Lines: 1174 1340 87.6 %
Date: 2014-08-17 Functions: 124 132 93.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 774 992 78.0 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 115
QXQXV_to_mod 205
QXQX_to_mod 810
QXQX_to_mod_shallow 3765
QXQ_powers 460
QXQ_to_mod 10993
QXQ_to_mod_copy 6265
QXV_QXQ_eval 115
QXX_QXQ_eval 20
QX_ZXQV_eval 435
RgM_to_RgXV 22017
RgM_to_RgXX 410
RgV_to_RgM 2085
RgV_to_RgX 167390
RgV_to_RgX_reverse 72510
RgXQC_red 0
RgXQV_RgXQ_mul 30
RgXQV_red 30
RgXQX_RgXQ_mul 10
RgXQX_divrem 9055
RgXQX_mul 2260
RgXQX_pseudodivrem 127909
RgXQX_pseudorem 14997
RgXQX_red 7320
RgXQX_sqr 0
RgXQX_translate 275
RgXQ_matrix_pow 130
RgXQ_minpoly_naive 5
RgXQ_norm 16275
RgXQ_pow 474
RgXQ_powers 610
RgXQ_powu 94283
RgXV_to_RgM 8906
RgXV_unscale 100
RgXX_to_RgM 15
RgXY_swap 160
RgXY_swapspec 6682
RgX_RgXQV_eval 0
RgX_RgXQ_eval 11140
RgX_RgXnV_eval 480
RgX_RgXn_eval 0
RgX_Rg_add 6831245
RgX_Rg_add_shallow 1680
RgX_Rg_div 16153057
RgX_Rg_divexact 481942
RgX_Rg_mul 43569999
RgX_Rg_sub 20388
RgX_add 9518666
RgX_blocks 25000
RgX_deflate 23764
RgX_deriv 71424
RgX_div_by_X_x 15970
RgX_divrem 8583645
RgX_divs 195
RgX_equal 565828
RgX_even_odd 9710
RgX_get_0 1055
RgX_get_1 106345
RgX_inflate 39855
RgX_mul 6330998
RgX_mulXn 1882786
RgX_mul_normalized 121292
RgX_muls 125
RgX_mulspec 7403158
RgX_mulspec_basecase 6923970
RgX_mulspec_basecase_limb 27704229
RgX_neg 488790
RgX_normalize 30
RgX_pseudodivrem 127884
RgX_pseudorem 14997
RgX_recip 10
RgX_recip_shallow 466780
RgX_recipspec_shallow 87401
RgX_renormalize_lg 115565
RgX_rescale 500
RgX_rotate_shallow 115205
RgX_shift 2505980
RgX_shift_shallow 38511641
RgX_splitting 14555
RgX_sqr 113355
RgX_sqrspec 113427
RgX_sqrspec_basecase 113391
RgX_sqrspec_basecase_limb 1014395
RgX_sub 4901537
RgX_to_RgC 681838
RgX_translate 120410
RgX_unscale 1520
RgX_val 848159
RgX_valrem 29244747
RgX_valrem_inexact 871
RgXnV_red_shallow 240
RgXn_eval 45
RgXn_exp 0
RgXn_inv 210
RgXn_mul 91910
RgXn_mul_basecase 88175
RgXn_powers 240
RgXn_red_shallow 2150
RgXn_reverse 60
RgXn_sqr 190
RgXn_sqr_basecase 0
RgXspec_kill0 14137671
Rg_RgX_sub 245980
Rg_to_RgC 10875
ZXQX_dvd 345
ZX_translate 18412
ZX_unscale 3294
ZX_unscale2n 4008
ZX_unscale_div 105
_add 26025
_cmul 37645
_mul 36762
_mulXn 545
_one 31300
_oneXn 1030
_red 26435
_sqr 88785
_sqrXn 190
_zero 10
_zeroXn 0
addmulXn 776753
addmulXncopy 357963
addpol 1389836
addpolcopy 139031
addshiftpol 14857
brent_kung_optpow 495851
do_QXQ_eval 135
gen_RgXQ_eval_powers 3058823
gen_bkeval 476237
gen_bkeval_powers 1790624
rem 904524

Generated by: LCOV version 1.9