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 17566-be4cfd0) Lines: 1018 1092 93.2 %
Date: 2015-02-28 Functions: 131 134 97.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 489 620 78.9 %

Function Name Sort by function name Hit count Sort by hit count
FpX_red 67341242
get_FpX_red 57015464
FpX_divrem_basecase 53911397
FpX_rem 53254942
FpX_mul 52931767
to_Flx 40279969
FpXQ_mul 38200217
FpX_subspec 14044776
FpX_sub 13951799
FpX_add 8222397
FpX_Fp_mulspec 4303352
FpX_Fp_mul 4302204
FpX_divrem 3760522
FpXQ_red 3370161
FpX_sqr 2319867
FpXQ_sqr 2275331
_FpXQ_sqr 1772607
get_FpX_degree 1324922
get_FpX_var 1114466
FpX_mulu 1104183
FpX_deriv 788007
FpX_center 581922
to_Flxq 574456
_FpXQ_mul 543036
_FpXQ_cmul 539840
FpX_Fp_add 491527
_FpXQ_add 483506
FpX_eval 481638
FpXQ_pow 392696
FpXT_red 383208
FpX_extgcd 373370
get_FpX_mod 371638
FpX_mulspec 345563
FpXQ_invsafe 342122
FpXQ_inv 341622
FpX_extgcd_basecase 281769
FpXQ_div 260651
FpX_get_red 248248
FpX_normalize 240828
ZX_lgrenormalizespec 197309
FpX_neg 192816
FpX_recipspec 186514
FpX_FpXQ_eval 152356
FpXV_red 146927
_FpXQ_red 135273
FpXQ_pow_Frobenius 134075
_FpXQ_pow 133498
_FpXQ_one 130246
FpXQ_powers 96413
FpX_divrem_Barrettspec 92978
FpX_divrem_Barrett_noGC 92538
FpX_gcd 89157
FpX_Fp_sub 87890
FpX_Frobenius 71739
_FpX_divrem 69622
_FpX_mul 65363
random_FpX 61019
FpXQ_log 58467
FpX_FpXQV_eval 53537
FpXQ_powu 51597
FpX_Fp_mul_to_monic 51558
Fp_issquare 46837
Fq_issquare 46641
Fp_FpXQ_log 37070
Fp_FpX_sub 31902
_FpX_sqr 24395
FpX_valrem 23289
FpX_gcd_basecase 18751
FpX_div_by_X_x 18540
FpXV_prod 18408
FpX_rescale 13146
FpXQ_trace 10496
_FpX_add 10241
FpXQ_sqrtn 7865
FpXQ_sqrt 7035
FpXQ_matrix_pow 6551
gener_FpXQ 6512
FpX_digits 5572
FpX_resultant 4933
FpV_roots_to_pol 4811
bounded_order 3937
FpX_powu 3094
FpXQ_charpoly 2956
FpXQ_minpoly 2955
FpX_matFrobenius 2498
FpV_inv 2423
_FpXQ_rand 2371
FpXQ_issquare 2311
FpX_fromdigits 2296
FpXQ_norm 2284
FpX_is_squarefree 2205
FpX_invBarrett 2161
FpXQ_autsum_mul 1910
FpX_invBarrett_basecase 1598
Fq_log 1575
FpX_Fp_sub_shallow 1566
gener_FpXQ_i 1444
gener_FpXQ_local 1428
get_FpXQ_star 1272
FpX_addmulmul 1004
FpXQ_autsum_sqr 992
FpXQ_autsum 978
FpX_halve 875
Z_to_FpX 870
_FpXQ_easylog 855
Fp_red_FpX 828
FpX_chinese_coprime 665
FpX_invBarrett_Newton 559
FpXQ_autpow_sqr 542
FpXQ_autpowers 532
FpXQ_autpow 514
FpXM_FpX_mul2 498
FpX_halfgcd 398
FpXC_FpXQV_eval 364
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 77
FpXQM_autsum_mul 77
FpXQM_autsum 56
FpXQM_autsum_sqr 56
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