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 23171-a5c0ed393) Lines: 1460 1627 89.7 %
Date: 2018-10-20 05:38:07 Functions: 175 190 92.1 %
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 385
RgXQX_powers 448
RgX_RgXnV_eval 714
RgXQV_red 945
RgXY_swap 952
ZX_unscale_div 1190
QXQXV_to_mod 1239
RgX_sqr_FpX 1260
_mulXn 1295
_oneXn 1477
QXV_QXQ_eval 1533
do_QXQ_eval 1596
RgXQX_sqr 1792
RgXn_powu_i 1834
RgX_rescale 2002
RgX_recip 2100
_sqrXn 2254
QXQ_powers 2338
RgX_mulhigh_i2 2470
RgX_Rg_add_shallow 2548
RgX_divs 2597
RgXV_RgV_eval 2884
QXQX_to_mod 3206
QX_ZXQV_eval 3311
RgXQ_powers 3409
RgX_sqr_QXQX 3768
RgXV_to_RgM 3984
RgX_digits 4221
RgXQX_RgXQ_mul 4613
QXQV_to_mod 4936
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 14528
_gen_zero 14735
RgM_to_RgXX 16359
RgXn_sqr 16639
_RgX_divrem 17668
RgXQ_powu 18186
RgXQ_pow 18402
RgXY_swapspec 18918
QXQC_to_mod_shallow 19222
QXQ_to_mod_copy 24035
RgXQX_pseudorem 27759
RgX_pseudorem 27759
RgX_Rg_sub 31095
RgX_sqrspec_basecase_limb 33134
RgX_rem_QXQX 37631
RgXQ_norm 38668
_mul 39593
RgX_splitting 40670
RgXn_recip_shallow 40979
RgX_div_by_X_x 41270
RgX_mulhigh_i 43588
RgXn_mulhigh 43588
RgM_to_RgXV 49203
_ZXQmul 50463
_sqr 54333
ZX_unscale2n 56974
RgXQX_divrem 69350
RgX_even_odd 76989
RgXn_inv 82957
RgXn_inv_fast 82957
RgXQC_red 89992
RgX_RgXQ_eval 101682
RgV_to_RgM 105777
RgX_blocks 113700
get_Rg_algebra 115175
RgX_sqr 115473
_add 124397
RgXn_inv_i 126154
RgX_deflate 126546
RgX_mul_QXQX 126894
_red 129948
Kronecker_to_mod 130865
RgX_sqr_fast 132112
RgX_RgV_eval 143465
QXQX_to_mod_shallow 146663
RgV_to_RgX_reverse 158603
_ZXQsqr 159041
ZXQ_powu 163651
RgX_addspec 203113
_one 221676
_cmul 226555
RgX_deriv 239362
_gen_sqr 250294
zero_FpX_mod 307532
RgX_rotate_shallow 315273
RgX_liftred 332818
ZX_z_unscale 367528
RgX_recip_shallow 377200
RgXQX_red 377310
ZX_translate 388833
RgX_Rg_divexact 438856
gen_bkeval 450664
RgX_inflate 458260
rem 462189
RgV_to_RgX 468240
Rg_RgX_sub 469448
_gen_cmul 471912
RgX_recipspec_shallow 477413
RgX_mul_FpX 494605
RgX_addmulXn 495073
RgX_rem_FpX 649362
Rg_to_RgC 689918
RgX_mul_normalized 689956
_gen_mul 762435
RgX_renormalize_lg 778653
_gen_nored 903605
_gen_one 921455
QXQ_to_mod 978813
RgX_neg 1098421
RgX_translate 1364009
RgXn_mul_basecase 2221389
RgXn_red_shallow 2240793
RgXn_mul2 2306831
RgX_addmulXn_shallow 2322489
Rg_get_1 2382037
RgXn_mul 2470296
RgX_val 2484446
RgX_mulXn 2974324
brent_kung_optpow 3177729
RgX_addspec_shallow 3194761
RgX_shift 3473034
RgX_equal 4335525
RgX_rem 5807428
RgX_rem_fast 5807428
gen_bkeval_powers 5881892
RgX_to_RgC 6804005
Rg_get_0 7032319
gen_RgXQ_eval_powers 7080447
RgX_mul_i 7429951
RgX_mulspec_basecase 8266753
RgX_mulspec 8836026
RgX_divrem 11289017
RgX_divrem_i 12214957
RgX_Rg_add 12739967
RgX_sub 12826287
RgX_add 18333226
RgXspec_kill0 20982126
_gen_add 21775627
RgX_Rg_div 23885883
RgX_mul 42329729
RgX_valrem 43956139
RgX_mul_fast 44843613
RgX_mulspec_basecase_limb 46478216
RgX_shift_shallow 60505254
RgX_Rg_mul 63485409

Generated by: LCOV version 1.13