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 21741-70cf009) Lines: 1300 1407 92.4 %
Date: 2018-01-21 06:18:30 Functions: 153 159 96.2 %
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 4860
FpV_invVandermonde 2436
FpV_polint 1
FpV_producttree 2437
FpV_roots_to_pol 6237
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 626
FpXQ_autpow_mul 21
FpXQ_autpow_sqr 647
FpXQ_autpowers 770
FpXQ_autsum 1019
FpXQ_autsum_mul 2027
FpXQ_autsum_sqr 1061
FpXQ_auttrace 14
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_charpoly 1
FpXQ_conjvec 8
FpXQ_div 227682
FpXQ_inv 311964
FpXQ_invsafe 311985
FpXQ_issquare 3729
FpXQ_log 81700
FpXQ_matrix_pow 1026
FpXQ_minpoly 4145
FpXQ_mul 40185373
FpXQ_norm 3639
FpXQ_order 29
FpXQ_pow 518189
FpXQ_pow_Frobenius 106277
FpXQ_powers 185111
FpXQ_powu 66754
FpXQ_red 3986788
FpXQ_sqr 3670936
FpXQ_sqrt 11820
FpXQ_sqrtn 12314
FpXQ_trace 20789
FpXQ_transmul 312
FpXQ_transmul_init 114
FpXT_red 1100159
FpXV_FpX_fromdigits 2303
FpXV_prod 23450
FpXV_red 291113
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 2437
FpX_FpXM_qmul 165
FpX_FpXQV_eval 131048
FpX_FpXQ_eval 165666
FpX_Fp_add 553675
FpX_Fp_add_shallow 0
FpX_Fp_mul 3406407
FpX_Fp_mul_to_monic 47824
FpX_Fp_mulspec 3412803
FpX_Fp_sub 302883
FpX_Fp_sub_shallow 1596
FpX_Frobenius 207183
FpX_Laplace 105
FpX_Newton 210
FpX_add 8304804
FpX_addmulmul 346
FpX_center 710577
FpX_chinese_coprime 980
FpX_convol 0
FpX_deriv 642237
FpX_digits 5663
FpX_disc 28
FpX_div_by_X_x 25683
FpX_divrem 3944696
FpX_divrem_Barrett_noGC 97855
FpX_divrem_Barrettspec 98223
FpX_divrem_basecase 63872033
FpX_dotproduct 958
FpX_eval 363122
FpX_extgcd 391127
FpX_extgcd_basecase 265637
FpX_extgcd_halfgcd 4
FpX_fromNewton 105
FpX_gcd 450848
FpX_gcd_basecase 55652
FpX_gcd_check 106
FpX_get_red 386943
FpX_halfgcd 510
FpX_halfgcd_basecase 233
FpX_halfgcd_i 398
FpX_halfgcd_split 165
FpX_halve 1160
FpX_integ 476
FpX_invBarrett 2029
FpX_invBarrett_Newton 526
FpX_invBarrett_basecase 1471
FpX_invLaplace 210
FpX_is_squarefree 2576
FpX_matFrobenius 627
FpX_mul 46666588
FpX_mulspec 1961444
FpX_mulu 1200066
FpX_neg 81509
FpX_normalize 273401
FpX_powu 295631
FpX_recipspec 197311
FpX_red 36916243
FpX_rem 63995022
FpX_rescale 13531
FpX_resultant 6358
FpX_sqr 3763031
FpX_sub 6909001
FpX_subspec 7007225
FpX_valrem 23996
FpXn_exp 105
FpXn_mul 1788
FpXn_recip 315
FpXn_red 2901
FpXn_sqr 371
Fp_FpXQ_log 13952
Fp_FpX_sub 10599
Fp_issquare 92134
Fp_neg_FpX 130
Fp_red_FpX 8824
FqV_inv 0
Fq_ispower 56
Fq_issquare 92078
Fq_log 389774
ZX_lgrenormalizespec 207202
Z_to_FpX 1710
_FpXQ_add 1098531
_FpXQ_cmul 1233206
_FpXQ_easylog 1368
_FpXQ_mul 910109
_FpXQ_one 323841
_FpXQ_pow 105568
_FpXQ_rand 3448
_FpXQ_red 373373
_FpXQ_sqr 3203791
_FpXQ_sub 59521
_FpXQ_zero 3668
_FpX_add 10241
_FpX_divrem 69769
_FpX_mul 79623
_FpX_sqr 57064
bounded_order 5677
gener_FpXQ 9053
gener_FpXQ_i 1472
gener_FpXQ_local 1449
get_FpXQ_algebra 13888
get_FpXQ_star 2006
get_FpX_algebra 0
get_FpX_red 67939833
matid2_FpXM 4
random_FpX 25628
to_Flx 76312873
to_Flxq 804160

Generated by: LCOV version 1.11