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 17960-0cd23ba) Lines: 1027 1101 93.3 %
Date: 2015-09-02 Functions: 131 134 97.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 497 628 79.1 %

Function Name Sort by function name Hit count Sort by hit count
FpX_red 70296815
get_FpX_red 58675425
FpX_divrem_basecase 55243376
FpX_rem 54851005
FpX_mul 53267896
to_Flx 40898030
FpXQ_mul 38448051
FpX_subspec 14352190
FpX_sub 14256673
FpX_add 8412199
FpX_Fp_mulspec 4629739
FpX_Fp_mul 4628591
FpX_divrem 3824416
FpXQ_red 3534977
FpX_sqr 2698063
FpXQ_sqr 2639239
_FpXQ_sqr 2107730
get_FpX_degree 1387019
_FpXQ_cmul 1379033
get_FpX_var 1306624
_FpXQ_add 1268327
FpX_mulu 1182728
FpX_deriv 799567
FpXT_red 717467
to_Flxq 647988
FpX_center 581549
FpX_eval 522721
FpX_Fp_add 511876
_FpXQ_mul 477724
get_FpX_mod 432392
FpX_extgcd 381464
FpXQ_invsafe 350048
FpXQ_inv 349548
FpX_mulspec 347929
FpXQ_pow 336374
FpX_extgcd_basecase 289597
FpXV_red 286724
FpX_get_red 285140
_FpXQ_red 270735
FpXQ_div 268513
FpX_normalize 244789
_FpXQ_one 241290
ZX_lgrenormalizespec 197804
FpX_neg 196316
FpX_recipspec 191367
FpXQ_powers 180610
FpX_FpXQ_eval 162635
FpX_Fp_sub 140117
FpX_gcd 117381
FpX_FpXQV_eval 108032
FpX_divrem_Barrettspec 95514
FpX_divrem_Barrett_noGC 95071
FpX_Frobenius 75376
_FpX_divrem 69706
_FpX_mul 65444
FpXQ_powu 61964
random_FpX 61781
FpXQ_pow_Frobenius 61271
_FpXQ_pow 60702
FpXQ_log 58467
FpX_Fp_mul_to_monic 53794
Fp_issquare 46844
Fq_issquare 46641
FpX_gcd_basecase 43071
Fp_FpXQ_log 37064
Fp_FpX_sub 31909
_FpX_sqr 24423
FpX_valrem 23359
FpXQ_trace 20579
FpX_div_by_X_x 18540
FpXV_prod 18442
FpX_rescale 13216
_FpX_add 10241
FpXQ_sqrtn 7868
FpXQ_sqrt 7031
gener_FpXQ 6512
FpX_resultant 5974
FpX_digits 5642
FpV_roots_to_pol 4839
bounded_order 3904
FpXQ_matrix_pow 3780
FpX_powu 3654
FpXQ_issquare 3389
FpXQ_norm 3362
FpXQ_charpoly 2956
FpXQ_minpoly 2955
FpX_matFrobenius 2471
Fp_red_FpX 2466
FpV_inv 2423
_FpXQ_rand 2349
FpX_fromdigits 2296
FpX_is_squarefree 2212
FpX_Fp_sub_shallow 2131
FpX_invBarrett 1755
Z_to_FpX 1710
FpXQ_autsum_mul 1651
Fq_log 1575
gener_FpXQ_i 1444
gener_FpXQ_local 1428
FpX_invBarrett_basecase 1410
get_FpXQ_star 1268
FpX_addmulmul 1004
FpX_halve 875
FpXQ_autsum_sqr 859
_FpXQ_easylog 849
FpXQ_autsum 845
FpX_chinese_coprime 665
FpXQ_autpow_sqr 535
FpXQ_autpowers 532
FpXQ_autpow 507
FpXM_FpX_mul2 498
FpX_halfgcd 398
FpXC_FpXQV_eval 378
FpX_invBarrett_Newton 341
FpX_halfgcd_i 334
_FpXQ_zero 240
FpX_halfgcd_basecase 172
FpXM_mul2 166
FpX_halfgcd_split 162
FpX_FpXM_qmul 162
FpXM_FpXQV_eval 84
FpXQM_autsum_mul 84
FpXQM_autsum 63
FpXQM_autsum_sqr 63
Fp_neg_FpX 52
FpXQ_order 36
FpX_disc 14
FpXQ_conjvec 8
FpXQ_autpow_mul 7
FpX_extgcd_halfgcd 4
matid2_FpXM 4
FpX_Fp_add_shallow 0
FpX_gcd_check 0
FqV_inv 0

Generated by: LCOV version 1.9