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 to exceed 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.12.1 lcov report (development 24189-091f7bb4a) Lines: 1492 1658 90.0 %
Date: 2019-08-20 05:51:28 Functions: 178 193 92.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 152796
QXQC_to_mod_shallow 23926
QXQM_to_mod_shallow 7476
QXQV_to_mod 5202
QXQXV_to_mod 1372
QXQX_to_mod 3416
QXQX_to_mod_shallow 153908
QXQ_powers 3381
QXQ_to_mod 1154590
QXQ_to_mod_copy 25148
QXV_QXQ_eval 1946
QXX_QXQ_eval 63
QX_ZXQV_eval 4291
RgM_to_RgXV 58245
RgM_to_RgXX 17405
RgV_to_RgM 135483
RgV_to_RgX 524019
RgV_to_RgX_reverse 158603
RgXQC_red 109186
RgXQM_mul 0
RgXQM_red 14826
RgXQV_RgXQ_mul 77
RgXQV_red 1106
RgXQX_RgXQ_mul 4753
RgXQX_divrem 74130
RgXQX_mul 12789
RgXQX_powers 448
RgXQX_pseudodivrem 7769
RgXQX_pseudorem 28188
RgXQX_red 424497
RgXQX_sqr 1792
RgXQX_translate 21798
RgXQ_matrix_pow 553
RgXQ_norm 42670
RgXQ_pow 18815
RgXQ_powers 4823
RgXQ_powu 18706
RgXV_RgV_eval 2905
RgXV_to_RgM 5496
RgXV_unscale 651
RgXX_to_RgM 308
RgXY_degreex 176
RgXY_swap 952
RgXY_swapspec 19572
RgX_RgV_eval 154406
RgX_RgXQV_eval 0
RgX_RgXQ_eval 117543
RgX_RgXnV_eval 714
RgX_RgXn_eval 0
RgX_Rg_add 12592553
RgX_Rg_add_shallow 2837
RgX_Rg_div 23741782
RgX_Rg_divexact 455076
RgX_Rg_eval_bk 0
RgX_Rg_mul 70089708
RgX_Rg_sub 32748
RgX_add 20469395
RgX_addmulXn 501398
RgX_addmulXn_shallow 2527570
RgX_addspec 209438
RgX_addspec_shallow 3392708
RgX_blocks 117119
RgX_deflate 147847
RgX_deriv 248139
RgX_digits 4354
RgX_div_by_X_x 50858
RgX_divrem 11399577
RgX_divrem_i 12452870
RgX_divs 2625
RgX_equal 24555998
RgX_even_odd 85352
RgX_inflate 593486
RgX_liftred 369491
RgX_mul 46075061
RgX_mulXn 2974975
RgX_mul_FpX 498994
RgX_mul_FpXQX 2037
RgX_mul_QXQX 138773
RgX_mul_fast 48557143
RgX_mul_i 7625113
RgX_mul_normalized 749409
RgX_mulhigh_i 47007
RgX_mulhigh_i2 3044
RgX_muls 14714
RgX_mulspec 9038018
RgX_mulspec_basecase 8465633
RgX_mulspec_basecase_limb 47731468
RgX_neg 1297960
RgX_normalize 13223
RgX_pseudodivrem 7573
RgX_pseudorem 28188
RgX_recip 2170
RgX_recip_shallow 434603
RgX_recipspec_shallow 530941
RgX_rem 6313677
RgX_rem_FpX 67480
RgX_rem_FpXQX 63
RgX_rem_QXQX 39808
RgX_rem_fast 6313677
RgX_renormalize_lg 801003
RgX_rescale 2072
RgX_rotate_shallow 316113
RgX_shift 7433302
RgX_shift_shallow 64400136
RgX_splitting 40922
RgX_sqr 127191
RgX_sqr_FpX 1260
RgX_sqr_FpXQX 196
RgX_sqr_QXQX 12329
RgX_sqr_fast 153203
RgX_sqr_i 6573
RgX_sqrhigh_i 0
RgX_sqrhigh_i2 0
RgX_sqrspec 6651
RgX_sqrspec_basecase 6612
RgX_sqrspec_basecase_limb 34870
RgX_sub 22324173
RgX_to_RgC 7113330
RgX_translate 1417240
RgX_unscale 11067
RgX_val 2489835
RgX_valrem 38456578
RgX_valrem_inexact 14970
RgXnV_red_shallow 357
RgXn_eval 6629
RgXn_exp 12971
RgXn_inv 83320
RgXn_inv_FpX 0
RgXn_inv_FpXQX 0
RgXn_inv_fast 83319
RgXn_inv_i 126939
RgXn_mul 2435075
RgXn_mul2 2254273
RgXn_mul_basecase 2163602
RgXn_mulhigh 47007
RgXn_powers 357
RgXn_powu 0
RgXn_powu_i 2216
RgXn_recip_shallow 45452
RgXn_red_shallow 2268612
RgXn_reverse 91
RgXn_sqr 26012
RgXn_sqr2 238
RgXn_sqr_basecase 0
RgXn_sqrhigh 0
RgXn_sqrt 0
RgXspec_kill0 21265082
Rg_RgX_sub 531861
Rg_get_0 6971454
Rg_get_1 2889712
Rg_to_RgC 760422
ZXQX_dvd 8344
ZXQ_powu 163646
ZX_translate 429614
ZX_unscale 7378
ZX_unscale2n 63059
ZX_unscale_div 1190
ZX_z_unscale 371944
_RgX_divrem 17766
_ZXQmul 50458
_ZXQsqr 159038
_add 144465
_cmul 262176
_gen_add 12841711
_gen_cmul 476553
_gen_mul 782140
_gen_nored 928812
_gen_one 947194
_gen_sqr 256622
_gen_sub 0
_gen_zero 21035
_mul 46663
_mulXn 4234
_one 260083
_oneXn 1477
_red 156540
_sqr 56398
_sqrXn 11613
_sub 0
_zero 553
_zeroXn 0
brent_kung_optpow 3825411
do_QXQ_eval 2009
gen_RgXQ_eval_powers 7035875
gen_bkeval 405829
gen_bkeval_powers 5891846
get_Rg_algebra 118402
rem 516224
rfrac_deflate 63
rfrac_deflate_max 63
rfrac_deflate_order 63
zero_FpXQX_mod 532
zero_FpX_mod 150739

Generated by: LCOV version 1.13