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 17400-bace02f) Lines: 1181 1341 88.1 %
Date: 2015-01-25 Functions: 125 133 94.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 788 994 79.3 %

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 0
QXQV_to_mod 805
QXQXV_to_mod 462
QXQX_to_mod 1708
QXQX_to_mod_shallow 53704
QXQ_powers 1106
QXQ_to_mod 241118
QXQ_to_mod_copy 13006
QXV_QXQ_eval 532
QXX_QXQ_eval 28
QX_ZXQV_eval 1309
RgM_to_RgXV 33255
RgM_to_RgXX 14812
RgV_to_RgM 4270
RgV_to_RgX 304146
RgV_to_RgX_reverse 113410
RgXQC_red 0
RgXQV_RgXQ_mul 42
RgXQV_red 42
RgXQX_RgXQ_mul 14
RgXQX_divrem 32837
RgXQX_mul 6258
RgXQX_pseudodivrem 202675
RgXQX_pseudorem 21588
RgXQX_red 18501
RgXQX_sqr 0
RgXQX_translate 2786
RgXQ_matrix_pow 238
RgXQ_minpoly_naive 7
RgXQ_norm 23792
RgXQ_pow 1842
RgXQ_powers 1365
RgXQ_powu 163911
RgXV_to_RgM 7476
RgXV_unscale 168
RgXX_to_RgM 21
RgXY_degreex 78392
RgXY_swap 224
RgXY_swapspec 14474
RgX_RgXQV_eval 0
RgX_RgXQ_eval 39795
RgX_RgXnV_eval 672
RgX_RgXn_eval 0
RgX_Rg_add 9783304
RgX_Rg_add_shallow 2387
RgX_Rg_div 21980534
RgX_Rg_divexact 1018130
RgX_Rg_mul 61231703
RgX_Rg_sub 29023
RgX_add 14834951
RgX_blocks 35308
RgX_deflate 39971
RgX_deriv 149044
RgX_div_by_X_x 27643
RgX_divrem 12451799
RgX_divs 273
RgX_equal 3911348
RgX_even_odd 13786
RgX_get_0 7441
RgX_get_1 291503
RgX_inflate 57641
RgX_mul 9125483
RgX_mulXn 2577797
RgX_mul_normalized 187962
RgX_muls 231
RgX_mulspec 10574373
RgX_mulspec_basecase 9906072
RgX_mulspec_basecase_limb 40562830
RgX_neg 819336
RgX_normalize 42
RgX_pseudodivrem 202556
RgX_pseudorem 21588
RgX_recip 7
RgX_recip_shallow 752711
RgX_recipspec_shallow 189913
RgX_renormalize_lg 171073
RgX_rescale 644
RgX_rotate_shallow 170835
RgX_shift 3343696
RgX_shift_shallow 53218718
RgX_splitting 20524
RgX_sqr 209924
RgX_sqrspec 210430
RgX_sqrspec_basecase 210177
RgX_sqrspec_basecase_limb 1901840
RgX_sub 7889254
RgX_to_RgC 922474
RgX_translate 183969
RgX_unscale 2177
RgX_val 1151999
RgX_valrem 40017201
RgX_valrem_inexact 2297
RgXnV_red_shallow 336
RgXn_eval 35
RgXn_exp 0
RgXn_inv 294
RgXn_mul 111587
RgXn_mul_basecase 106190
RgXn_powers 336
RgXn_red_shallow 2947
RgXn_reverse 84
RgXn_sqr 259
RgXn_sqr_basecase 0
RgXspec_kill0 20234624
Rg_RgX_sub 381344
Rg_to_RgC 21672
ZXQX_dvd 1127
ZX_translate 29292
ZX_unscale 5200
ZX_unscale2n 6564
ZX_unscale_div 147
_add 62909
_cmul 103292
_mul 64834
_mulXn 735
_one 94353
_oneXn 1407
_red 64134
_sqr 158823
_sqrXn 259
_zero 91
_zeroXn 0
addmulXn 1120715
addmulXncopy 484052
addpol 1940888
addpolcopy 191935
addshiftpol 21497
brent_kung_optpow 685744
do_QXQ_eval 560
gen_RgXQ_eval_powers 4512132
gen_bkeval 713326
gen_bkeval_powers 2684015
rem 1480448

Generated by: LCOV version 1.9