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 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.10.0 lcov report (development 21351-66b5338) Lines: 1453 1608 90.4 %
Date: 2017-11-22 06:21:08 Functions: 170 183 92.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Kronecker_to_mod 124923
QXQC_to_mod_shallow 17087
QXQM_to_mod_shallow 5964
QXQV_to_mod 4726
QXQXV_to_mod 609
QXQX_to_mod 1967
QXQX_to_mod_shallow 121303
QXQ_powers 1939
QXQ_to_mod 858856
QXQ_to_mod_copy 18211
QXV_QXQ_eval 1190
QXX_QXQ_eval 63
QX_ZXQV_eval 2576
RgM_to_RgXV 47043
RgM_to_RgXX 15736
RgV_to_RgM 102938
RgV_to_RgX 433106
RgV_to_RgX_reverse 149566
RgXQC_red 82362
RgXQM_mul 0
RgXQM_red 12376
RgXQV_RgXQ_mul 56
RgXQV_red 546
RgXQX_RgXQ_mul 4417
RgXQX_divrem 57247
RgXQX_mul 12789
RgXQX_powers 448
RgXQX_pseudodivrem 5319
RgXQX_pseudorem 24933
RgXQX_red 346450
RgXQX_sqr 1792
RgXQX_translate 6076
RgXQ_matrix_pow 287
RgXQ_minpoly_naive 56
RgXQ_norm 34738
RgXQ_pow 18136
RgXQ_powers 2401
RgXQ_powu 209127
RgXV_RgV_eval 2814
RgXV_to_RgM 2678
RgXV_unscale 231
RgXX_to_RgM 77
RgXY_degreex 99
RgXY_swap 784
RgXY_swapspec 13414
RgX_RgV_eval 139440
RgX_RgXQV_eval 0
RgX_RgXQ_eval 45052
RgX_RgXnV_eval 714
RgX_RgXn_eval 0
RgX_Rg_add 11740309
RgX_Rg_add_shallow 2422
RgX_Rg_div 22601702
RgX_Rg_divexact 433746
RgX_Rg_eval_bk 0
RgX_Rg_mul 69852079
RgX_Rg_sub 32901
RgX_add 17211125
RgX_addmulXn 478438
RgX_addmulXn_shallow 2021073
RgX_addspec 187682
RgX_addspec_shallow 2909948
RgX_blocks 104740
RgX_deflate 114544
RgX_deriv 222613
RgX_digits 2219
RgX_div_by_X_x 39189
RgX_divrem 10932020
RgX_divrem_i 11678210
RgX_divs 2457
RgX_equal 3970279
RgX_even_odd 46562
RgX_inflate 405798
RgX_liftred 309175
RgX_mul 36858826
RgX_mulXn 2859216
RgX_mul_FpX 404522
RgX_mul_FpXQX 63
RgX_mul_QXQX 120944
RgX_mul_fast 40640491
RgX_mul_i 7290503
RgX_mul_normalized 579499
RgX_mulhigh_i 34628
RgX_mulhigh_i2 2540
RgX_muls 14217
RgX_mulspec 8694052
RgX_mulspec_basecase 8158837
RgX_mulspec_basecase_limb 42777420
RgX_neg 1038865
RgX_normalize 1939
RgX_pseudodivrem 5158
RgX_pseudorem 24933
RgX_recip 2149
RgX_recip_shallow 330187
RgX_recipspec_shallow 437640
RgX_rem 6475571
RgX_rem_FpX 327754
RgX_rem_FpXQX 42
RgX_rem_QXQX 31759
RgX_rem_fast 6475459
RgX_renormalize_lg 751371
RgX_rescale 1806
RgX_rotate_shallow 315273
RgX_shift 3402844
RgX_shift_shallow 57761061
RgX_splitting 40614
RgX_sqr 2815831
RgX_sqr_FpX 1253
RgX_sqr_FpXQX 147
RgX_sqr_QXQX 3769
RgX_sqr_fast 2831842
RgX_sqr_i 5621
RgX_sqrhigh_i 0
RgX_sqrhigh_i2 0
RgX_sqrspec 5699
RgX_sqrspec_basecase 5660
RgX_sqrspec_basecase_limb 32266
RgX_sub 11675751
RgX_to_RgC 4091962
RgX_translate 1048113
RgX_unscale 5026
RgX_val 2109601
RgX_valrem 42485518
RgX_valrem_inexact 10082
RgXnV_red_shallow 357
RgXn_eval 1778
RgXn_exp 12810
RgXn_inv 125090
RgXn_mul 3747057
RgXn_mul2 1729089
RgXn_mul_basecase 1688412
RgXn_mulhigh 34628
RgXn_powers 357
RgXn_powu 0
RgXn_powu_i 1575
RgXn_red_shallow 1392974
RgXn_reverse 91
RgXn_sqr 16065
RgXn_sqr2 238
RgXn_sqr_basecase 0
RgXn_sqrhigh 0
RgXn_sqrt 0
RgXspec_kill0 19700158
Rg_RgX_sub 380343
Rg_get_0 128940
Rg_get_1 2166604
Rg_to_RgC 677132
ZXQX_dvd 5919
ZX_translate 378289
ZX_unscale 7336
ZX_unscale2n 19050
ZX_unscale_div 1176
ZX_z_unscale 319858
_RgX_divrem 9058
_add 65345
_cmul 111013
_gen_add 20844065
_gen_cmul 382151
_gen_mul 627104
_gen_nored 762457
_gen_one 777808
_gen_sqr 203702
_gen_sub 0
_gen_zero 18249
_mul 104492
_mulXn 1211
_one 105910
_oneXn 1477
_red 70826
_sqr 253610
_sqrXn 1876
_sub 0
_zero 105
_zeroXn 0
brent_kung_optpow 2281986
do_QXQ_eval 1253
gen_RgXQ_eval_powers 10111058
gen_bkeval 1070404
gen_bkeval_powers 6506588
get_Rg_algebra 96534
rem 445395
zero_FpXQX_mod 7
zero_FpX_mod 255459

Generated by: LCOV version 1.11