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 24038-ebe36f6c4) Lines: 1477 1643 89.9 %
Date: 2019-07-22 05:53:26 Functions: 178 193 92.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
RgXQM_mul 0
RgX_RgXQV_eval 0
RgX_RgXn_eval 0
RgX_Rg_eval_bk 0
RgX_sqrhigh_i 0
RgX_sqrhigh_i2 0
RgXn_inv_FpX 0
RgXn_inv_FpXQX 0
RgXn_powu 0
RgXn_sqr_basecase 0
RgXn_sqrhigh 0
RgXn_sqrt 0
_gen_sub 0
_sub 0
_zeroXn 0
QXX_QXQ_eval 63
RgX_rem_FpXQX 63
rfrac_deflate 63
rfrac_deflate_max 63
rfrac_deflate_order 63
RgXQV_RgXQ_mul 77
RgXn_reverse 91
RgXY_degreex 176
RgX_sqr_FpXQX 196
RgXn_sqr2 238
RgXX_to_RgM 308
RgXnV_red_shallow 357
RgXn_powers 357
RgXQX_powers 448
zero_FpXQX_mod 532
RgXQ_matrix_pow 539
_zero 553
RgXV_unscale 651
RgX_RgXnV_eval 714
RgXY_swap 952
RgXQV_red 1106
ZX_unscale_div 1190
RgX_sqr_FpX 1260
_mulXn 1309
QXQXV_to_mod 1372
_oneXn 1477
RgXQX_sqr 1792
RgXn_powu_i 1848
QXV_QXQ_eval 1946
do_QXQ_eval 2009
RgX_mul_FpXQX 2037
RgX_rescale 2065
RgX_recip 2170
_sqrXn 2268
RgX_divs 2625
RgX_Rg_add_shallow 2830
RgXV_RgV_eval 2905
RgX_mulhigh_i2 2974
QXQ_powers 3353
QXQX_to_mod 3416
QX_ZXQV_eval 4291
RgX_digits 4354
RgXQX_RgXQ_mul 4753
RgXQ_powers 4781
QXQV_to_mod 5181
RgXV_to_RgM 5454
RgX_sqr_i 6545
RgX_sqrspec_basecase 6584
RgX_sqrspec 6623
RgXn_eval 6629
ZXQX_dvd 7210
ZX_unscale 7378
QXQM_to_mod_shallow 7476
RgX_pseudodivrem 7573
RgXQX_pseudodivrem 7769
RgX_unscale 11067
RgX_sqr_QXQX 12329
RgXQX_mul 12789
RgXn_exp 12971
RgX_normalize 13223
RgX_muls 14700
RgXQM_red 14826
RgX_valrem_inexact 14956
RgXn_sqr 16667
RgM_to_RgXX 16845
_RgX_divrem 17766
RgXQ_powu 18692
RgXQ_pow 18815
RgXY_swapspec 19572
_gen_zero 21035
RgXQX_translate 21798
QXQC_to_mod_shallow 23926
QXQ_to_mod_copy 25106
RgXQX_pseudorem 29546
RgX_pseudorem 29546
RgX_Rg_sub 32699
RgX_sqrspec_basecase_limb 34814
RgX_rem_QXQX 39906
RgX_splitting 40922
RgXQ_norm 42621
RgX_mulhigh_i 44813
RgXn_mulhigh 44813
RgXn_recip_shallow 45326
_mul 46474
_ZXQmul 50460
RgX_div_by_X_x 50634
_sqr 56300
RgM_to_RgXV 58112
ZX_unscale2n 62996
RgX_rem_FpX 69951
RgXQX_divrem 74214
RgXn_inv 83268
RgXn_inv_fast 83268
RgX_even_odd 85294
RgXQC_red 109186
RgX_blocks 114925
RgX_RgXQ_eval 117438
get_Rg_algebra 118402
RgXn_inv_i 126528
RgX_sqr 127093
RgV_to_RgM 135380
RgX_mul_QXQX 138773
RgX_sqr_fast 143760
_add 144171
RgX_deflate 147605
zero_FpX_mod 151257
QXQX_to_mod_shallow 152711
Kronecker_to_mod 152796
RgX_RgV_eval 154406
_red 156253
RgV_to_RgX_reverse 158603
_ZXQsqr 159039
ZXQ_powu 163643
RgX_addspec 209438
RgX_deriv 247810
_gen_sqr 256622
_one 259705
_cmul 261777
RgX_rotate_shallow 316113
RgX_liftred 369687
ZX_z_unscale 371902
gen_bkeval 405670
RgXQX_red 422019
ZX_translate 429425
RgX_recip_shallow 433474
RgX_Rg_divexact 456833
_gen_cmul 476553
RgX_mul_FpX 498854
RgX_addmulXn 501398
RgV_to_RgX 521143
rem 523875
Rg_RgX_sub 528961
RgX_recipspec_shallow 530686
RgX_inflate 593404
RgX_mul_normalized 748919
Rg_to_RgC 759936
_gen_mul 782140
RgX_renormalize_lg 796615
_gen_nored 928812
_gen_one 947194
QXQ_to_mod 1152840
RgX_neg 1240497
RgX_translate 1414987
RgXn_mul_basecase 2163539
RgXn_red_shallow 2252863
RgXn_mul2 2254098
RgXn_mul 2427643
RgX_val 2489800
RgX_addmulXn_shallow 2521290
Rg_get_1 2889285
RgX_mulXn 2974947
RgX_addspec_shallow 3387352
brent_kung_optpow 3808700
gen_bkeval_powers 5891599
RgX_rem 6307618
RgX_rem_fast 6307618
Rg_get_0 6971741
gen_RgXQ_eval_powers 7035158
RgX_to_RgC 7108049
RgX_shift 7433141
RgX_mul_i 7618158
RgX_mulspec_basecase 8458671
RgX_mulspec 9031063
RgX_divrem 11397711
RgX_divrem_i 12445190
RgX_Rg_add 12592257
_gen_add 12841711
RgX_add 20463687
RgXspec_kill0 21251004
RgX_sub 22287461
RgX_Rg_div 23949179
RgX_equal 24567040
RgX_valrem 38422203
RgX_mul 46068984
RgX_mulspec_basecase_limb 47700942
RgX_mul_fast 48541439
RgX_shift_shallow 64325195
RgX_Rg_mul 70325211

Generated by: LCOV version 1.13