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 21501-1931cb9) Lines: 1300 1407 92.4 %
Date: 2017-12-16 06:20:36 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 528
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 1405
gener_FpXQ_local 1449
FpX_invBarrett_basecase 1453
gener_FpXQ_i 1472
FpX_Fp_sub_shallow 1561
Z_to_FpX 1710
FpXn_mul 1788
get_FpXQ_star 2001
FpX_invBarrett 2013
FpXQ_autsum_mul 2027
FpXV_FpX_fromdigits 2303
FpV_invVandermonde 2436
FpV_producttree 2437
FpX_FpV_multieval_tree 2437
FpX_is_squarefree 2576
FpXn_red 2901
_FpXQ_rand 3345
_FpXQ_zero 3598
FpXQ_norm 3626
FpXQ_issquare 3702
FpXQ_minpoly 4145
FpV_inv 4860
bounded_order 5569
FpX_digits 5663
FpV_roots_to_pol 6223
FpX_resultant 6344
Fp_red_FpX 8824
gener_FpXQ 9053
_FpX_add 10241
Fp_FpX_sub 10599
FpXQ_sqrt 11815
FpXQ_sqrtn 12309
FpX_rescale 13524
get_FpXQ_algebra 13650
Fp_FpXQ_log 13989
FpXQ_trace 20790
FpXV_prod 23422
FpX_valrem 23996
random_FpX 25504
FpX_div_by_X_x 25683
FpX_Fp_mul_to_monic 47698
FpX_gcd_basecase 54476
_FpX_sqr 57064
_FpXQ_sub 58016
FpXQ_powu 66705
_FpX_divrem 69769
_FpX_mul 79581
FpXQ_log 81700
FpX_neg 83259
Fq_issquare 92064
Fp_issquare 92120
FpX_divrem_Barrett_noGC 95869
FpX_divrem_Barrettspec 96237
_FpXQ_pow 105582
FpXQ_pow_Frobenius 106292
FpX_FpXQV_eval 130649
FpX_FpXQ_eval 165646
FpXQ_powers 184901
FpX_recipspec 193344
ZX_lgrenormalizespec 203271
FpX_Frobenius 206968
FpXQ_div 233111
FpX_extgcd_basecase 265530
FpX_normalize 273191
FpXV_red 291113
FpX_powu 295617
FpX_Fp_sub 302891
FpXQ_inv 311857
FpXQ_invsafe 311878
_FpXQ_one 321578
FpX_eval 358586
_FpXQ_red 370025
FpX_get_red 385276
Fq_log 390047
FpX_extgcd 390999
FpX_gcd 449637
FpXQ_pow 517858
FpX_Fp_add 553031
FpX_deriv 642217
FpX_center 710751
to_Flxq 804152
_FpXQ_mul 899333
_FpXQ_add 1089278
FpXT_red 1100203
FpX_mulu 1186988
_FpXQ_cmul 1223555
FpX_mulspec 1957501
_FpXQ_sqr 3153367
FpX_Fp_mul 3388462
FpX_Fp_mulspec 3394858
FpXQ_sqr 3619150
FpX_sqr 3711197
FpX_divrem 3943360
FpXQ_red 3985781
FpX_sub 6907289
FpX_subspec 7003525
FpX_add 8277090
FpX_red 36875727
FpXQ_mul 40174330
FpX_mul 46653887
FpX_divrem_basecase 63795977
FpX_rem 63915878
get_FpX_red 67859351
to_Flx 76311843

Generated by: LCOV version 1.11