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-bordeaux.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.10.0 lcov report (development 21703-2e13792) Lines: 1300 1407 92.4 %
Date: 2018-01-17 06:18:31 Functions: 153 159 96.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpV_FpM_polint 0
FpX_FpV_multieval 0
FpX_Fp_add_shallow 0
FpX_convol 0
FqV_inv 0
get_FpX_algebra 0
FpVV_polint_tree 1
FpV_polint 1
FpXQ_charpoly 1
FpX_extgcd_halfgcd 4
matid2_FpXM 4
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_conjvec 8
FpXQ_auttrace 14
FpXQ_autpow_mul 21
FpX_disc 28
FpXQ_order 29
Fq_ispower 56
FpX_Laplace 105
FpX_fromNewton 105
FpXn_exp 105
FpX_gcd_check 106
FpXQ_transmul_init 114
Fp_neg_FpX 130
FpXQM_autsum 140
FpX_FpXM_qmul 165
FpX_halfgcd_split 165
FpXM_FpX_mul2 169
FpXM_mul2 169
FpXQM_autsum_sqr 210
FpX_Newton 210
FpX_invLaplace 210
FpX_halfgcd_basecase 233
FpXM_FpXQV_eval 308
FpXQM_autsum_mul 308
FpXQ_transmul 312
FpXn_recip 315
FpX_addmulmul 346
FpXn_sqr 371
FpX_halfgcd_i 398
FpX_integ 476
FpX_halfgcd 510
FpX_invBarrett_Newton 530
FpXQ_autpow 626
FpX_matFrobenius 627
FpXQ_autpow_sqr 647
FpXQ_autpowers 770
FpXC_FpXQV_eval 854
FpX_dotproduct 958
FpX_chinese_coprime 980
FpXQ_autsum 1019
FpXQ_matrix_pow 1026
FpXQ_autsum_sqr 1061
FpX_halve 1160
_FpXQ_easylog 1368
gener_FpXQ_local 1449
FpX_invBarrett_basecase 1471
gener_FpXQ_i 1472
FpX_Fp_sub_shallow 1596
Z_to_FpX 1710
FpXn_mul 1788
get_FpXQ_star 2006
FpXQ_autsum_mul 2027
FpX_invBarrett 2033
FpXV_FpX_fromdigits 2303
FpV_invVandermonde 2436
FpV_producttree 2437
FpX_FpV_multieval_tree 2437
FpX_is_squarefree 2576
FpXn_red 2901
_FpXQ_rand 3448
FpXQ_norm 3639
_FpXQ_zero 3668
FpXQ_issquare 3729
FpXQ_minpoly 4145
FpV_inv 4860
FpX_digits 5663
bounded_order 5677
FpV_roots_to_pol 6237
FpX_resultant 6368
Fp_red_FpX 8824
gener_FpXQ 9053
_FpX_add 10241
Fp_FpX_sub 10599
FpXQ_sqrt 11820
FpXQ_sqrtn 12314
FpX_rescale 13524
get_FpXQ_algebra 13888
Fp_FpXQ_log 13952
FpXQ_trace 20791
FpXV_prod 23436
FpX_valrem 23996
random_FpX 25631
FpX_div_by_X_x 25683
FpX_Fp_mul_to_monic 47824
FpX_gcd_basecase 55652
_FpX_sqr 57064
_FpXQ_sub 59521
FpXQ_powu 66705
_FpX_divrem 69769
_FpX_mul 79623
FpX_neg 81509
FpXQ_log 81700
Fq_issquare 92078
Fp_issquare 92134
FpX_divrem_Barrett_noGC 97885
FpX_divrem_Barrettspec 98253
_FpXQ_pow 105568
FpXQ_pow_Frobenius 106282
FpX_FpXQV_eval 131048
FpX_FpXQ_eval 165647
FpXQ_powers 185111
FpX_recipspec 197377
FpX_Frobenius 207183
ZX_lgrenormalizespec 207347
FpXQ_div 227682
FpX_extgcd_basecase 265637
FpX_normalize 273387
FpXV_red 291113
FpX_powu 295631
FpX_Fp_sub 302898
FpXQ_inv 311964
FpXQ_invsafe 311985
_FpXQ_one 323851
FpX_eval 363122
_FpXQ_red 373383
FpX_get_red 386959
Fq_log 389774
FpX_extgcd 391113
FpX_gcd 450848
FpXQ_pow 518199
FpX_Fp_add 553675
FpX_deriv 642239
FpX_center 710553
to_Flxq 804179
_FpXQ_mul 910215
_FpXQ_add 1098546
FpXT_red 1100243
FpX_mulu 1200066
_FpXQ_cmul 1233223
FpX_mulspec 1961557
_FpXQ_sqr 3204294
FpX_Fp_mul 3406379
FpX_Fp_mulspec 3412775
FpXQ_sqr 3671441
FpX_sqr 3763562
FpX_divrem 3944553
FpXQ_red 3986753
FpX_sub 6909039
FpX_subspec 7007292
FpX_add 8304804
FpX_red 36916711
FpXQ_mul 40185164
FpX_mul 46666265
FpX_divrem_basecase 63872191
FpX_rem 63995340
get_FpX_red 67940006
to_Flx 76312020

Generated by: LCOV version 1.11