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 - FpX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 19828-fe528f7) Lines: 1235 1333 92.6 %
Date: 2016-12-07 05:49:12 Functions: 147 153 96.1 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpVV_polint_tree 1
FpV_FpM_polint 0
FpV_inv 4160
FpV_invVandermonde 1736
FpV_polint 1
FpV_producttree 1737
FpV_roots_to_pol 5306
FpXC_FpXQV_eval 854
FpXM_FpXQV_eval 308
FpXM_FpX_mul2 169
FpXM_mul2 169
FpXQM_autsum 140
FpXQM_autsum_mul 308
FpXQM_autsum_sqr 210
FpXQ_autpow 514
FpXQ_autpow_mul 7
FpXQ_autpow_sqr 542
FpXQ_autpowers 609
FpXQ_autsum 795
FpXQ_autsum_mul 1551
FpXQ_autsum_sqr 809
FpXQ_auttrace 14
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_charpoly 1
FpXQ_conjvec 8
FpXQ_div 228360
FpXQ_inv 285860
FpXQ_invsafe 285874
FpXQ_issquare 3258
FpXQ_log 71767
FpXQ_matrix_pow 3876
FpXQ_minpoly 3277
FpXQ_mul 39904890
FpXQ_norm 3210
FpXQ_order 29
FpXQ_pow 514881
FpXQ_pow_Frobenius 150882
FpXQ_powers 184728
FpXQ_powu 62860
FpXQ_red 2639212
FpXQ_sqr 3057452
FpXQ_sqrt 7340
FpXQ_sqrtn 8436
FpXQ_trace 20785
FpXQ_transmul 123
FpXQ_transmul_init 30
FpXT_red 1092439
FpXV_prod 18650
FpXV_red 289286
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 1737
FpX_FpXM_qmul 165
FpX_FpXQV_eval 125351
FpX_FpXQ_eval 169869
FpX_Fp_add 550258
FpX_Fp_add_shallow 0
FpX_Fp_mul 3492469
FpX_Fp_mul_to_monic 45761
FpX_Fp_mulspec 3498153
FpX_Fp_sub 299292
FpX_Fp_sub_shallow 1559
FpX_Frobenius 156140
FpX_add 8071652
FpX_addmulmul 346
FpX_center 665539
FpX_chinese_coprime 665
FpX_deriv 635232
FpX_digits 5642
FpX_disc 28
FpX_div_by_X_x 19369
FpX_divrem 3630529
FpX_divrem_Barrett_noGC 97316
FpX_divrem_Barrettspec 97712
FpX_divrem_basecase 61588780
FpX_dotproduct 566
FpX_eval 370430
FpX_extgcd 356567
FpX_extgcd_basecase 246645
FpX_extgcd_halfgcd 4
FpX_fromdigits 2296
FpX_gcd 440417
FpX_gcd_basecase 52006
FpX_gcd_check 0
FpX_get_red 420248
FpX_halfgcd 468
FpX_halfgcd_basecase 191
FpX_halfgcd_i 356
FpX_halfgcd_split 165
FpX_halve 1090
FpX_invBarrett 2040
FpX_invBarrett_Newton 518
FpX_invBarrett_basecase 1490
FpX_is_squarefree 2065
FpX_matFrobenius 2581
FpX_mul 46013198
FpX_mulspec 1653183
FpX_mulu 1183978
FpX_neg 73691
FpX_normalize 259006
FpX_powu 258181
FpX_recipspec 196031
FpX_red 65996117
FpX_rem 60913479
FpX_rescale 13377
FpX_resultant 5878
FpX_sqr 3146742
FpX_sub 6480902
FpX_subspec 6578613
FpX_valrem 23779
FpXn_mul 108
Fp_FpXQ_log 5626
Fp_FpX_sub 8426
Fp_issquare 90797
Fp_neg_FpX 13
Fp_red_FpX 6584
FqV_inv 0
Fq_ispower 133
Fq_issquare 90650
Fq_log 245819
ZX_lgrenormalizespec 206011
Z_to_FpX 1710
_FpXQ_add 1052847
_FpXQ_cmul 1181040
_FpXQ_easylog 1443
_FpXQ_mul 868943
_FpXQ_one 308392
_FpXQ_pow 150173
_FpXQ_rand 3384
_FpXQ_red 352469
_FpXQ_sqr 2589431
_FpXQ_sub 57554
_FpXQ_zero 3537
_FpX_add 10241
_FpX_divrem 69706
_FpX_mul 69261
_FpX_sqr 55076
bounded_order 5382
deg2pol_shallow 8087
gener_FpXQ 6841
gener_FpXQ_i 1465
gener_FpXQ_local 1442
get_FpXQ_algebra 13559
get_FpXQ_star 1782
get_FpX_algebra 0
get_FpX_degree 1582298
get_FpX_mod 383268
get_FpX_red 64544038
get_FpX_var 1377326
matid2_FpXM 4
random_FpX 19165
to_Flx 39994659
to_Flxq 753079

Generated by: LCOV version 1.11