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 16827-3d78da8) Lines: 1010 1106 91.3 %
Date: 2014-09-29 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 4090
FpXC_FpXQV_eval 294
FpXM_FpXQV_eval 119
FpXM_FpX_mul2 453
FpXM_mul2 151
FpXQM_autsum 42
FpXQM_autsum_mul 119
FpXQM_autsum_sqr 84
FpXQ_autpow 506
FpXQ_autpow_mul 7
FpXQ_autpow_sqr 534
FpXQ_autpowers 539
FpXQ_autsum 984
FpXQ_autsum_mul 1933
FpXQ_autsum_sqr 998
FpXQ_charpoly 2879
FpXQ_conjvec 8
FpXQ_div 255834
FpXQ_inv 309818
FpXQ_invsafe 310304
FpXQ_issquare 2199
FpXQ_log 56219
FpXQ_matrix_pow 6210
FpXQ_minpoly 2878
FpXQ_mul 37694798
FpXQ_norm 1
FpXQ_order 36
FpXQ_pow 119018
FpXQ_pow_Frobenius 15796
FpXQ_powers 95642
FpXQ_powu 51343
FpXQ_red 2525140
FpXQ_sqr 2025597
FpXQ_sqrt 1366
FpXQ_sqrtn 2161
FpXQ_trace 10263
FpXT_red 367443
FpXV_prod 16200
FpXV_red 146266
FpX_FpXM_qmul 147
FpX_FpXQV_eval 51939
FpX_FpXQ_eval 151141
FpX_Fp_add 322160
FpX_Fp_add_shallow 0
FpX_Fp_mul 3031421
FpX_Fp_mul_to_monic 49766
FpX_Fp_mulspec 3032577
FpX_Fp_sub 62748
FpX_Fp_sub_shallow 1319
FpX_Frobenius 69992
FpX_add 4617705
FpX_addmulmul 914
FpX_center 512866
FpX_chinese_coprime 665
FpX_deriv 448617
FpX_digits 3416
FpX_disc 14
FpX_div_by_X_x 17784
FpX_divrem 2799387
FpX_divrem_Barrett_noGC 83089
FpX_divrem_Barrettspec 83427
FpX_divrem_basecase 48176367
FpX_eval 464629
FpX_extgcd 335434
FpX_extgcd_basecase 268096
FpX_extgcd_halfgcd 4
FpX_fromdigits 1449
FpX_gcd 85772
FpX_gcd_basecase 17432
FpX_gcd_check 0
FpX_get_red 125736
FpX_halfgcd 347
FpX_halfgcd_basecase 156
FpX_halfgcd_i 303
FpX_halfgcd_split 147
FpX_halve 728
FpX_invBarrett 1564
FpX_invBarrett_Newton 46
FpX_invBarrett_basecase 1510
FpX_is_squarefree 2121
FpX_matFrobenius 2451
FpX_mul 49824385
FpX_mulspec 372176
FpX_mulu 1019245
FpX_neg 134338
FpX_normalize 233786
FpX_powu 0
FpX_recipspec 166900
FpX_red 61377362
FpX_rem 47575578
FpX_rescale 12964
FpX_resultant 4489
FpX_sqr 2055347
FpX_sub 12121224
FpX_subspec 12204651
FpX_valrem 23002
Fp_FpXQ_log 36605
Fp_FpX_sub 16270
Fp_issquare 46578
Fp_neg_FpX 22
Fp_red_FpX 338
FqV_inv 0
Fq_issquare 46578
Fq_log 1253
ZX_lgrenormalizespec 167547
Z_to_FpX 870
_FpXQ_add 486932
_FpXQ_cmul 541643
_FpXQ_easylog 889
_FpXQ_mul 277092
_FpXQ_one 127563
_FpXQ_pow 15372
_FpXQ_rand 2425
_FpXQ_red 133384
_FpXQ_sqr 1551550
_FpXQ_zero 16
_FpX_add 4858
_FpX_divrem 36351
_FpX_mul 52023
_FpX_sqr 13160
bounded_order 3930
famat_Z_gcd 0
gener_FpXQ 6413
gener_FpXQ_i 1352
gener_FpXQ_local 1337
get_FpXQ_star 1271
get_FpX_degree 595979
get_FpX_mod 336832
get_FpX_red 50374965
get_FpX_var 647868
matid2_FpXM 4
random_FpX 30799
to_Flx 36158770
to_Flxq 405880

Generated by: LCOV version 1.9