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 to exceed 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.16.1 lcov report (development 28574-61f195acfe) Lines: 1610 1770 91.0 %
Date: 2023-06-08 07:47:28 Functions: 199 218 91.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
RgXQX_mul 0
RgXQX_powers 0
RgXQX_sqr 0
RgXV_prod 0
RgX_RgXQV_eval 0
RgX_RgXn_eval 0
RgX_Rg_eval_bk 0
RgX_affine 0
RgX_sqrhigh_i 0
RgX_sqrhigh_i2 0
RgXn_div_FpXQX 0
RgXn_exp 0
RgXn_inv_FpXQX 0
RgXn_powu 0
RgXn_sqr_basecase 0
_RgX_mul 0
_gen_sub 0
_sub 0
_zeroXn 0
RgXn_sqrt 7
RgXn_sqrhigh 14
RgXQX_RgXQ_mul 35
RgX_rem_FpXQX 70
RgXn_inv_FpX 70
rfrac_deflate 98
rfrac_deflate_max 98
rfrac_deflate_order 98
RgXn_div_FpX 119
RgXQV_RgXQ_mul 133
RgXn_reverse 154
RgX_sqr_FpXQX 196
QXY_QXQ_evalx 231
RgXY_degreex 288
RgXn_sqr2 315
RgXQM_mul 322
RgXX_to_RgM 322
RgXQ_trace 441
RgXnV_red_shallow 483
RgXn_powers 483
zero_FpXQX_mod 532
RgXV_maxdegree 588
_zero 826
RgXY_swap 952
RgX_RgXnV_eval 966
ZX_unscale_divpow 966
RgXQV_red 1204
RgXY_derivx 1232
RgX_sqr_FpX 1365
QXQX_homogenous_evalpow 1652
_oneXn 1939
RgX_mul_FpXQX 2044
QXV_QXQ_eval 2163
RgXn_powu_i 2286
RgXV_rescale 2289
do_QXQ_eval 2394
RgX_divs 2660
RgXQ_matrix_pow 2891
RgXV_RgV_eval 2947
RgX_muls 3943
RgXQ_powers 4207
RgX_homogenize 4270
RgXn_eval 4347
_mulXn 4528
RgXQ_norm 5096
QX_ZXQV_eval 5362
RgXV_unscale 5565
QXQM_to_mod_shallow 6244
RgX_digits 6923
RgXQV_factorback 7035
RgM_to_RgXV_reverse 7091
QXQ_powers 8103
RgX_sqr_i 8742
RgX_sqrspec_basecase 8781
RgX_sqrspec 8820
ZXQ_powers 10665
RgX_pseudodivrem 11717
QXQV_to_mod 11757
_sqrXn 11893
RgXQX_pseudodivrem 11955
ZX_unscale_div 12019
RgXn_sqr 12152
RgXQM_red 12243
QXQXV_to_mod 12495
ZXQX_dvd 12599
QXQC_to_mod_shallow 13384
RgX_sqr_QXQX 13488
RgX_normalize 13951
RgX_recip 16688
RgX_unscale 18303
RgM_to_RgXX 22290
RgXQX_translate 22537
_gen_zero 24184
_RgX_divrem 30352
RgXY_swapspec 31204
QXQX_to_mod 37184
RgX_rem_QXQX 37969
RgX_splitting 43554
RgX_sqrspec_basecase_limb 50715
RgXn_expint 52857
RgX_recip_shallow 57788
RgX_integXn 58715
RgXQC_red 63819
RgX_mul2n 65261
RgX_Rg_add_shallow 65528
RgX_rem_FpX 67494
_sqr 72684
RgXV_to_RgM 77243
_pow 87215
RgXQ_pow 109438
_ZXQmul 112845
RgXQ_powu 114354
RgXQX_pseudorem 134455
RgX_pseudorem 134455
RgXQX_divrem 135703
zero_FpX_mod 152762
get_Rg_algebra 154035
QXQX_to_mod_shallow 157123
QXQ_to_mod 160555
RgX_mul_QXQX 161990
RgX_RgV_eval 166768
Kronecker_to_mod 177178
RgX_Rg_sub 184654
ZXQ_powu 188500
RgV_to_RgX_reverse 190473
_ZXQsqr 213348
ZX_unscale2n 216728
RgX_homogenous_evalpow 225890
RgX_div_by_X_x 230909
RgX_addspec 234162
_mul 270747
RgV_to_RgM 288228
RgM_to_RgXV 301444
RgX_rotate_shallow 317037
_gen_sqr 344955
RgX_RgXQ_eval 400035
RgX_liftred 413406
RgXQX_red 448599
_gen_cmul 512818
RgX_addmulXn 526721
RgX_deriv 573044
RgXn_div 578248
_add 602740
RgX_valrem_inexact 617947
RgXn_recip_shallow 642421
QXQ_to_mod_shallow 698940
_red 701706
RgX_deflate 724938
gen_bkeval 730657
RgX_inflate 794272
RgXn_inv 806973
RgX_mul_FpX 811530
RgXn_inv_fast 897461
RgXn_inv_i 897461
_one 976387
ZX_unscale 998557
_cmul 1002930
_gen_mul 1041554
RgX_sqr 1127740
RgX_sqr_fast 1139892
RgX_recipspec_shallow 1190065
_gen_nored 1193442
_gen_one 1217104
Rg_to_RgC 1247214
RgXn_div_fast 1269147
RgXn_div_i 1269147
rem 1293210
ZX_z_unscale 1448765
RgV_to_RgX 1489108
RgX_mulhigh_i2 1565360
RgX_shift 1566983
RgX_mul_normalized 1751409
Rg_get_1 2150443
RgXn_div_gen 2166429
RgX_recip_i 2317034
RgX_rescale 2443890
RgXn_mulhigh 2567731
RgX_mulhigh_i 2626460
RgX_blocks 2740485
Rg_RgX_sub 2980140
RgX_mulXn 2983039
RgX_val 3603139
RgX_Rg_divexact 3930276
RgX_neg 4589716
RgX_translate_basecase 4591204
RgX_translate 4591640
RgX_renormalize_lg 6080899
RgXn_mul_basecase 6530589
Rg_get_0 6975003
RgX_addmulXn_shallow 7501793
RgX_addspec_shallow 7529491
RgXn_red_shallow 7779683
RgXn_mul2 9285812
RgX_rem_fast 10540946
RgX_rem 10540948
RgXn_mul 10893011
gen_bkeval_powers 11685641
RgX_to_RgC 12395535
RgX_divrem 12906617
gen_RgXQ_eval_powers 13143614
_gen_add 15683267
RgX_mul_i 16944139
RgX_mulspec_basecase 17676097
RgX_Rg_add 18253592
RgX_mulspec 18416489
RgX_divrem_i 18460415
brent_kung_optpow 19193552
RgX_equal 22815428
RgX_Rg_div 28857211
RgX_even_odd 29634522
RgX_sub 43572614
RgXspec_kill0 48421893
RgX_mul 57130066
RgX_valrem 62419651
RgX_mul_fast 70649529
RgX_add 74108708
RgX_mulspec_basecase_limb 86277437
RgX_Rg_mul 121644341
RgX_shift_shallow 127336685

Generated by: LCOV version 1.14