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 21196-f12677d) Lines: 1247 1341 93.0 %
Date: 2017-10-22 06:23:24 Functions: 144 149 96.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpVV_polint_tree 8
FpV_FpM_polint 0
FpV_inv 4867
FpV_invVandermonde 2436
FpV_polint 8
FpV_producttree 2444
FpV_roots_to_pol 6132
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 577
FpXQ_autpow_mul 14
FpXQ_autpow_sqr 605
FpXQ_autpowers 770
FpXQ_autsum 935
FpXQ_autsum_mul 1845
FpXQ_autsum_sqr 970
FpXQ_auttrace 14
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_charpoly 1
FpXQ_conjvec 8
FpXQ_div 227548
FpXQ_inv 300719
FpXQ_invsafe 300740
FpXQ_issquare 3255
FpXQ_log 81735
FpXQ_matrix_pow 894
FpXQ_minpoly 4124
FpXQ_mul 40188371
FpXQ_norm 3179
FpXQ_order 30
FpXQ_pow 518403
FpXQ_pow_Frobenius 106263
FpXQ_powers 184524
FpXQ_powu 66509
FpXQ_red 3432200
FpXQ_sqr 3604804
FpXQ_sqrt 11820
FpXQ_sqrtn 12230
FpXQ_trace 21095
FpXQ_transmul 235
FpXQ_transmul_init 72
FpXT_red 1113459
FpXV_FpX_fromdigits 2296
FpXV_prod 23308
FpXV_red 291113
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 2444
FpX_FpXM_qmul 165
FpX_FpXQV_eval 130194
FpX_FpXQ_eval 173371
FpX_Fp_add 550266
FpX_Fp_add_shallow 0
FpX_Fp_mul 3366907
FpX_Fp_mul_to_monic 48325
FpX_Fp_mulspec 3373303
FpX_Fp_sub 305194
FpX_Fp_sub_shallow 1564
FpX_Frobenius 207381
FpX_add 8337549
FpX_addmulmul 346
FpX_center 714181
FpX_chinese_coprime 980
FpX_deriv 641053
FpX_digits 5642
FpX_disc 28
FpX_div_by_X_x 25683
FpX_divrem 3921221
FpX_divrem_Barrett_noGC 100445
FpX_divrem_Barrettspec 100813
FpX_divrem_basecase 63518798
FpX_dotproduct 860
FpX_eval 410260
FpX_extgcd 380302
FpX_extgcd_basecase 255407
FpX_extgcd_halfgcd 4
FpX_gcd 449788
FpX_gcd_basecase 54395
FpX_gcd_check 106
FpX_get_red 384880
FpX_halfgcd 489
FpX_halfgcd_basecase 212
FpX_halfgcd_i 377
FpX_halfgcd_split 165
FpX_halve 1118
FpX_invBarrett 2623
FpX_invBarrett_Newton 1138
FpX_invBarrett_basecase 1453
FpX_is_squarefree 2534
FpX_matFrobenius 544
FpX_mul 46574796
FpX_mulspec 1972474
FpX_mulu 1185764
FpX_neg 80018
FpX_normalize 274232
FpX_powu 272426
FpX_recipspec 202980
FpX_red 33560464
FpX_rem 63316688
FpX_rescale 13489
FpX_resultant 5845
FpX_sqr 3700132
FpX_sub 6881871
FpX_subspec 6982683
FpX_valrem 23996
FpXn_mul 199
Fp_FpXQ_log 14000
Fp_FpX_sub 10599
Fp_issquare 92120
Fp_neg_FpX 130
Fp_red_FpX 6780
FqV_inv 0
Fq_ispower 56
Fq_issquare 92064
Fq_log 391888
ZX_lgrenormalizespec 225234
Z_to_FpX 1710
_FpXQ_add 1089075
_FpXQ_cmul 1222845
_FpXQ_easylog 1395
_FpXQ_mul 895319
_FpXQ_one 320965
_FpXQ_pow 105575
_FpXQ_rand 3503
_FpXQ_red 369674
_FpXQ_sqr 3138162
_FpXQ_sub 57554
_FpXQ_zero 3556
_FpX_add 10241
_FpX_divrem 69706
_FpX_mul 79316
_FpX_sqr 57043
bounded_order 5648
gener_FpXQ 9025
gener_FpXQ_i 1472
gener_FpXQ_local 1449
get_FpXQ_algebra 13559
get_FpXQ_star 1923
get_FpX_algebra 0
get_FpX_red 67237981
matid2_FpXM 4
random_FpX 19024
to_Flx 76627435
to_Flxq 818616

Generated by: LCOV version 1.11