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 17097-9391e68) Lines: 1016 1107 91.8 %
Date: 2014-11-21 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 3297
FpXC_FpXQV_eval 80
FpXM_FpXQV_eval 20
FpXM_FpX_mul2 441
FpXM_mul2 147
FpXQM_autsum 10
FpXQM_autsum_mul 20
FpXQM_autsum_sqr 10
FpXQ_autpow 379
FpXQ_autpow_mul 5
FpXQ_autpow_sqr 399
FpXQ_autpowers 380
FpXQ_autsum 665
FpXQ_autsum_mul 1289
FpXQ_autsum_sqr 675
FpXQ_charpoly 2047
FpXQ_conjvec 6
FpXQ_div 183211
FpXQ_inv 230575
FpXQ_invsafe 230941
FpXQ_issquare 1654
FpXQ_log 40125
FpXQ_matrix_pow 4658
FpXQ_minpoly 2046
FpXQ_mul 27088065
FpXQ_norm 1
FpXQ_order 26
FpXQ_pow 194129
FpXQ_pow_Frobenius 11294
FpXQ_powers 68368
FpXQ_powu 37004
FpXQ_red 2237358
FpXQ_sqr 1546950
FpXQ_sqrt 4975
FpXQ_sqrtn 5544
FpXQ_trace 7341
FpXT_red 265466
FpXV_prod 12172
FpXV_red 104633
FpX_FpXM_qmul 145
FpX_FpXQV_eval 36491
FpX_FpXQ_eval 108162
FpX_Fp_add 345580
FpX_Fp_add_shallow 0
FpX_Fp_mul 2322685
FpX_Fp_mul_to_monic 36231
FpX_Fp_mulspec 2323535
FpX_Fp_sub 61219
FpX_Fp_sub_shallow 1100
FpX_Frobenius 50784
FpX_add 3556326
FpX_addmulmul 886
FpX_center 383668
FpX_chinese_coprime 475
FpX_deriv 320312
FpX_digits 2445
FpX_disc 10
FpX_div_by_X_x 12684
FpX_divrem 2022484
FpX_divrem_Barrett_noGC 44266
FpX_divrem_Barrettspec 44468
FpX_divrem_basecase 35214883
FpX_eval 341241
FpX_extgcd 252221
FpX_extgcd_basecase 192315
FpX_extgcd_halfgcd 2
FpX_fromdigits 1035
FpX_gcd 62580
FpX_gcd_basecase 13534
FpX_gcd_check 0
FpX_get_red 90450
FpX_halfgcd 327
FpX_halfgcd_basecase 152
FpX_halfgcd_i 297
FpX_halfgcd_split 145
FpX_halve 625
FpX_invBarrett 826
FpX_invBarrett_Newton 28
FpX_invBarrett_basecase 796
FpX_is_squarefree 1505
FpX_matFrobenius 1783
FpX_mul 36670594
FpX_mulspec 198365
FpX_mulu 754701
FpX_neg 113953
FpX_normalize 169601
FpX_powu 685
FpX_recipspec 88964
FpX_red 45763540
FpX_rem 35047902
FpX_rescale 9360
FpX_resultant 3380
FpX_sqr 1569985
FpX_sub 9523696
FpX_subspec 9568164
FpX_valrem 16565
Fp_FpXQ_log 26000
Fp_FpX_sub 11940
Fp_issquare 33270
Fp_neg_FpX 14
Fp_red_FpX 397
FqV_inv 0
Fq_issquare 33270
Fq_log 910
ZX_lgrenormalizespec 89421
Z_to_FpX 622
_FpXQ_add 341678
_FpXQ_cmul 380398
_FpXQ_easylog 605
_FpXQ_mul 220386
_FpXQ_one 91005
_FpXQ_pow 10949
_FpXQ_rand 1671
_FpXQ_red 94496
_FpXQ_sqr 1188786
_FpXQ_zero 16
_FpX_add 3470
_FpX_divrem 25990
_FpX_mul 38196
_FpX_sqr 9410
bounded_order 2778
famat_Z_gcd 0
gener_FpXQ 4536
gener_FpXQ_i 966
gener_FpXQ_local 955
get_FpXQ_star 913
get_FpX_degree 580484
get_FpX_mod 249866
get_FpX_red 37070386
get_FpX_var 531460
matid2_FpXM 2
random_FpX 41822
to_Flx 24627956
to_Flxq 400702

Generated by: LCOV version 1.9