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 16791-0d1274a) Lines: 1010 1106 91.3 %
Date: 2014-09-16 Functions: 130 135 96.3 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 480 624 76.9 %

Function Name Sort by function name Hit count Sort by hit count
FpV_inv 2423
FpV_roots_to_pol 2907
FpXC_FpXQV_eval 80
FpXM_FpXQV_eval 40
FpXM_FpX_mul2 441
FpXM_mul2 147
FpXQM_autsum 15
FpXQM_autsum_mul 40
FpXQM_autsum_sqr 30
FpXQ_autpow 370
FpXQ_autpow_mul 5
FpXQ_autpow_sqr 390
FpXQ_autpowers 385
FpXQ_autsum 702
FpXQ_autsum_mul 1371
FpXQ_autsum_sqr 712
FpXQ_charpoly 2057
FpXQ_conjvec 6
FpXQ_div 181733
FpXQ_inv 223912
FpXQ_invsafe 224237
FpXQ_issquare 1679
FpXQ_log 40185
FpXQ_matrix_pow 4438
FpXQ_minpoly 2056
FpXQ_mul 26895904
FpXQ_norm 1
FpXQ_order 27
FpXQ_pow 84720
FpXQ_pow_Frobenius 10988
FpXQ_powers 68161
FpXQ_powu 36559
FpXQ_red 2117981
FpXQ_sqr 1453201
FpXQ_sqrt 930
FpXQ_sqrtn 1499
FpXQ_trace 7331
FpXT_red 261445
FpXV_prod 11557
FpXV_red 104402
FpX_FpXM_qmul 145
FpX_FpXQV_eval 36231
FpX_FpXQ_eval 107907
FpX_Fp_add 217058
FpX_Fp_add_shallow 0
FpX_Fp_mul 1967816
FpX_Fp_mul_to_monic 35610
FpX_Fp_mulspec 1968583
FpX_Fp_sub 44572
FpX_Fp_sub_shallow 955
FpX_Frobenius 49974
FpX_add 2703210
FpX_addmulmul 886
FpX_center 366493
FpX_chinese_coprime 475
FpX_deriv 312035
FpX_digits 2405
FpX_disc 10
FpX_div_by_X_x 12704
FpX_divrem 1986475
FpX_divrem_Barrett_noGC 41733
FpX_divrem_Barrettspec 41897
FpX_divrem_basecase 33471701
FpX_eval 331881
FpX_extgcd 242187
FpX_extgcd_basecase 194895
FpX_extgcd_halfgcd 2
FpX_fromdigits 1020
FpX_gcd 61385
FpX_gcd_basecase 12666
FpX_gcd_check 0
FpX_get_red 88988
FpX_halfgcd 327
FpX_halfgcd_basecase 152
FpX_halfgcd_i 297
FpX_halfgcd_split 145
FpX_halve 385
FpX_invBarrett 792
FpX_invBarrett_Newton 32
FpX_invBarrett_basecase 756
FpX_is_squarefree 1510
FpX_matFrobenius 1753
FpX_mul 35351971
FpX_mulspec 204560
FpX_mulu 725494
FpX_neg 84929
FpX_normalize 167066
FpX_powu 0
FpX_recipspec 83826
FpX_red 43866007
FpX_rem 33177113
FpX_rescale 9260
FpX_resultant 3333
FpX_sqr 1474146
FpX_sub 8328059
FpX_subspec 8369956
FpX_valrem 16430
Fp_FpXQ_log 26126
Fp_FpX_sub 5907
Fp_issquare 33270
Fp_neg_FpX 14
Fp_red_FpX 234
FqV_inv 0
Fq_issquare 33270
Fq_log 895
ZX_lgrenormalizespec 84311
Z_to_FpX 1221
_FpXQ_add 344672
_FpXQ_cmul 383107
_FpXQ_easylog 616
_FpXQ_mul 199814
_FpXQ_one 90833
_FpXQ_pow 10676
_FpXQ_rand 1667
_FpXQ_red 94740
_FpXQ_sqr 1110059
_FpXQ_zero 16
_FpX_add 3230
_FpX_divrem 24400
_FpX_mul 36726
_FpX_sqr 9105
bounded_order 2760
famat_Z_gcd 0
gener_FpXQ 4581
gener_FpXQ_i 966
gener_FpXQ_local 955
get_FpXQ_star 908
get_FpX_degree 287954
get_FpX_mod 243132
get_FpX_red 35163588
get_FpX_var 342224
matid2_FpXM 2
random_FpX 21993
to_Flx 23486761
to_Flxq 287802

Generated by: LCOV version 1.9