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

Generated by: LCOV version 1.9