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.10.0 lcov report (development 21064-a7054ad) Lines: 1454 1629 89.3 %
Date: 2017-09-25 06:24:50 Functions: 166 182 91.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 118588
QXQV_to_mod 4726
QXQXV_to_mod 609
QXQX_to_mod 1939
QXQX_to_mod_shallow 116832
QXQ_powers 1904
QXQ_to_mod 506760
QXQ_to_mod_copy 18134
QXV_QXQ_eval 1197
QXX_QXQ_eval 63
QX_ZXQV_eval 2590
RgM_to_RgXV 48059
RgM_to_RgXX 15365
RgV_to_RgM 103589
RgV_to_RgX 488391
RgV_to_RgX_reverse 149566
RgXQC_red 0
RgXQM_mul 0
RgXQM_red 0
RgXQV_RgXQ_mul 56
RgXQV_red 56
RgXQX_RgXQ_mul 4417
RgXQX_divrem 55618
RgXQX_mul 12789
RgXQX_powers 448
RgXQX_pseudodivrem 5193
RgXQX_pseudorem 24898
RgXQX_red 40154
RgXQX_sqr 1792
RgXQX_translate 6076
RgXQ_matrix_pow 287
RgXQ_minpoly_naive 56
RgXQ_norm 34794
RgXQ_pow 17877
RgXQ_powers 2338
RgXQ_powu 205772
RgXV_RgV_eval 2814
RgXV_to_RgM 2266
RgXV_unscale 224
RgXX_to_RgM 21
RgXY_degreex 92
RgXY_swap 224
RgXY_swapspec 12336
RgX_RgV_eval 125720
RgX_RgXQV_eval 0
RgX_RgXQ_eval 45052
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 11279548
RgX_Rg_add_shallow 2422
RgX_Rg_div 22578834
RgX_Rg_divexact 432374
RgX_Rg_eval_bk 0
RgX_Rg_mul 69246797
RgX_Rg_sub 32124
RgX_add 25283177
RgX_addmulXn 486357
RgX_addmulXn_shallow 2017937
RgX_addspec 195930
RgX_addspec_shallow 2942027
RgX_blocks 103928
RgX_deflate 114915
RgX_deriv 221899
RgX_digits 2219
RgX_div_by_X_x 39161
RgX_divrem 10868236
RgX_divrem_i 11607183
RgX_divs 2457
RgX_equal 23387939
RgX_even_odd 27385
RgX_get_0 132965
RgX_get_1 824903
RgX_inflate 240671
RgX_mul 39695784
RgX_mulXn 2859209
RgX_mul_FpX 292662
RgX_mul_FpXQX 84
RgX_mul_QXQX 22022
RgX_mul_ZXQX 93378
RgX_mul_fast 43408300
RgX_mul_i 6991990
RgX_mul_normalized 574697
RgX_mulhigh_i 33816
RgX_mulhigh_i2 1322
RgX_muls 13881
RgX_mulspec 8445570
RgX_mulspec_basecase 7895724
RgX_mulspec_basecase_limb 41077579
RgX_neg 1022905
RgX_normalize 1981
RgX_pseudodivrem 5039
RgX_pseudorem 24898
RgX_recip 1708
RgX_recip_shallow 328997
RgX_recipspec_shallow 297915
RgX_rem 5406775
RgX_rem_FpX 312368
RgX_rem_FpXQX 35
RgX_rem_QXQX 32601
RgX_rem_fast 5406727
RgX_renormalize_lg 720375
RgX_rescale 1456
RgX_rotate_shallow 315273
RgX_shift 3402753
RgX_shift_shallow 57748582
RgX_splitting 40614
RgX_sqr 2817701
RgX_sqr_FpX 651
RgX_sqr_FpXQX 203
RgX_sqr_QXQX 1479
RgX_sqr_ZXQX 1422
RgX_sqr_fast 2833386
RgX_sqr_i 8820
RgX_sqrhigh_i 0
RgX_sqrhigh_i2 0
RgX_sqrspec 9670
RgX_sqrspec_basecase 9245
RgX_sqrspec_basecase_limb 98569
RgX_sub 11408326
RgX_to_RgC 4082583
RgX_translate 1029136
RgX_unscale 3913
RgX_val 2095195
RgX_valrem 42479736
RgX_valrem_inexact 9557
RgXnV_red_shallow 336
RgXn_eval 1799
RgXn_exp 12586
RgXn_inv 112602
RgXn_mul 3678730
RgXn_mul2 1665564
RgXn_mul_basecase 1638572
RgXn_mulhigh 33816
RgXn_powers 336
RgXn_powu 0
RgXn_powu_i 1526
RgXn_red_shallow 1373990
RgXn_reverse 84
RgXn_sqr 15757
RgXn_sqr2 238
RgXn_sqr_basecase 0
RgXn_sqrhigh 0
RgXn_sqrt 0
RgXspec_kill0 19077837
Rg_RgX_sub 380057
Rg_to_RgC 680107
ZXQX_dvd 5912
ZX_translate 377127
ZX_unscale 7336
ZX_unscale2n 18210
ZX_unscale_div 1176
ZX_z_unscale 892633
_RgX_divrem 9058
_add 65219
_cmul 110845
_gen_add 20663605
_gen_cmul 353010
_gen_mul 607091
_gen_nored 729963
_gen_one 744691
_gen_sqr 197507
_gen_sub 0
_gen_zero 14553
_mul 101911
_mulXn 1190
_one 105819
_oneXn 1407
_red 70735
_sqr 248736
_sqrXn 1806
_sub 0
_zero 105
_zeroXn 0
brent_kung_optpow 2293045
do_QXQ_eval 1260
gen_RgXQ_eval_powers 10023882
gen_bkeval 1061737
gen_bkeval_powers 6433875
get_Rg_algebra 92614
rem 442924
zero_FpXQX_mod 0
zero_FpX_mod 142605

Generated by: LCOV version 1.11