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 18616-fe48336) Lines: 1204 1364 88.3 %
Date: 2016-02-14 Functions: 135 144 93.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 801 1004 79.8 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 812
QXQXV_to_mod 497
QXQX_to_mod 1792
QXQX_to_mod_shallow 68488
QXQ_powers 1827
QXQ_to_mod 292680
QXQ_to_mod_copy 13244
QXV_QXQ_eval 735
QXX_QXQ_eval 518
QX_ZXQV_eval 1652
RgM_to_RgXV 35664
RgM_to_RgXX 15050
RgV_to_RgM 6496
RgV_to_RgX 347646
RgV_to_RgX_reverse 149838
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 14
RgXQX_divrem 39690
RgXQX_mul 9156
RgXQX_pseudodivrem 259403
RgXQX_pseudorem 67998
RgXQX_red 23149
RgXQX_sqr 0
RgXQX_translate 6055
RgXQ_matrix_pow 287
RgXQ_minpoly_naive 56
RgXQ_norm 23904
RgXQ_pow 3130
RgXQ_powers 2135
RgXQ_powu 181747
RgXV_RgV_eval 105
RgXV_to_RgM 4958
RgXV_unscale 147
RgXX_to_RgM 21
RgXY_degreex 123326
RgXY_swap 224
RgXY_swapspec 17232
RgX_RgV_eval 5250
RgX_RgXQV_eval 0
RgX_RgXQ_eval 43862
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 10556758
RgX_Rg_add_shallow 2394
RgX_Rg_div 22145691
RgX_Rg_divexact 1672107
RgX_Rg_eval_bk 0
RgX_Rg_mul 65806915
RgX_Rg_sub 30780
RgX_add 17307522
RgX_blocks 69244
RgX_deflate 56983
RgX_deriv 334507
RgX_div_by_X_x 29897
RgX_divrem 13133215
RgX_divs 1729
RgX_equal 4099452
RgX_even_odd 21973
RgX_get_0 7560
RgX_get_1 328687
RgX_inflate 101031
RgX_mul 11117550
RgX_mulXn 2580051
RgX_mul_normalized 472828
RgX_muls 231
RgX_mulspec 12778255
RgX_mulspec_basecase 12027236
RgX_mulspec_basecase_limb 54801258
RgX_neg 1320584
RgX_normalize 1127
RgX_pseudodivrem 259284
RgX_pseudorem 67998
RgX_recip 60753
RgX_recip_shallow 1138949
RgX_recipspec_shallow 240038
RgX_renormalize_lg 309890
RgX_rescale 1351
RgX_rotate_shallow 306915
RgX_shift 3346090
RgX_shift_shallow 54339193
RgX_splitting 40180
RgX_sqr 254605
RgX_sqrspec 255569
RgX_sqrspec_basecase 255085
RgX_sqrspec_basecase_limb 2699337
RgX_sub 10057864
RgX_to_RgC 2148586
RgX_translate 1141040
RgX_unscale 3465
RgX_val 2143902
RgX_valrem 40309478
RgX_valrem_inexact 2822
RgXnV_red_shallow 336
RgXn_eval 1358
RgXn_exp 0
RgXn_inv 294
RgXn_mul 1989851
RgXn_mul_basecase 1967003
RgXn_powers 336
RgXn_red_shallow 3657
RgXn_reverse 84
RgXn_sqr 350
RgXn_sqr_basecase 0
RgXspec_kill0 28243133
Rg_RgX_sub 433710
Rg_to_RgC 28854
ZXQX_dvd 1127
ZX_translate 36551
ZX_unscale 6349
ZX_unscale2n 8652
ZX_unscale_div 154
_add 69034
_cmul 113484
_gen_add 32436156
_gen_cmul 16128
_gen_mul 486712
_gen_nored 464021
_gen_one 475879
_gen_sqr 156869
_gen_zero 84
_mul 81992
_mulXn 735
_one 105259
_oneXn 1407
_red 72156
_sqr 193970
_sqrXn 259
_zero 91
_zeroXn 0
addmulXn 1929047
addmulXncopy 555679
addpol 2823670
addpolcopy 262907
addshiftpol 114030
brent_kung_optpow 1634855
do_QXQ_eval 1253
gen_RgXQ_eval_powers 6737443
gen_bkeval 843527
gen_bkeval_powers 3655868
get_Rg_algebra 59414
rem 2212561

Generated by: LCOV version 1.9