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 - FpX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23171-a5c0ed393) Lines: 1294 1438 90.0 %
Date: 2018-10-20 05:38:07 Functions: 154 164 93.9 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpV_FpM_polint 0
FpXC_FpXQ_eval 0
FpX_FpV_multieval 0
FpX_Fp_add_shallow 0
FpX_convol 0
FpX_mulhigh_i 0
FpXn_inv 0
FpXn_mulhigh 0
FqV_inv 0
get_FpX_algebra 0
FpVV_polint_tree 1
FpV_polint 1
FpXQ_charpoly 1
FpX_extgcd_halfgcd 4
matid2_FpXM 4
FpXQ_conjvec 8
FpXQ_autpow_mul 21
FpXQ_order 29
FpX_disc 35
Fq_ispower 63
Fp_neg_FpX 104
FpX_gcd_check 121
FpXQM_autsum 140
FpX_FpXM_qmul 165
FpXM_mul2 169
FpX_Laplace 182
FpX_fromNewton 182
FpXn_exp 182
FpX_halfgcd_split 186
FpXM_FpX_mul2 190
FpXQM_autsum_sqr 210
FpXQ_auttrace 224
FpXQ_auttrace_sqr 245
FpXQ_auttrace_mul 273
FpXM_FpXQV_eval 308
FpXQM_autsum_mul 308
FpX_invLaplace 364
FpX_addmulmul 388
FpX_halfgcd_basecase 443
FpXQ_transmul_init 534
FpXQ_autpow 626
FpX_halfgcd_i 629
FpXQ_autpow_sqr 647
FpXn_sqr 679
FpX_invBarrett_Newton 690
FpX_halfgcd 748
FpXQ_autpowers 777
FpXC_FpXQV_eval 854
FpX_integ 861
FpX_matFrobenius 876
FpX_chinese_coprime 980
FpXQ_autsum 1208
FpXQ_autsum_sqr 1250
FpX_halve 1265
FpXn_red 1358
_FpXQ_easylog 1438
gener_FpXQ_local 1449
gener_FpXQ_i 1472
FpXQ_transmul 1495
FpX_invBarrett_basecase 1517
FpX_Fp_sub_shallow 1684
FpXQ_matrix_pow 1695
Z_to_FpX 1711
get_FpXQ_star 2010
FpX_invBarrett 2258
FpXV_FpX_fromdigits 2303
FpXQ_autsum_mul 2405
FpV_invVandermonde 2444
FpV_producttree 2445
FpX_FpV_multieval_tree 2445
FpX_is_squarefree 2563
_FpXQ_rand 3570
FpXQ_norm 3597
FpXQ_issquare 3712
_FpXQ_zero 4137
FpXQ_minpoly 4371
FpV_inv 4868
FpX_dotproduct 5662
FpX_digits 5663
bounded_order 5775
FpX_resultant 5908
Fp_red_FpX 7662
FpV_roots_to_pol 8891
gener_FpXQ 9018
_FpX_add 10241
Fp_FpX_sub 10836
FpXQ_sqrt 11915
FpXQ_sqrtn 12528
FpX_rescale 13790
Fp_FpXQ_log 13958
FpX_center 14179
get_FpXQ_algebra 15043
FpXQ_trace 20873
FpX_valrem 24262
FpX_div_by_X_x 25775
random_FpX 25850
FpXV_prod 26719
FpX_gcd_basecase 33597
FpX_Newton 40797
FpXn_recip 40979
FpX_Fp_mul_to_monic 55735
_FpX_sqr 62139
_FpXQ_sub 63056
FpXQ_powu 68141
_FpX_divrem 69769
FpX_neg 80497
FpXQ_log 81133
_FpX_mul 84996
Fq_issquare 92166
Fp_issquare 92187
FpX_divrem_Barrett_noGC 97909
FpX_divrem_Barrettspec 98303
FpX_FpXQV_eval 134058
_FpXQ_pow 137679
FpXQ_pow_Frobenius 138289
FpX_FpXQ_eval 166663
FpXQ_powers 187845
FpX_recipspec 198878
FpX_Frobenius 210181
ZX_lgrenormalizespec 210838
FpXQ_div 230139
FpX_extgcd_basecase 263478
FpXV_red 291152
FpX_powu 306908
FpXQ_inv 314232
FpXQ_invsafe 314253
FpX_normalize 315359
_FpXQ_one 334636
FpX_eval 381692
_FpXQ_red 385489
Fq_log 390208
FpX_extgcd 395906
FpX_gcd 424485
FpX_get_red 433121
FpX_Fp_sub 518405
FpX_Fp_add 540046
FpXQ_pow 554839
to_Flxq 810264
FpX_center_i 870430
FpX_deriv 947994
_FpXQ_mul 1069167
_FpXQ_add 1156952
FpX_mulu 1243101
_FpXQ_cmul 1294742
FpXT_red 1532662
FpX_mulspec 1944247
FpXn_mul 2090602
FpX_Fp_mul 3318967
FpX_Fp_mulspec 3325548
_FpXQ_sqr 3635809
FpXQ_red 3970857
FpXQ_sqr 4105572
FpX_divrem 4136921
FpX_sqr 4204787
FpX_sub 6905907
FpX_subspec 7004214
FpX_add 8341111
FpXQ_mul 41579315
FpX_red 41775260
FpX_mul 47908825
FpX_divrem_basecase 64238922
FpX_rem 67471828
get_FpX_red 71609281
to_Flx 77877782

Generated by: LCOV version 1.13