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-bordeaux1.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 18583-be9c204) Lines: 1096 1173 93.4 %
Date: 2016-02-07 Functions: 138 141 97.9 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 516 652 79.1 %

Function Name Sort by function name Hit count Sort by hit count
FpV_inv 2423
FpV_roots_to_pol 4929
FpXC_FpXQV_eval 378
FpXM_FpXQV_eval 84
FpXM_FpX_mul2 498
FpXM_mul2 166
FpXQM_autsum 63
FpXQM_autsum_mul 84
FpXQM_autsum_sqr 63
FpXQ_autpow 514
FpXQ_autpow_mul 7
FpXQ_autpow_sqr 542
FpXQ_autpowers 581
FpXQ_autsum 955
FpXQ_autsum_mul 1864
FpXQ_autsum_sqr 969
FpXQ_auttrace 14
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_charpoly 1
FpXQ_conjvec 8
FpXQ_div 267530
FpXQ_inv 350790
FpXQ_invsafe 351282
FpXQ_issquare 3388
FpXQ_log 83233
FpXQ_matrix_pow 3962
FpXQ_minpoly 3067
FpXQ_mul 39264687
FpXQ_norm 3361
FpXQ_order 36
FpXQ_pow 736348
FpXQ_pow_Frobenius 458085
FpXQ_powers 181623
FpXQ_powu 62223
FpXQ_red 3036466
FpXQ_sqr 3000506
FpXQ_sqrt 7102
FpXQ_sqrtn 7939
FpXQ_trace 20688
FpXQ_transmul 123
FpXQ_transmul_init 30
FpXT_red 722397
FpXV_prod 19106
FpXV_red 287105
FpX_FpXM_qmul 162
FpX_FpXQV_eval 96786
FpX_FpXQ_eval 163759
FpX_Fp_add 547954
FpX_Fp_add_shallow 0
FpX_Fp_mul 4057761
FpX_Fp_mul_to_monic 51980
FpX_Fp_mulspec 4058902
FpX_Fp_sub 140751
FpX_Fp_sub_shallow 1549
FpX_Frobenius 76124
FpX_add 8801959
FpX_addmulmul 1004
FpX_center 653828
FpX_chinese_coprime 665
FpX_deriv 797376
FpX_digits 5642
FpX_disc 14
FpX_div_by_X_x 19000
FpX_divrem 3901714
FpX_divrem_Barrett_noGC 95518
FpX_divrem_Barrettspec 95957
FpX_divrem_basecase 57051394
FpX_dotproduct 566
FpX_eval 522684
FpX_extgcd 384231
FpX_extgcd_basecase 288465
FpX_extgcd_halfgcd 4
FpX_fromdigits 2296
FpX_gcd 126336
FpX_gcd_basecase 51959
FpX_gcd_check 0
FpX_get_red 679112
FpX_halfgcd 455
FpX_halfgcd_basecase 187
FpX_halfgcd_i 349
FpX_halfgcd_split 162
FpX_halve 987
FpX_invBarrett 1963
FpX_invBarrett_Newton 559
FpX_invBarrett_basecase 1400
FpX_is_squarefree 2485
FpX_matFrobenius 2639
FpX_mul 45342488
FpX_mulspec 353890
FpX_mulu 1188560
FpX_neg 166228
FpX_normalize 245408
FpX_powu 5166
FpX_recipspec 192564
FpX_red 62555013
FpX_rem 56798304
FpX_rescale 13209
FpX_resultant 6048
FpX_sqr 3059484
FpX_sub 4975630
FpX_subspec 5071585
FpX_valrem 23534
FpXn_mul 108
Fp_FpXQ_log 37561
Fp_FpX_sub 32932
Fp_issquare 46844
Fp_neg_FpX 29
Fp_red_FpX 2466
FqV_inv 0
Fq_issquare 46641
Fq_log 1876
ZX_lgrenormalizespec 203270
Z_to_FpX 1710
_FpXQ_add 988827
_FpXQ_cmul 1088605
_FpXQ_easylog 757
_FpXQ_mul 1273614
_FpXQ_one 234302
_FpXQ_pow 457486
_FpXQ_rand 2390
_FpXQ_red 253384
_FpXQ_sqr 2473497
_FpXQ_zero 240
_FpX_add 10241
_FpX_divrem 69706
_FpX_mul 66358
_FpX_sqr 24752
bounded_order 3959
gener_FpXQ 6624
gener_FpXQ_i 1444
gener_FpXQ_local 1428
get_FpXQ_star 1269
get_FpX_degree 1844781
get_FpX_mod 455542
get_FpX_red 60700048
get_FpX_var 1337759
matid2_FpXM 4
random_FpX 61183
to_Flx 41266338
to_Flxq 658839

Generated by: LCOV version 1.9