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 17110-9967e23) Lines: 1175 1335 88.0 %
Date: 2014-11-26 Functions: 124 132 93.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 784 990 79.2 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 575
QXQXV_to_mod 250
QXQX_to_mod 990
QXQX_to_mod_shallow 3765
QXQ_powers 445
QXQ_to_mod 10993
QXQ_to_mod_copy 8070
QXV_QXQ_eval 105
QXX_QXQ_eval 20
QX_ZXQV_eval 385
RgM_to_RgXV 22237
RgM_to_RgXX 10540
RgV_to_RgM 2255
RgV_to_RgX 209862
RgV_to_RgX_reverse 81020
RgXQC_red 0
RgXQV_RgXQ_mul 30
RgXQV_red 30
RgXQX_RgXQ_mul 10
RgXQX_divrem 10145
RgXQX_mul 2090
RgXQX_pseudodivrem 134781
RgXQX_pseudorem 14880
RgXQX_red 6990
RgXQX_sqr 0
RgXQX_translate 525
RgXQ_matrix_pow 135
RgXQ_minpoly_naive 5
RgXQ_norm 16820
RgXQ_pow 474
RgXQ_powers 595
RgXQ_powu 94324
RgXV_to_RgM 5314
RgXV_unscale 90
RgXX_to_RgM 15
RgXY_swap 160
RgXY_swapspec 10322
RgX_RgXQV_eval 0
RgX_RgXQ_eval 11235
RgX_RgXnV_eval 480
RgX_RgXn_eval 0
RgX_Rg_add 6867363
RgX_Rg_add_shallow 1690
RgX_Rg_div 16172744
RgX_Rg_divexact 693022
RgX_Rg_mul 43887070
RgX_Rg_sub 20466
RgX_add 9791851
RgX_blocks 25220
RgX_deflate 25303
RgX_deriv 104657
RgX_div_by_X_x 18850
RgX_divrem 8601529
RgX_divs 195
RgX_equal 760918
RgX_even_odd 9743
RgX_get_0 3060
RgX_get_1 119725
RgX_inflate 39588
RgX_mul 6342376
RgX_mulXn 1882401
RgX_mul_normalized 121080
RgX_muls 130
RgX_mulspec 7419387
RgX_mulspec_basecase 6940966
RgX_mulspec_basecase_limb 27711990
RgX_neg 566516
RgX_normalize 30
RgX_pseudodivrem 134696
RgX_pseudorem 14880
RgX_recip 5
RgX_recip_shallow 496283
RgX_recipspec_shallow 96629
RgX_renormalize_lg 122195
RgX_rescale 455
RgX_rotate_shallow 122025
RgX_shift 2505750
RgX_shift_shallow 38631183
RgX_splitting 14660
RgX_sqr 122181
RgX_sqrspec 122283
RgX_sqrspec_basecase 122232
RgX_sqrspec_basecase_limb 1049874
RgX_sub 5145889
RgX_to_RgC 658847
RgX_translate 123202
RgX_unscale 1930
RgX_val 855434
RgX_valrem 29287729
RgX_valrem_inexact 1506
RgXnV_red_shallow 240
RgXn_eval 25
RgXn_exp 0
RgXn_inv 210
RgXn_mul 78345
RgXn_mul_basecase 74600
RgXn_powers 240
RgXn_red_shallow 2105
RgXn_reverse 60
RgXn_sqr 185
RgXn_sqr_basecase 0
RgXspec_kill0 14153354
Rg_RgX_sub 255320
Rg_to_RgC 12155
ZXQX_dvd 795
ZX_translate 19366
ZX_unscale 3224
ZX_unscale2n 3938
ZX_unscale_div 105
_add 26385
_cmul 38095
_mul 36910
_mulXn 525
_one 31620
_oneXn 1005
_red 26675
_sqr 88818
_sqrXn 185
_zero 10
_zeroXn 0
addmulXn 782114
addmulXncopy 359601
addpol 1397701
addpolcopy 140662
addshiftpol 14895
brent_kung_optpow 481728
do_QXQ_eval 125
gen_RgXQ_eval_powers 3161787
gen_bkeval 490538
gen_bkeval_powers 1864332
rem 983179

Generated by: LCOV version 1.9