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.11.0 lcov report (development 22860-5579deb0b) Lines: 1459 1627 89.7 %
Date: 2018-07-18 05:36:42 Functions: 172 187 92.0 %
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
zero_FpXQX_mod 21
RgX_rem_FpXQX 42
QXX_QXQ_eval 63
RgXQV_RgXQ_mul 77
RgX_mul_FpXQX 77
RgXn_reverse 91
RgX_sqr_FpXQX 154
RgXY_degreex 162
RgXn_sqr2 238
_zero 245
RgXQ_matrix_pow 287
RgXX_to_RgM 308
RgXnV_red_shallow 357
RgXn_powers 357
RgXV_unscale 378
RgXQX_powers 448
RgX_RgXnV_eval 714
RgXQV_red 945
RgXY_swap 952
ZX_unscale_div 1190
QXQXV_to_mod 1232
RgX_sqr_FpX 1260
_mulXn 1295
_oneXn 1477
QXV_QXQ_eval 1526
do_QXQ_eval 1589
RgXQX_sqr 1792
RgXn_powu_i 1820
RgX_rescale 1953
RgX_recip 2093
_sqrXn 2240
RgX_mulhigh_i2 2309
QXQ_powers 2331
RgX_Rg_add_shallow 2548
RgX_divs 2597
RgXV_RgV_eval 2884
QXQX_to_mod 3164
QX_ZXQV_eval 3269
RgXQ_powers 3402
RgX_sqr_QXQX 3775
RgXV_to_RgM 3977
RgX_digits 4221
RgXQX_RgXQ_mul 4613
QXQV_to_mod 4908
RgX_pseudodivrem 5165
RgXQX_pseudodivrem 5333
RgX_sqr_i 5803
RgX_sqrspec_basecase 5842
RgX_sqrspec 5881
ZXQX_dvd 6136
RgXQX_translate 6426
RgXn_eval 6503
QXQM_to_mod_shallow 6615
ZX_unscale 7343
RgX_unscale 10486
RgX_normalize 12698
RgXQX_mul 12789
RgXn_exp 12957
RgXQM_red 13090
RgX_muls 14427
RgX_valrem_inexact 14514
_gen_zero 14602
RgM_to_RgXX 16359
RgXn_sqr 16625
_RgX_divrem 17668
RgXY_swapspec 18036
QXQC_to_mod_shallow 19222
RgXQ_pow 19361
ZX_unscale2n 19671
QXQ_to_mod_copy 23839
RgXQX_pseudorem 27752
RgX_pseudorem 27752
RgX_sqrspec_basecase_limb 33134
RgX_Rg_sub 33636
RgX_rem_QXQX 37638
RgXQ_norm 38668
RgX_splitting 40670
RgXn_recip_shallow 40923
RgX_div_by_X_x 41088
RgX_mulhigh_i 43420
RgXn_mulhigh 43420
RgM_to_RgXV 49007
RgXQX_divrem 69308
RgX_even_odd 73823
RgXn_inv 82936
RgXn_inv_fast 82936
RgXQC_red 89992
_mul 90139
RgX_RgXQ_eval 101668
RgV_to_RgM 105756
RgX_blocks 113532
get_Rg_algebra 114510
_add 124369
RgXn_inv_i 126133
RgX_deflate 126288
RgX_mul_QXQX 128077
_red 129906
RgX_RgV_eval 131362
Kronecker_to_mod 132055
QXQX_to_mod_shallow 146656
RgV_to_RgX_reverse 158603
RgXQ_powu 181880
RgX_addspec 201476
Rg_get_0 201747
_sqr 214932
_one 221627
_cmul 226513
RgX_deriv 239202
_gen_sqr 249034
zero_FpX_mod 307518
RgX_rotate_shallow 315273
ZX_z_unscale 324142
RgX_liftred 335205
_gen_cmul 369502
RgX_recip_shallow 376714
RgXQX_red 379683
ZX_translate 382977
RgX_Rg_divexact 420236
RgX_inflate 453413
rem 462147
RgV_to_RgX 466606
Rg_RgX_sub 466873
RgX_recipspec_shallow 477482
RgX_addmulXn 493436
RgX_mul_FpX 494598
RgX_rem_FpX 649348
RgX_mul_normalized 689475
Rg_to_RgC 689708
_gen_mul 758522
RgX_renormalize_lg 778310
_gen_nored 887379
_gen_one 905152
QXQ_to_mod 978862
RgX_neg 1091540
RgX_translate 1363432
gen_bkeval 1455683
RgX_sqr 1746864
RgX_sqr_fast 1763445
RgXn_mul_basecase 2217784
RgXn_red_shallow 2242214
RgXn_mul2 2301567
RgX_addmulXn_shallow 2318163
Rg_get_1 2383535
RgXn_mul 2466803
RgX_val 2484313
RgX_mulXn 2974324
brent_kung_optpow 3135008
RgX_addspec_shallow 3189384
RgX_shift 3472978
RgX_equal 4373990
RgX_rem_fast 6481255
RgX_rem 6481266
RgX_to_RgC 6841120
RgX_mul_i 7383854
gen_bkeval_powers 7689485
RgX_mulspec_basecase 8252984
RgX_mulspec 8789806
RgX_divrem 11250122
RgX_Rg_add 11900410
RgX_divrem_i 12174356
gen_RgXQ_eval_powers 12313161
RgX_sub 12472164
RgX_add 17869846
RgXspec_kill0 20947378
_gen_add 21671187
RgX_Rg_div 22878002
RgX_mul 37111794
RgX_mul_fast 39622008
RgX_valrem 43683875
RgX_mulspec_basecase_limb 46269616
RgX_shift_shallow 59921646
RgX_Rg_mul 68922154

Generated by: LCOV version 1.13