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 22303-eb3e11d) Lines: 1311 1444 90.8 %
Date: 2018-04-21 06:16: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 4910
FpV_invVandermonde 2486
FpV_polint 1
FpV_producttree 2487
FpV_roots_to_pol 8912
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 222
FpXQ_auttrace_mul 273
FpXQ_auttrace_sqr 245
FpXQ_charpoly 1
FpXQ_conjvec 8
FpXQ_div 229663
FpXQ_inv 317457
FpXQ_invsafe 317478
FpXQ_issquare 3740
FpXQ_log 81721
FpXQ_matrix_pow 1695
FpXQ_minpoly 4369
FpXQ_mul 41899441
FpXQ_norm 3639
FpXQ_order 29
FpXQ_pow 690418
FpXQ_pow_Frobenius 275392
FpXQ_powers 188287
FpXQ_powu 67679
FpXQ_red 4039881
FpXQ_sqr 4226865
FpXQ_sqrt 11915
FpXQ_sqrtn 12430
FpXQ_trace 21094
FpXQ_transmul 1485
FpXQ_transmul_init 530
FpXT_red 1541921
FpXV_FpX_fromdigits 2303
FpXV_prod 26488
FpXV_red 291145
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 2487
FpX_FpXM_qmul 165
FpX_FpXQV_eval 134462
FpX_FpXQ_eval 166723
FpX_Fp_add 557259
FpX_Fp_add_shallow 0
FpX_Fp_mul 3322178
FpX_Fp_mul_to_monic 54982
FpX_Fp_mulspec 3328854
FpX_Fp_sub 520393
FpX_Fp_sub_shallow 1560
FpX_Frobenius 208673
FpX_Laplace 182
FpX_Newton 40530
FpX_add 8388658
FpX_addmulmul 388
FpX_center 9839
FpX_center_i 750204
FpX_chinese_coprime 980
FpX_convol 0
FpX_deriv 684418
FpX_digits 5663
FpX_disc 28
FpX_div_by_X_x 25859
FpX_divrem 4008306
FpX_divrem_Barrett_noGC 105131
FpX_divrem_Barrettspec 105522
FpX_divrem_basecase 64970703
FpX_dotproduct 5630
FpX_eval 374219
FpX_extgcd 398209
FpX_extgcd_basecase 268154
FpX_extgcd_halfgcd 4
FpX_fromNewton 182
FpX_gcd 457905
FpX_gcd_basecase 62642
FpX_gcd_check 100
FpX_get_red 571198
FpX_halfgcd 739
FpX_halfgcd_basecase 441
FpX_halfgcd_i 627
FpX_halfgcd_split 186
FpX_halve 1160
FpX_integ 861
FpX_invBarrett 2700
FpX_invBarrett_Newton 1132
FpX_invBarrett_basecase 1517
FpX_invLaplace 364
FpX_is_squarefree 2563
FpX_matFrobenius 876
FpX_mul 48410275
FpX_mulhigh_i 0
FpX_mulspec 1989588
FpX_mulu 1244373
FpX_neg 82932
FpX_normalize 318461
FpX_powu 305039
FpX_recipspec 213753
FpX_red 40939418
FpX_rem 67174399
FpX_rescale 13685
FpX_resultant 6004
FpX_sqr 4327368
FpX_sub 7201820
FpX_subspec 7307343
FpX_valrem 24248
FpXn_exp 182
FpXn_inv 0
FpXn_mul 4076
FpXn_mulhigh 0
FpXn_recip 40712
FpXn_red 1358
FpXn_sqr 679
Fp_FpXQ_log 13930
Fp_FpX_sub 10900
Fp_issquare 92159
Fp_neg_FpX 186
Fp_red_FpX 7662
FqV_inv 0
Fq_ispower 56
Fq_issquare 92103
Fq_log 391090
ZX_lgrenormalizespec 234579
Z_to_FpX 1711
_FpXQ_add 1159917
_FpXQ_cmul 1298311
_FpXQ_easylog 1368
_FpXQ_mul 1345067
_FpXQ_one 338093
_FpXQ_pow 274789
_FpXQ_rand 3465
_FpXQ_red 388083
_FpXQ_sqr 3757308
_FpXQ_sub 62867
_FpXQ_zero 4116
_FpX_add 10241
_FpX_divrem 69769
_FpX_mul 84716
_FpX_sqr 61642
bounded_order 5670
gener_FpXQ 9053
gener_FpXQ_i 1472
gener_FpXQ_local 1449
get_FpXQ_algebra 14588
get_FpXQ_star 2010
get_FpX_algebra 0
get_FpX_red 71183234
matid2_FpXM 4
random_FpX 25788
to_Flx 77705225
to_Flxq 811641

Generated by: LCOV version 1.11