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.11.0 lcov report (development 22851-e834f1b2f) Lines: 1308 1441 90.8 %
Date: 2018-07-16 05:36:59 Functions: 154 163 94.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpV_FpM_polint 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 56
FpX_gcd_check 100
Fp_neg_FpX 104
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 691
FpX_halfgcd 748
FpXQ_autpowers 777
FpXC_FpXQV_eval 854
FpX_integ 861
FpX_matFrobenius 876
FpX_chinese_coprime 980
FpXQ_autsum 1019
FpXQ_autsum_sqr 1061
FpX_halve 1265
FpXn_red 1358
_FpXQ_easylog 1368
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
FpXQ_autsum_mul 2027
FpX_invBarrett 2259
FpXV_FpX_fromdigits 2303
FpV_invVandermonde 2444
FpV_producttree 2445
FpX_FpV_multieval_tree 2445
FpX_is_squarefree 2563
_FpXQ_rand 3465
FpXQ_norm 3639
FpXQ_issquare 3740
_FpXQ_zero 4137
FpXQ_minpoly 4371
FpV_inv 4868
FpX_dotproduct 5662
FpX_digits 5663
bounded_order 5670
FpX_resultant 5999
Fp_red_FpX 7662
FpV_roots_to_pol 8884
gener_FpXQ 9018
_FpX_add 10241
Fp_FpX_sub 10836
FpXQ_sqrt 11915
FpXQ_sqrtn 12528
FpX_rescale 13769
Fp_FpXQ_log 13881
FpX_center 14172
get_FpXQ_algebra 15043
FpXQ_trace 20874
FpX_valrem 24136
FpX_div_by_X_x 25775
random_FpX 25850
FpXV_prod 26712
FpX_gcd_basecase 33555
FpX_Newton 40741
FpXn_recip 40923
FpX_Fp_mul_to_monic 55672
_FpX_sqr 62139
_FpXQ_sub 63056
FpXQ_powu 68141
_FpX_divrem 69769
FpX_neg 80497
FpXQ_log 81091
_FpX_mul 84982
Fq_issquare 92103
Fp_issquare 92159
FpX_divrem_Barrett_noGC 97924
FpX_divrem_Barrettspec 98316
FpX_FpXQV_eval 133302
_FpXQ_pow 137392
FpXQ_pow_Frobenius 138002
FpX_FpXQ_eval 166510
FpXQ_powers 187467
FpX_recipspec 198913
FpX_Frobenius 210181
ZX_lgrenormalizespec 210906
FpXQ_div 230251
FpX_extgcd_basecase 263450
FpXV_red 291152
FpX_powu 306908
FpXQ_inv 313826
FpXQ_invsafe 313847
FpX_normalize 315002
_FpXQ_one 333507
FpX_eval 374681
_FpXQ_red 384737
Fq_log 390467
FpX_extgcd 395381
FpX_gcd 424439
FpX_get_red 431760
FpX_Fp_sub 518411
FpX_Fp_add 540046
FpXQ_pow 554582
to_Flxq 810152
FpX_center_i 868126
FpX_deriv 947925
_FpXQ_mul 1069120
_FpXQ_add 1155448
FpX_mulu 1242870
_FpXQ_cmul 1292482
FpXT_red 1532705
FpX_mulspec 1935486
FpXn_mul 2090602
FpX_Fp_mul 3315411
FpX_Fp_mulspec 3321992
_FpXQ_sqr 3634078
FpXQ_red 3929295
FpXQ_sqr 4103849
FpX_divrem 4135083
FpX_sqr 4203074
FpX_sub 6891197
FpX_subspec 6989517
FpX_add 8341048
FpXQ_mul 41578027
FpX_red 41717313
FpX_mul 47889304
FpX_divrem_basecase 64188530
FpX_rem 67401498
get_FpX_red 71537112
to_Flx 77835634

Generated by: LCOV version 1.13