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-bordeaux1.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.8.0 lcov report (development 17727-c4b959b) Lines: 1181 1341 88.1 %
Date: 2015-04-18 Functions: 125 133 94.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 791 994 79.6 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 805
QXQXV_to_mod 476
QXQX_to_mod 1729
QXQX_to_mod_shallow 68096
QXQ_powers 1288
QXQ_to_mod 291714
QXQ_to_mod_copy 13062
QXV_QXQ_eval 714
QXX_QXQ_eval 28
QX_ZXQV_eval 1540
RgM_to_RgXV 33508
RgM_to_RgXX 14812
RgV_to_RgM 4949
RgV_to_RgX 316518
RgV_to_RgX_reverse 114201
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 14
RgXQX_divrem 36463
RgXQX_mul 6825
RgXQX_pseudodivrem 204236
RgXQX_pseudorem 22617
RgXQX_red 19425
RgXQX_sqr 0
RgXQX_translate 5915
RgXQ_matrix_pow 280
RgXQ_minpoly_naive 49
RgXQ_norm 23820
RgXQ_pow 1842
RgXQ_powers 1589
RgXQ_powu 179906
RgXV_to_RgM 7526
RgXV_unscale 133
RgXX_to_RgM 21
RgXY_degreex 78757
RgXY_swap 224
RgXY_swapspec 15160
RgX_RgXQV_eval 0
RgX_RgXQ_eval 43330
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 10715644
RgX_Rg_add_shallow 2373
RgX_Rg_div 21995213
RgX_Rg_divexact 1096315
RgX_Rg_mul 61809792
RgX_Rg_sub 29058
RgX_add 15266843
RgX_blocks 35308
RgX_deflate 41573
RgX_deriv 215670
RgX_div_by_X_x 27979
RgX_divrem 12884493
RgX_divs 273
RgX_equal 4030313
RgX_even_odd 15130
RgX_get_0 7567
RgX_get_1 309073
RgX_inflate 59608
RgX_mul 10206994
RgX_mulXn 2579967
RgX_mul_normalized 620510
RgX_muls 231
RgX_mulspec 11803498
RgX_mulspec_basecase 11075288
RgX_mulspec_basecase_limb 53281149
RgX_neg 955241
RgX_normalize 42
RgX_pseudodivrem 204117
RgX_pseudorem 22617
RgX_recip 7
RgX_recip_shallow 768790
RgX_recipspec_shallow 198870
RgX_renormalize_lg 171073
RgX_rescale 644
RgX_rotate_shallow 170835
RgX_shift 3369358
RgX_shift_shallow 53340000
RgX_splitting 20524
RgX_sqr 236027
RgX_sqrspec 236533
RgX_sqrspec_basecase 236280
RgX_sqrspec_basecase_limb 2683431
RgX_sub 8096649
RgX_to_RgC 935606
RgX_translate 1502564
RgX_unscale 2065
RgX_val 2502535
RgX_valrem 40041757
RgX_valrem_inexact 2325
RgXnV_red_shallow 336
RgXn_eval 35
RgXn_exp 0
RgXn_inv 294
RgXn_mul 2718621
RgXn_mul_basecase 2691629
RgXn_powers 336
RgXn_red_shallow 2947
RgXn_reverse 84
RgXn_sqr 259
RgXn_sqr_basecase 0
RgXspec_kill0 27769990
Rg_RgX_sub 384041
Rg_to_RgC 23485
ZXQX_dvd 1127
ZX_translate 30923
ZX_unscale 5347
ZX_unscale2n 6725
ZX_unscale_div 154
_add 68054
_cmul 111972
_mul 76693
_mulXn 735
_one 103257
_oneXn 1407
_red 70924
_sqr 184436
_sqrXn 259
_zero 91
_zeroXn 0
addmulXn 2039341
addmulXncopy 533809
addpol 2943001
addpolcopy 241043
addshiftpol 24696
brent_kung_optpow 636169
do_QXQ_eval 742
gen_RgXQ_eval_powers 4441263
gen_bkeval 676051
gen_bkeval_powers 2613643
rem 1496478

Generated by: LCOV version 1.9