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 16962-5a32637) Lines: 1015 1106 91.8 %
Date: 2014-10-29 Functions: 131 135 97.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 483 624 77.4 %

Function Name Sort by function name Hit count Sort by hit count
FpV_inv 2423
FpV_roots_to_pol 4608
FpXC_FpXQV_eval 266
FpXM_FpXQV_eval 105
FpXM_FpX_mul2 453
FpXM_mul2 151
FpXQM_autsum 28
FpXQM_autsum_mul 105
FpXQM_autsum_sqr 70
FpXQ_autpow 514
FpXQ_autpow_mul 7
FpXQ_autpow_sqr 542
FpXQ_autpowers 532
FpXQ_autsum 932
FpXQ_autsum_mul 1822
FpXQ_autsum_sqr 946
FpXQ_charpoly 2865
FpXQ_conjvec 8
FpXQ_div 258428
FpXQ_inv 322776
FpXQ_invsafe 323262
FpXQ_issquare 2386
FpXQ_log 56121
FpXQ_matrix_pow 6455
FpXQ_minpoly 2864
FpXQ_mul 37911198
FpXQ_norm 1
FpXQ_order 36
FpXQ_pow 271157
FpXQ_pow_Frobenius 16046
FpXQ_powers 95688
FpXQ_powu 51028
FpXQ_red 2634719
FpXQ_sqr 2158282
FpXQ_sqrt 6977
FpXQ_sqrtn 7772
FpXQ_trace 10263
FpXT_red 368473
FpXV_prod 16613
FpXV_red 146225
FpX_FpXM_qmul 147
FpX_FpXQV_eval 51509
FpX_FpXQ_eval 150709
FpX_Fp_add 484238
FpX_Fp_add_shallow 0
FpX_Fp_mul 3174454
FpX_Fp_mul_to_monic 50063
FpX_Fp_mulspec 3175602
FpX_Fp_sub 85629
FpX_Fp_sub_shallow 1536
FpX_Frobenius 70386
FpX_add 4875778
FpX_addmulmul 914
FpX_center 511515
FpX_chinese_coprime 665
FpX_deriv 448383
FpX_digits 3416
FpX_disc 14
FpX_div_by_X_x 17658
FpX_divrem 2809297
FpX_divrem_Barrett_noGC 90120
FpX_divrem_Barrettspec 90458
FpX_divrem_basecase 48779926
FpX_eval 475927
FpX_extgcd 348084
FpX_extgcd_basecase 270686
FpX_extgcd_halfgcd 4
FpX_fromdigits 1449
FpX_gcd 86831
FpX_gcd_basecase 18645
FpX_gcd_check 0
FpX_get_red 126312
FpX_halfgcd 347
FpX_halfgcd_basecase 156
FpX_halfgcd_i 303
FpX_halfgcd_split 147
FpX_halve 875
FpX_invBarrett 1638
FpX_invBarrett_Newton 46
FpX_invBarrett_basecase 1584
FpX_is_squarefree 2107
FpX_matFrobenius 2451
FpX_mul 50752175
FpX_mulspec 389036
FpX_mulu 1060907
FpX_neg 148443
FpX_normalize 233681
FpX_powu 959
FpX_recipspec 180962
FpX_red 62655803
FpX_rem 48277345
FpX_rescale 12894
FpX_resultant 4712
FpX_sqr 2190503
FpX_sub 12873075
FpX_subspec 12963533
FpX_valrem 22897
Fp_FpXQ_log 36473
Fp_FpX_sub 16374
Fp_issquare 46578
Fp_neg_FpX 22
Fp_red_FpX 555
FqV_inv 0
Fq_issquare 46578
Fq_log 1253
ZX_lgrenormalizespec 181609
Z_to_FpX 870
_FpXQ_add 486016
_FpXQ_cmul 540302
_FpXQ_easylog 918
_FpXQ_mul 305493
_FpXQ_one 127166
_FpXQ_pow 15601
_FpXQ_rand 2391
_FpXQ_red 132852
_FpXQ_sqr 1654222
_FpXQ_zero 16
_FpX_add 4858
_FpX_divrem 36351
_FpX_mul 52534
_FpX_sqr 13160
bounded_order 3915
famat_Z_gcd 0
gener_FpXQ 6350
gener_FpXQ_i 1352
gener_FpXQ_local 1337
get_FpXQ_star 1283
get_FpX_degree 783159
get_FpX_mod 349748
get_FpX_red 51086642
get_FpX_var 728558
matid2_FpXM 4
random_FpX 46876
to_Flx 36400752
to_Flxq 561641

Generated by: LCOV version 1.9