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 22344-f2bf0a3) Lines: 1452 1607 90.4 %
Date: 2018-04-25 06:16:49 Functions: 171 184 92.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 123976
QXQC_to_mod_shallow 17976
QXQM_to_mod_shallow 6090
QXQV_to_mod 4880
QXQXV_to_mod 1176
QXQX_to_mod 3087
QXQX_to_mod_shallow 122132
QXQ_powers 2091
QXQ_to_mod 914169
QXQ_to_mod_copy 23825
QXV_QXQ_eval 1232
QXX_QXQ_eval 63
QX_ZXQV_eval 2674
RgM_to_RgXV 48104
RgM_to_RgXX 16352
RgV_to_RgM 103712
RgV_to_RgX 456905
RgV_to_RgX_reverse 159639
RgXQC_red 84602
RgXQM_mul 0
RgXQM_red 12040
RgXQV_RgXQ_mul 77
RgXQV_red 903
RgXQX_RgXQ_mul 4585
RgXQX_divrem 57951
RgXQX_mul 12789
RgXQX_powers 448
RgXQX_pseudodivrem 5340
RgXQX_pseudorem 25115
RgXQX_red 345068
RgXQX_sqr 1792
RgXQX_translate 6146
RgXQ_matrix_pow 287
RgXQ_norm 34748
RgXQ_pow 18681
RgXQ_powers 3036
RgXQ_powu 206942
RgXV_RgV_eval 2814
RgXV_to_RgM 3765
RgXV_unscale 357
RgXX_to_RgM 308
RgXY_degreex 92
RgXY_swap 952
RgXY_swapspec 17172
RgX_RgV_eval 130655
RgX_RgXQV_eval 0
RgX_RgXQ_eval 45248
RgX_RgXnV_eval 714
RgX_RgXn_eval 0
RgX_Rg_add 11699271
RgX_Rg_add_shallow 2548
RgX_Rg_div 22618853
RgX_Rg_divexact 413411
RgX_Rg_eval_bk 0
RgX_Rg_mul 67949499
RgX_Rg_sub 33389
RgX_add 17227984
RgX_addmulXn 475918
RgX_addmulXn_shallow 2301998
RgX_addspec 185372
RgX_addspec_shallow 3175954
RgX_blocks 112307
RgX_deflate 123954
RgX_deriv 235411
RgX_digits 2219
RgX_div_by_X_x 40724
RgX_divrem 10985147
RgX_divrem_i 11902843
RgX_divs 2457
RgX_equal 3767249
RgX_even_odd 40188
RgX_inflate 397254
RgX_liftred 307569
RgX_mul 36927041
RgX_mulXn 2859839
RgX_mul_FpX 341067
RgX_mul_FpXQX 56
RgX_mul_QXQX 119992
RgX_mul_fast 41493862
RgX_mul_i 7374508
RgX_mul_normalized 691767
RgX_mulhigh_i 42195
RgX_mulhigh_i2 1700
RgX_muls 14217
RgX_mulspec 8780176
RgX_mulspec_basecase 8245962
RgX_mulspec_basecase_limb 44721909
RgX_neg 1062873
RgX_normalize 11585
RgX_pseudodivrem 5172
RgX_pseudorem 25115
RgX_recip 2093
RgX_recip_shallow 374398
RgX_recipspec_shallow 492712
RgX_rem 6286386
RgX_rem_FpX 348880
RgX_rem_FpXQX 35
RgX_rem_QXQX 31902
RgX_rem_fast 6286345
RgX_renormalize_lg 775818
RgX_rescale 1925
RgX_rotate_shallow 315273
RgX_shift 3443654
RgX_shift_shallow 59279522
RgX_splitting 40670
RgX_sqr 2537834
RgX_sqr_FpX 1260
RgX_sqr_FpXQX 147
RgX_sqr_QXQX 3781
RgX_sqr_fast 2553912
RgX_sqr_i 5768
RgX_sqrhigh_i 0
RgX_sqrhigh_i2 0
RgX_sqrspec 5846
RgX_sqrspec_basecase 5807
RgX_sqrspec_basecase_limb 32595
RgX_sub 12370612
RgX_to_RgC 6619696
RgX_translate 1372169
RgX_unscale 10549
RgX_val 2399886
RgX_valrem 43170809
RgX_valrem_inexact 14220
RgXnV_red_shallow 357
RgXn_eval 6727
RgXn_exp 12810
RgXn_inv 81284
RgXn_inv_i 124544
RgXn_mul 4524621
RgXn_mul2 2268450
RgXn_mul_basecase 2204323
RgXn_mulhigh 42195
RgXn_powers 357
RgXn_powu 0
RgXn_powu_i 1617
RgXn_recip_shallow 40712
RgXn_red_shallow 1587083
RgXn_reverse 91
RgXn_sqr 16086
RgXn_sqr2 238
RgXn_sqr_basecase 0
RgXn_sqrhigh 0
RgXn_sqrt 0
RgXspec_kill0 20906377
Rg_RgX_sub 464290
Rg_get_0 129171
Rg_get_1 2326355
Rg_to_RgC 679516
ZXQX_dvd 5968
ZX_translate 381992
ZX_unscale 7336
ZX_unscale2n 19099
ZX_unscale_div 1176
ZX_z_unscale 322931
_RgX_divrem 9058
_add 65695
_cmul 111559
_gen_add 21659803
_gen_cmul 368781
_gen_mul 753251
_gen_nored 881716
_gen_one 899300
_gen_sqr 244246
_gen_sub 0
_gen_zero 14602
_mul 103071
_mulXn 1218
_one 107014
_oneXn 1477
_red 71155
_sqr 251573
_sqrXn 1897
_sub 0
_zero 105
_zeroXn 0
brent_kung_optpow 3098564
do_QXQ_eval 1295
gen_RgXQ_eval_powers 12183420
gen_bkeval 1393716
gen_bkeval_powers 7577021
get_Rg_algebra 113481
rem 446676
zero_FpXQX_mod 7
zero_FpX_mod 210127

Generated by: LCOV version 1.11