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 17932-6fdb233) Lines: 1027 1101 93.3 %
Date: 2015-07-30 Functions: 131 134 97.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 496 628 79.0 %

Function Name Sort by function name Hit count Sort by hit count
FpV_inv 2423
FpV_roots_to_pol 4839
FpXC_FpXQV_eval 378
FpXM_FpXQV_eval 84
FpXM_FpX_mul2 498
FpXM_mul2 166
FpXQM_autsum 63
FpXQM_autsum_mul 84
FpXQM_autsum_sqr 63
FpXQ_autpow 507
FpXQ_autpow_mul 7
FpXQ_autpow_sqr 535
FpXQ_autpowers 532
FpXQ_autsum 845
FpXQ_autsum_mul 1651
FpXQ_autsum_sqr 859
FpXQ_charpoly 2956
FpXQ_conjvec 8
FpXQ_div 269845
FpXQ_inv 350870
FpXQ_invsafe 351370
FpXQ_issquare 3446
FpXQ_log 58467
FpXQ_matrix_pow 7833
FpXQ_minpoly 2955
FpXQ_mul 38342572
FpXQ_norm 3419
FpXQ_order 38
FpXQ_pow 336187
FpXQ_pow_Frobenius 61572
FpXQ_powers 176599
FpXQ_powu 61845
FpXQ_red 3534905
FpXQ_sqr 2659737
FpXQ_sqrt 7040
FpXQ_sqrtn 7877
FpXQ_trace 20689
FpXT_red 722082
FpXV_prod 18442
FpXV_red 286724
FpX_FpXM_qmul 162
FpX_FpXQV_eval 77960
FpX_FpXQ_eval 162675
FpX_Fp_add 511876
FpX_Fp_add_shallow 0
FpX_Fp_mul 4628085
FpX_Fp_mul_to_monic 53451
FpX_Fp_mulspec 4629233
FpX_Fp_sub 140887
FpX_Fp_sub_shallow 2131
FpX_Frobenius 74729
FpX_add 8413488
FpX_addmulmul 1004
FpX_center 581957
FpX_chinese_coprime 665
FpX_deriv 799677
FpX_digits 5642
FpX_disc 14
FpX_div_by_X_x 18540
FpX_divrem 3816245
FpX_divrem_Barrett_noGC 92552
FpX_divrem_Barrettspec 92992
FpX_divrem_basecase 54920574
FpX_eval 520971
FpX_extgcd 382667
FpX_extgcd_basecase 290961
FpX_extgcd_halfgcd 4
FpX_fromdigits 2296
FpX_gcd 95303
FpX_gcd_basecase 24766
FpX_gcd_check 0
FpX_get_red 239681
FpX_halfgcd 398
FpX_halfgcd_basecase 172
FpX_halfgcd_i 334
FpX_halfgcd_split 162
FpX_halve 875
FpX_invBarrett 2163
FpX_invBarrett_Newton 561
FpX_invBarrett_basecase 1598
FpX_is_squarefree 2212
FpX_matFrobenius 2513
FpX_mul 53163675
FpX_mulspec 345974
FpX_mulu 1186211
FpX_neg 196316
FpX_normalize 244166
FpX_powu 3654
FpX_recipspec 186546
FpX_red 70055964
FpX_rem 54508247
FpX_rescale 13188
FpX_resultant 6031
FpX_sqr 2719881
FpX_sub 14192711
FpX_subspec 14285702
FpX_valrem 23317
Fp_FpXQ_log 37071
Fp_FpX_sub 31909
Fp_issquare 46844
Fp_neg_FpX 52
Fp_red_FpX 2466
FqV_inv 0
Fq_issquare 46641
Fq_log 1575
ZX_lgrenormalizespec 197383
Z_to_FpX 1710
_FpXQ_add 567189
_FpXQ_cmul 647941
_FpXQ_easylog 856
_FpXQ_mul 455948
_FpXQ_one 172655
_FpXQ_pow 61003
_FpXQ_rand 2383
_FpXQ_red 179837
_FpXQ_sqr 2125568
_FpXQ_zero 240
_FpX_add 10241
_FpX_divrem 69706
_FpX_mul 65444
_FpX_sqr 24423
bounded_order 3947
gener_FpXQ 6512
gener_FpXQ_i 1444
gener_FpXQ_local 1428
get_FpXQ_star 1279
get_FpX_degree 1379793
get_FpX_mod 429959
get_FpX_red 58324494
get_FpX_var 1233477
matid2_FpXM 4
random_FpX 61864
to_Flx 40866285
to_Flxq 649469

Generated by: LCOV version 1.9