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.1 lcov report (development 22726-9e20c6a88) Lines: 1309 1442 90.8 %
Date: 2018-06-23 05:36:28 Functions: 154 163 94.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpVV_polint_tree 1
FpV_FpM_polint 0
FpV_inv 4868
FpV_invVandermonde 2444
FpV_polint 1
FpV_producttree 2445
FpV_roots_to_pol 8884
FpXC_FpXQV_eval 854
FpXM_FpXQV_eval 308
FpXM_FpX_mul2 190
FpXM_mul2 169
FpXQM_autsum 140
FpXQM_autsum_mul 308
FpXQM_autsum_sqr 210
FpXQ_autpow 626
FpXQ_autpow_mul 21
FpXQ_autpow_sqr 647
FpXQ_autpowers 777
FpXQ_autsum 1019
FpXQ_autsum_mul 2027
FpXQ_autsum_sqr 1061
FpXQ_auttrace 224
FpXQ_auttrace_mul 273
FpXQ_auttrace_sqr 245
FpXQ_charpoly 1
FpXQ_conjvec 8
FpXQ_div 230251
FpXQ_inv 313833
FpXQ_invsafe 313854
FpXQ_issquare 3740
FpXQ_log 81091
FpXQ_matrix_pow 1695
FpXQ_minpoly 4371
FpXQ_mul 41577925
FpXQ_norm 3639
FpXQ_order 29
FpXQ_pow 554571
FpXQ_pow_Frobenius 138000
FpXQ_powers 187453
FpXQ_powu 68134
FpXQ_red 3929165
FpXQ_sqr 4103657
FpXQ_sqrt 11915
FpXQ_sqrtn 12528
FpXQ_trace 20873
FpXQ_transmul 1495
FpXQ_transmul_init 534
FpXT_red 1532646
FpXV_FpX_fromdigits 2303
FpXV_prod 26712
FpXV_red 291138
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 2445
FpX_FpXM_qmul 165
FpX_FpXQV_eval 133274
FpX_FpXQ_eval 166516
FpX_Fp_add 540046
FpX_Fp_add_shallow 0
FpX_Fp_mul 3315418
FpX_Fp_mul_to_monic 55679
FpX_Fp_mulspec 3321999
FpX_Fp_sub 518391
FpX_Fp_sub_shallow 1684
FpX_Frobenius 210174
FpX_Laplace 182
FpX_Newton 40741
FpX_add 8341048
FpX_addmulmul 388
FpX_center 14172
FpX_center_i 868164
FpX_chinese_coprime 980
FpX_convol 0
FpX_deriv 947910
FpX_digits 5663
FpX_disc 35
FpX_div_by_X_x 25775
FpX_divrem 4135113
FpX_divrem_Barrett_noGC 97908
FpX_divrem_Barrettspec 98303
FpX_divrem_basecase 64188411
FpX_dotproduct 5662
FpX_eval 374681
FpX_extgcd 395381
FpX_extgcd_basecase 263450
FpX_extgcd_halfgcd 4
FpX_fromNewton 182
FpX_gcd 424432
FpX_gcd_basecase 33555
FpX_gcd_check 100
FpX_get_red 431726
FpX_halfgcd 748
FpX_halfgcd_basecase 443
FpX_halfgcd_i 629
FpX_halfgcd_split 186
FpX_halve 1265
FpX_integ 861
FpX_invBarrett 2258
FpX_invBarrett_Newton 690
FpX_invBarrett_basecase 1517
FpX_invLaplace 364
FpX_is_squarefree 2563
FpX_matFrobenius 876
FpX_mul 47889176
FpX_mulhigh_i 0
FpX_mulspec 1935432
FpX_mulu 1242870
FpX_neg 80497
FpX_normalize 314988
FpX_powu 306782
FpX_recipspec 198882
FpX_red 40480335
FpX_rem 66207135
FpX_rescale 13769
FpX_resultant 6001
FpX_sqr 4202984
FpX_sub 6891143
FpX_subspec 6989445
FpX_valrem 24143
FpXn_exp 182
FpXn_inv 0
FpXn_mul 4084
FpXn_mulhigh 0
FpXn_recip 40923
FpXn_red 1358
FpXn_sqr 679
Fp_FpXQ_log 13881
Fp_FpX_sub 10836
Fp_issquare 92159
Fp_neg_FpX 104
Fp_red_FpX 7662
FqV_inv 0
Fq_ispower 56
Fq_issquare 92103
Fq_log 390376
ZX_lgrenormalizespec 210847
Z_to_FpX 1711
_FpXQ_add 1155372
_FpXQ_cmul 1292375
_FpXQ_easylog 1368
_FpXQ_mul 1069079
_FpXQ_one 333474
_FpXQ_pow 137392
_FpXQ_rand 3465
_FpXQ_red 384705
_FpXQ_sqr 3633887
_FpXQ_sub 63056
_FpXQ_zero 4137
_FpX_add 10241
_FpX_divrem 69769
_FpX_mul 85031
_FpX_sqr 62251
bounded_order 5670
gener_FpXQ 9018
gener_FpXQ_i 1472
gener_FpXQ_local 1449
get_FpXQ_algebra 15043
get_FpXQ_star 2010
get_FpX_algebra 0
get_FpX_red 70342779
matid2_FpXM 4
random_FpX 25852
to_Flx 77835873
to_Flxq 810096

Generated by: LCOV version 1.13