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 25360-69e1d37d28) Lines: 1531 1706 89.7 %
Date: 2020-05-27 06:00:58 Functions: 181 197 91.9 %
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_exp 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 70
rfrac_deflate 70
rfrac_deflate_max 70
rfrac_deflate_order 70
RgXQV_RgXQ_mul 77
RgXn_reverse 91
RgXY_degreex 190
RgX_sqr_FpXQX 196
RgXn_sqr2 245
RgXX_to_RgM 308
RgXnV_red_shallow 357
RgXn_powers 357
RgXQX_powers 448
_zero 462
RgX_muls 511
zero_FpXQX_mod 532
RgXQ_matrix_pow 560
RgXV_unscale 658
RgX_RgXnV_eval 714
RgXY_swap 952
RgXQV_red 1148
ZX_unscale_div 1190
RgX_sqr_FpX 1330
_oneXn 1477
RgXQX_homogenous_evalpow 1792
RgXQX_sqr 1792
QXV_QXQ_eval 1953
do_QXQ_eval 2016
RgX_mul_FpXQX 2037
RgXn_powu_i 2216
QXQXV_to_mod 2499
RgX_divs 2625
RgX_Rg_add_shallow 2883
RgXV_RgV_eval 2912
RgXn_eval 3388
QXQ_powers 3402
_mulXn 4234
QX_ZXQV_eval 4298
RgX_digits 4382
RgXQX_RgXQ_mul 4417
RgXQ_norm 5028
RgX_homogenous_evalpow 5040
QXQV_to_mod 5117
RgXQ_powers 5222
RgXV_to_RgM 5713
RgX_unscale 6930
ZX_unscale 7273
QXQM_to_mod_shallow 7476
RgX_pseudodivrem 7626
RgX_sqr_i 7644
RgX_sqrspec_basecase 7683
RgX_sqrspec 7722
RgXQX_pseudodivrem 7829
QXQX_to_mod 7896
ZXQX_dvd 8437
RgX_recip 9513
_sqrXn 11613
RgXn_sqr 11858
RgX_sqr_QXQX 12314
RgXQX_mul 12789
RgXn_expint 12971
RgX_normalize 13377
RgX_integXn 14210
RgXQM_red 14826
RgX_valrem_inexact 17192
RgM_to_RgXX 17656
_RgX_divrem 17780
RgXQ_powu 19047
RgXQ_pow 19108
_gen_zero 21140
RgXQX_translate 21280
RgXY_swapspec 21660
QXQC_to_mod_shallow 24465
RgXQX_pseudorem 28714
RgX_pseudorem 28714
RgX_Rg_sub 33170
QXQ_to_mod 39144
RgX_splitting 40922
RgX_sqrspec_basecase_limb 40939
_mul 47522
RgXn_recip_shallow 47604
_ZXQmul 50461
_sqr 57030
RgX_div_by_X_x 57214
RgM_to_RgXV 61805
ZX_unscale2n 63904
RgX_rem_FpX 67466
RgX_rem_QXQX 74179
RgXn_inv 77905
RgXn_inv_fast 77905
RgXQC_red 109438
RgXQX_divrem 111384
RgX_RgXQ_eval 111958
RgX_sqr 126871
RgV_to_RgM 131172
RgX_sqr_fast 138729
_add 140277
get_Rg_algebra 142993
zero_FpX_mod 151005
_red 152212
RgX_RgV_eval 155400
RgX_deflate 157474
_ZXQsqr 159043
RgV_to_RgX_reverse 159428
ZXQ_powu 163653
RgX_mul_QXQX 176989
QXQX_to_mod_shallow 188930
Kronecker_to_mod 190997
RgX_addspec 211212
RgX_deriv 231218
_one 250193
_cmul 252494
_gen_sqr 308307
RgX_rotate_shallow 316113
ZX_z_unscale 372816
gen_bkeval 424684
_gen_cmul 479461
RgX_rescale 484765
RgX_recipspec_shallow 495538
RgX_mul_FpX 499694
RgX_addmulXn 503484
RgX_liftred 514650
RgX_recip_shallow 521577
RgV_to_RgX 533182
rem 533880
RgX_Rg_divexact 577165
RgXQX_red 579274
Rg_RgX_sub 593867
RgX_inflate 601290
Rg_to_RgC 744376
RgX_mul_normalized 783404
RgX_mulhigh_i2 885463
RgXn_inv_i 904801
_gen_mul 942125
_gen_nored 1093425
_gen_one 1115679
QXQ_to_mod_shallow 1216384
RgX_neg 1431738
RgXn_mulhigh 1475132
RgX_mulhigh_i 1489342
RgX_shift 1534405
RgX_blocks 1622182
RgX_translate_basecase 1695842
RgX_translate 1696136
RgX_val 2672603
RgX_addmulXn_shallow 2706662
RgX_mulXn 2975178
RgX_addspec_shallow 3402314
Rg_get_1 3466433
RgX_renormalize_lg 3826606
brent_kung_optpow 4106724
RgXn_mul_basecase 4143023
RgXn_red_shallow 4562075
RgXn_mul2 5152273
RgX_even_odd 5850975
gen_bkeval_powers 5903903
RgXn_mul 6403837
Rg_get_0 6972315
gen_RgXQ_eval_powers 7103274
RgX_rem 7518441
RgX_rem_fast 7518441
RgX_to_RgC 8666691
RgX_mul_i 9503876
RgX_mulspec_basecase 10206770
RgX_mulspec 10918728
RgX_divrem 11436576
RgX_divrem_i 12751585
RgX_Rg_add 12981606
_gen_add 13988461
RgX_sub 15422168
RgX_equal 22201068
RgX_Rg_div 24668715
RgXspec_kill0 28707269
RgX_add 34035786
RgX_valrem 39063767
RgX_mul 45624179
RgX_mul_fast 53517358
RgX_mulspec_basecase_limb 56224449
RgX_shift_shallow 74323861
RgX_Rg_mul 74680872

Generated by: LCOV version 1.13