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 - FlxX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28676-df828f1c94) Lines: 1195 1455 82.1 %
Date: 2023-08-26 07:54:43 Functions: 149 194 76.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FlxXC_sub 0
FlxXM_to_ZXXM 0
FlxXV_to_FlxM 0
FlxX_Flx_mul 0
FlxX_translate1 0
FlxX_triple 0
FlxY_Flx_translate 0
FlxY_FlxqV_evalx 0
FlxY_Flxq_evalx 0
FlxY_Flxq_evalx_pre 0
FlxqXC_FlxqXQV_eval 0
FlxqXC_FlxqXQV_eval_pre 0
FlxqXC_FlxqXQ_eval 0
FlxqXQ_autpow 0
FlxqXQ_autsum 0
FlxqXQ_auttrace 0
FlxqXQ_div 0
FlxqXQ_div_pre 0
FlxqXQ_invsafe 0
FlxqXQ_matrix_pow 0
FlxqXQ_powers 0
FlxqXQ_powu 0
FlxqXQ_sqr 0
FlxqX_FlxqXQV_eval 0
FlxqX_FlxqXQ_eval 0
FlxqX_Flxq_mul 0
FlxqX_Flxq_mul_to_monic 0
FlxqX_Newton 0
FlxqX_fromNewton 0
FlxqX_halfgcd 0
FlxqX_halfres 0
FlxqX_halfres_update 0
FlxqX_powu 0
FlxqX_red 0
FlxqXn_expint 0
FlxqXn_inv 0
FlxqXn_mul 0
FlxqXn_sqr 0
FlxqXn_sqr_pre 0
Kronecker_to_FlxqX 0
ZXXV_to_FlxXV 0
_FlxqXQ_add 0
matJ2_FlxXM 0
matid2_FlxXM 0
zlxX_translate1 0
FlxqX_halfgcd_all 7
FlxqXQ_inv 14
FlxqXQ_inv_pre 14
FlxqXQ_invsafe_pre 14
FlxqX_disc 14
FlxqXQ_auttrace_sqr 20
FlxqXQ_auttrace_mul 27
FlxqXQ_pow 35
FlxqX_resultant 56
FlxqX_resultant_basecase 56
FlxqX_resultant_pre 56
FlxqXQ_minpoly 62
FlxqX_invBarrett 76
FlxqXQ_pow_pre 91
FlxqX_extgcd_halfgcd 130
FlxqX_normalize 133
FlxY_evalx 231
FlxqXQ_minpoly_pre 237
FlxX_Flx_add 245
FlxqX_halfgcd_pre 286
polxn_FlxX 286
_FlxqXQ_zero 316
FlxqXQ_auttrace_pre 350
FlxqX_get_red 371
ZXXT_to_FlxXT 512
FlxqXQ_transmul_init 572
random_FlxqX 636
FlxX_Fl_mul 761
FlxX_double 761
get_FlxqXQ_algebra 761
FlxqX_halfgcd_all_i 810
FlxqX_halfgcd_all_pre 810
FlxqX_sqr 1120
FlxX_Laplace 1188
FlxqX_composedsum 1188
FlxqX_fromNewton_pre 1188
FlxqXn_expint_pre 1188
FlxqXQ_transmul 1242
FlxqX_invBarrett_basecase 1340
FlxqXQ_mul 1947
FlxX_invLaplace 2376
FlxqX_Newton_pre 2376
FlxqXn_inv_pre 2376
FlxX_neg 2629
Fly_to_FlxY 2664
FlxqXM_mul2 3289
FlxqX_FlxqXM_qmul 3289
FlxqX_halfres_split 3362
FlxqXQ_autpow_mul 3469
FlxqX_halfres_basecase 4099
FlxX_integXn 4709
_FlxqXQ_sub 5526
FlxXn_recip 5940
FlxqX_rem 5949
_FlxqXQ_red 6044
FlxqXM_FlxqX_mul2 6651
FlxqX_invBarrett_Newton 6697
FlxqX_saferesultant 7273
FlxqX_halfres_i 7461
FlxY_Flx_div 7957
FlxqX_invBarrett_pre 8037
FlxqX_powu_pre 10248
_FlxqX_sqr 10283
FlxYqq_mul 10648
FlxX_Flx_sub 11749
FlxqXQ_autsum_pre 12212
FlxXC_to_ZXXC 12411
FlxX_blocks 12939
FlxqXn_mulhigh 12939
FlxqX_addmulmul 13580
FlxqX_mulhigh_i 17647
FlxqXQ_autsum_sqr 18861
FlxqX_gcd 23394
FlxqXQ_autsum_mul 30448
FlxqV_roots_to_pol 32353
FlxqV_roots_to_deg1 32354
FlxYqq_pow 39530
FlxqXn_mul_pre 39620
FlxqX_div_by_X_x 53700
FlxqX_div_by_X_x_pre 53700
FlxX_to_Flm 54828
FlxqX_mul 63698
FlxXn_red 65034
FlxqXQ_autpow_pre 68365
FlxX_shift 71093
FlxqXQ_autpow_sqr 71758
FlxqX_FlxqXQ_eval_pre 75568
FlxYqq_sqr 80843
FlxX_deriv 80878
FlxqXQ_powu_pre 81221
FlxqX_safegcd 88765
FlxYqq_redswap 91492
FlxqX_divrem_Barrett 102692
Flxq_addmul_pre 107400
FlxqXQ_powers_pre 107515
FlxX_subspec 109294
FlxqX_divrem_Barrettspec 109567
_FlxqXQ_one 110550
FlxqX_extgcd 133674
FlxqX_extgcd_pre 133689
FlxqX_extgcd_basecase 133690
FlxY_FlxqV_evalx_pre 136123
FlxXV_to_FlxM_lg 138108
FlxX_blocks_FlxM 138108
FlxqX_FlxqXQV_eval_pre 138108
RgX_to_FlxqX 151673
FlxqX_Flxq_mul_pre 155128
FlxqX_gcd_basecase 166383
FlxqX_gcd_pre 174762
_FlxqXQ_mul 178842
FlxX_swap 182980
FlxqX_normalize_pre 189515
Flm_to_FlxX 220234
FlxqXV_prod 223296
FlxX_recipspec 233487
_FlxqXQ_sqr 261468
FlxqXQ_sqr_pre 261916
FlxqX_mulspec 290910
FlxX_to_FlxC 322075
FlxX_lgrenormalizespec 325738
FlxX_add 345104
FlxqX_saferem 352554
FlxqX_sqr_pre 354161
FlxX_to_Flx 363696
FlxqXQ_mul_pre 467929
FlxqX_get_red_pre 487815
_FlxqX_mul 537314
FlxX_sub 623071
FlxqX_Flxq_mul_to_monic_pre 630839
polx_FlxX 688608
pol1_FlxX 759598
FlxqX_divrem 1070637
FlxqX_red_pre 1254935
FlxqX_divrem_pre 1572409
FlxqX_mul_pre 1705322
FlxqX_rem_pre 2007244
FlxY_evalx_pre 2293354
Kronecker_to_FlxqX_pre 2350358
zxX_to_FlxX 2667036
FlxX_to_ZXX 2764315
ZXX_to_FlxX 2805372
FlxY_degreex 2870278
FlxqX_divrem_basecase 3134592
get_FlxqX_red 3580304
zxX_to_Kronecker 3764789
zxX_to_Kronecker_spec 4346589
FlxY_eval_powers_pre 6817360
FlxY_evalx_powers_pre 10160692
FlxX_renormalize 14985598

Generated by: LCOV version 1.14