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.8.0 lcov report (development 19053-42ab05e) Lines: 1228 1325 92.7 %
Date: 2016-06-29 Functions: 147 153 96.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 558 694 80.4 %

Function Name Sort by function name Hit count Sort by hit count
FpVV_polint_tree 1
FpV_FpM_polint 0
FpV_inv 4762
FpV_invVandermonde 2338
FpV_polint 1
FpV_producttree 2339
FpV_roots_to_pol 5124
FpXC_FpXQV_eval 854
FpXM_FpXQV_eval 308
FpXM_FpX_mul2 166
FpXM_mul2 166
FpXQM_autsum 140
FpXQM_autsum_mul 308
FpXQM_autsum_sqr 210
FpXQ_autpow 528
FpXQ_autpow_mul 7
FpXQ_autpow_sqr 556
FpXQ_autpowers 595
FpXQ_autsum 970
FpXQ_autsum_mul 1894
FpXQ_autsum_sqr 984
FpXQ_auttrace 14
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_charpoly 1
FpXQ_conjvec 8
FpXQ_div 228182
FpXQ_inv 287828
FpXQ_invsafe 287842
FpXQ_issquare 3482
FpXQ_log 84598
FpXQ_matrix_pow 3878
FpXQ_minpoly 3095
FpXQ_mul 40576987
FpXQ_norm 3434
FpXQ_order 29
FpXQ_pow 666701
FpXQ_pow_Frobenius 386622
FpXQ_powers 184031
FpXQ_powu 61845
FpXQ_red 3745935
FpXQ_sqr 3315766
FpXQ_sqrt 7172
FpXQ_sqrtn 8226
FpXQ_trace 20757
FpXQ_transmul 123
FpXQ_transmul_init 30
FpXT_red 1089327
FpXV_prod 19553
FpXV_red 288146
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 2339
FpX_FpXM_qmul 162
FpX_FpXQV_eval 124387
FpX_FpXQ_eval 150584
FpX_Fp_add 548976
FpX_Fp_add_shallow 0
FpX_Fp_mul 3247489
FpX_Fp_mul_to_monic 52411
FpX_Fp_mulspec 3253173
FpX_Fp_sub 298218
FpX_Fp_sub_shallow 1565
FpX_Frobenius 77485
FpX_add 8160574
FpX_addmulmul 340
FpX_center 647612
FpX_chinese_coprime 665
FpX_deriv 634628
FpX_digits 5642
FpX_disc 14
FpX_div_by_X_x 20321
FpX_divrem 3268356
FpX_divrem_Barrett_noGC 97771
FpX_divrem_Barrettspec 98195
FpX_divrem_basecase 62503137
FpX_dotproduct 566
FpX_eval 525325
FpX_extgcd 321598
FpX_extgcd_basecase 246319
FpX_extgcd_halfgcd 4
FpX_fromdigits 2296
FpX_gcd 127002
FpX_gcd_basecase 52052
FpX_gcd_check 0
FpX_get_red 655191
FpX_halfgcd 455
FpX_halfgcd_basecase 187
FpX_halfgcd_i 349
FpX_halfgcd_split 162
FpX_halve 1124
FpX_invBarrett 1946
FpX_invBarrett_Newton 521
FpX_invBarrett_basecase 1421
FpX_is_squarefree 2478
FpX_matFrobenius 2583
FpX_mul 46756359
FpX_mulspec 1661738
FpX_mulu 1184223
FpX_neg 76756
FpX_normalize 245970
FpX_powu 258146
FpX_recipspec 197001
FpX_red 69011499
FpX_rem 63287266
FpX_rescale 13076
FpX_resultant 6098
FpX_sqr 3405059
FpX_sub 6654252
FpX_subspec 6752447
FpX_valrem 23296
FpXn_mul 108
Fp_FpXQ_log 38347
Fp_FpX_sub 9215
Fp_issquare 46872
Fp_neg_FpX 17
Fp_red_FpX 6584
FqV_inv 0
Fq_ispower 112
Fq_issquare 46662
Fq_log 1876
ZX_lgrenormalizespec 207011
Z_to_FpX 1710
_FpXQ_add 1024493
_FpXQ_cmul 1151680
_FpXQ_easylog 1396
_FpXQ_mul 1336275
_FpXQ_one 303512
_FpXQ_pow 385962
_FpXQ_rand 3534
_FpXQ_red 345913
_FpXQ_sqr 2846406
_FpXQ_sub 57554
_FpXQ_zero 3537
_FpX_add 10241
_FpX_divrem 69706
_FpX_mul 68973
_FpX_sqr 55083
bounded_order 5547
deg2pol_shallow 9879
gener_FpXQ 6673
gener_FpXQ_i 1451
gener_FpXQ_local 1428
get_FpXQ_algebra 13559
get_FpXQ_star 1783
get_FpX_algebra 0
get_FpX_degree 1885566
get_FpX_mod 398396
get_FpX_red 66555650
get_FpX_var 1365904
matid2_FpXM 4
random_FpX 47359
to_Flx 39529540
to_Flxq 647601

Generated by: LCOV version 1.9