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.0 lcov report (development 23858-9e31535a2) Lines: 1476 1643 89.8 %
Date: 2019-05-20 05:44:53 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
RgX_rem_FpXQX 42
QXX_QXQ_eval 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 644
RgX_RgXnV_eval 714
RgXY_swap 952
RgXQV_red 1064
RgX_mul_FpXQX 1092
ZX_unscale_div 1190
RgX_sqr_FpX 1260
_mulXn 1295
QXQXV_to_mod 1358
_oneXn 1477
RgXQX_sqr 1792
RgXn_powu_i 1834
QXV_QXQ_eval 1939
do_QXQ_eval 2002
RgX_rescale 2065
RgX_recip 2170
_sqrXn 2254
RgX_divs 2597
RgX_Rg_add_shallow 2802
RgXV_RgV_eval 2905
RgX_mulhigh_i2 2918
QXQ_powers 3346
QXQX_to_mod 3374
RgX_digits 4242
QX_ZXQV_eval 4270
RgXQX_RgXQ_mul 4613
RgXQ_powers 4774
QXQV_to_mod 5174
RgX_pseudodivrem 5368
RgXV_to_RgM 5440
RgXQX_pseudodivrem 5564
RgX_sqr_i 6545
RgX_sqrspec_basecase 6584
RgX_sqrspec 6623
RgXn_eval 6629
ZXQX_dvd 7188
ZX_unscale 7378
QXQM_to_mod_shallow 7476
RgX_unscale 10948
RgX_sqr_QXQX 12329
RgXQX_mul 12789
RgX_normalize 12880
RgXn_exp 12971
RgX_muls 14700
RgX_valrem_inexact 14809
RgXQM_red 14826
RgXn_sqr 16653
RgM_to_RgXX 16830
_RgX_divrem 17675
RgXQ_powu 18734
RgXQ_pow 18801
RgXY_swapspec 19240
_gen_zero 21035
RgXQX_translate 21749
QXQC_to_mod_shallow 23926
QXQ_to_mod_copy 24966
RgXQX_pseudorem 29279
RgX_pseudorem 29279
RgX_Rg_sub 32531
RgX_sqrspec_basecase_limb 34814
RgX_rem_QXQX 39906
RgX_splitting 40922
RgXQ_norm 42126
RgX_mulhigh_i 44757
RgXn_mulhigh 44757
RgXn_recip_shallow 45208
RgX_div_by_X_x 45610
_mul 46444
_ZXQmul 50460
_sqr 56279
RgM_to_RgXV 58005
RgX_rem_FpX 61418
ZX_unscale2n 62701
RgXQX_divrem 74131
RgXn_inv 83256
RgXn_inv_fast 83256
RgX_even_odd 85297
RgXQC_red 109186
RgX_blocks 114869
RgX_RgXQ_eval 117291
get_Rg_algebra 117310
RgXn_inv_i 126509
RgX_sqr 126843
RgV_to_RgM 135169
RgX_mul_QXQX 138766
RgX_sqr_fast 143496
_add 144006
RgX_deflate 145925
zero_FpX_mod 150396
Kronecker_to_mod 151844
QXQX_to_mod_shallow 152690
RgX_RgV_eval 154406
_red 156041
RgV_to_RgX_reverse 158603
_ZXQsqr 159048
ZXQ_powu 163660
RgX_addspec 209216
RgX_deriv 245907
_gen_sqr 255719
_one 259374
_cmul 261465
RgX_rotate_shallow 316113
RgX_liftred 369673
ZX_z_unscale 371811
ZX_translate 391502
gen_bkeval 404406
RgX_recip_shallow 415543
RgXQX_red 421837
RgX_Rg_divexact 447786
_gen_cmul 476553
RgX_recipspec_shallow 481930
rem 490536
RgX_mul_FpX 498630
RgX_addmulXn 501176
Rg_RgX_sub 514682
RgV_to_RgX 517984
RgX_inflate 592148
RgX_mul_normalized 746194
Rg_to_RgC 759403
_gen_mul 779200
RgX_renormalize_lg 796475
_gen_nored 924430
_gen_one 942588
QXQ_to_mod 1152763
RgX_neg 1181267
RgX_translate 1406669
RgXn_mul_basecase 2163511
RgXn_red_shallow 2251636
RgXn_mul2 2253937
RgXn_mul 2427412
RgX_addmulXn_shallow 2484434
RgX_val 2489744
Rg_get_1 2885025
RgX_mulXn 2974947
RgX_addspec_shallow 3349727
RgX_shift 3477900
brent_kung_optpow 3643198
gen_bkeval_powers 5842596
RgX_rem 6270126
RgX_rem_fast 6270126
gen_RgXQ_eval_powers 6886404
Rg_get_0 6971594
RgX_to_RgC 7086057
RgX_mul_i 7585007
RgX_mulspec_basecase 8425744
RgX_mulspec 8997263
RgX_divrem 11386869
RgX_divrem_i 12406952
RgX_Rg_add 12586065
RgX_add 20397637
RgXspec_kill0 21185094
_gen_add 21957165
RgX_sub 22116650
RgX_Rg_div 23939565
RgX_equal 24536896
RgX_valrem 38282477
RgX_mul 46026277
RgX_mulspec_basecase_limb 47549886
RgX_mul_fast 48498446
RgX_shift_shallow 67563996
RgX_Rg_mul 70228392

Generated by: LCOV version 1.13