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.10.1 lcov report (development 22726-9e20c6a88) Lines: 1454 1622 89.6 %
Date: 2018-06-24 05:36:21 Functions: 172 187 92.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 132048
QXQC_to_mod_shallow 19222
QXQM_to_mod_shallow 6615
QXQV_to_mod 4901
QXQXV_to_mod 1232
QXQX_to_mod 3164
QXQX_to_mod_shallow 146656
QXQ_powers 2331
QXQ_to_mod 978862
QXQ_to_mod_copy 23825
QXV_QXQ_eval 1526
QXX_QXQ_eval 63
QX_ZXQV_eval 3269
RgM_to_RgXV 49000
RgM_to_RgXX 16359
RgV_to_RgM 105742
RgV_to_RgX 466425
RgV_to_RgX_reverse 158603
RgXQC_red 89992
RgXQM_mul 0
RgXQM_red 13090
RgXQV_RgXQ_mul 77
RgXQV_red 903
RgXQX_RgXQ_mul 4613
RgXQX_divrem 69294
RgXQX_mul 12789
RgXQX_powers 448
RgXQX_pseudodivrem 5333
RgXQX_pseudorem 27759
RgXQX_red 379669
RgXQX_sqr 1792
RgXQX_translate 6426
RgXQ_matrix_pow 287
RgXQ_norm 38983
RgXQ_pow 19361
RgXQ_powers 3388
RgXQ_powu 181848
RgXV_RgV_eval 2884
RgXV_to_RgM 3963
RgXV_unscale 378
RgXX_to_RgM 308
RgXY_degreex 162
RgXY_swap 952
RgXY_swapspec 18036
RgX_RgV_eval 131362
RgX_RgXQV_eval 0
RgX_RgXQ_eval 101668
RgX_RgXnV_eval 714
RgX_RgXn_eval 0
RgX_Rg_add 11793568
RgX_Rg_add_shallow 2548
RgX_Rg_div 22851659
RgX_Rg_divexact 420278
RgX_Rg_eval_bk 0
RgX_Rg_mul 68919487
RgX_Rg_sub 33636
RgX_add 17858464
RgX_addmulXn 491096
RgX_addmulXn_shallow 2315890
RgX_addspec 199136
RgX_addspec_shallow 3187199
RgX_blocks 113427
RgX_deflate 126225
RgX_deriv 239155
RgX_digits 4221
RgX_div_by_X_x 41074
RgX_divrem 11249772
RgX_divrem_i 12173552
RgX_divs 2597
RgX_equal 4373640
RgX_even_odd 69109
RgX_inflate 446099
RgX_liftred 335191
RgX_mul 37110187
RgX_mulXn 2974317
RgX_mul_FpX 494591
RgX_mul_FpXQX 56
RgX_mul_QXQX 128070
RgX_mul_fast 41705866
RgX_mul_i 7383297
RgX_mul_normalized 689475
RgX_mulhigh_i 43315
RgX_mulhigh_i2 2239
RgX_muls 14427
RgX_mulspec 8789243
RgX_mulspec_basecase 8252444
RgX_mulspec_basecase_limb 46064121
RgX_neg 1091308
RgX_normalize 12698
RgX_pseudodivrem 5165
RgX_pseudorem 27759
RgX_recip 2093
RgX_recip_shallow 376376
RgX_recipspec_shallow 477449
RgX_rem 6478832
RgX_rem_FpX 649348
RgX_rem_FpXQX 35
RgX_rem_QXQX 37638
RgX_rem_fast 6478836
RgX_renormalize_lg 778100
RgX_rescale 1925
RgX_rotate_shallow 315273
RgX_shift 3472978
RgX_shift_shallow 59862718
RgX_splitting 40670
RgX_sqr 1746892
RgX_sqr_FpX 1260
RgX_sqr_FpXQX 147
RgX_sqr_QXQX 3775
RgX_sqr_fast 1763379
RgX_sqr_i 5803
RgX_sqrhigh_i 0
RgX_sqrhigh_i2 0
RgX_sqrspec 5881
RgX_sqrspec_basecase 5842
RgX_sqrspec_basecase_limb 33134
RgX_sub 12465933
RgX_to_RgC 6840727
RgX_translate 1362681
RgX_unscale 10486
RgX_val 2484236
RgX_valrem 43628575
RgX_valrem_inexact 14493
RgXnV_red_shallow 357
RgXn_eval 6503
RgXn_exp 12957
RgXn_inv 82929
RgXn_inv_FpX 0
RgXn_inv_FpXQX 0
RgXn_inv_fast 82929
RgXn_inv_i 126119
RgXn_mul 4552376
RgXn_mul2 2294273
RgXn_mul_basecase 2212863
RgXn_mulhigh 43315
RgXn_powers 357
RgXn_powu 0
RgXn_powu_i 1778
RgXn_recip_shallow 40923
RgXn_red_shallow 1588869
RgXn_reverse 91
RgXn_sqr 16527
RgXn_sqr2 238
RgXn_sqr_basecase 0
RgXn_sqrhigh 0
RgXn_sqrt 0
RgXspec_kill0 20936456
Rg_RgX_sub 466653
Rg_get_0 201719
Rg_get_1 2350794
Rg_to_RgC 689687
ZXQX_dvd 6122
ZX_translate 383033
ZX_unscale 7343
ZX_unscale2n 19671
ZX_unscale_div 1190
ZX_z_unscale 322889
_RgX_divrem 17668
_add 124341
_cmul 226485
_gen_add 21671187
_gen_cmul 369502
_gen_mul 758522
_gen_nored 887379
_gen_one 905152
_gen_sqr 249034
_gen_sub 0
_gen_zero 14602
_mul 90125
_mulXn 1288
_one 221599
_oneXn 1477
_red 129892
_sqr 214904
_sqrXn 2142
_sub 0
_zero 245
_zeroXn 0
brent_kung_optpow 3135030
do_QXQ_eval 1589
gen_RgXQ_eval_powers 12314072
gen_bkeval 1455810
gen_bkeval_powers 7689489
get_Rg_algebra 114510
rem 462602
zero_FpXQX_mod 7
zero_FpX_mod 307518

Generated by: LCOV version 1.13