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 20095-ff095b1) Lines: 1235 1333 92.6 %
Date: 2017-01-21 05:50:01 Functions: 147 153 96.1 %
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 4195
FpV_invVandermonde 1771
FpV_polint 1
FpV_producttree 1772
FpV_roots_to_pol 5341
FpXC_FpXQV_eval 854
FpXM_FpXQV_eval 308
FpXM_FpX_mul2 169
FpXM_mul2 169
FpXQM_autsum 140
FpXQM_autsum_mul 308
FpXQM_autsum_sqr 210
FpXQ_autpow 514
FpXQ_autpow_mul 7
FpXQ_autpow_sqr 542
FpXQ_autpowers 616
FpXQ_autsum 795
FpXQ_autsum_mul 1551
FpXQ_autsum_sqr 809
FpXQ_auttrace 14
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_charpoly 1
FpXQ_conjvec 8
FpXQ_div 228402
FpXQ_inv 289479
FpXQ_invsafe 289493
FpXQ_issquare 3258
FpXQ_log 71767
FpXQ_matrix_pow 4072
FpXQ_minpoly 3277
FpXQ_mul 39910977
FpXQ_norm 3210
FpXQ_order 29
FpXQ_pow 515149
FpXQ_pow_Frobenius 150884
FpXQ_powers 185288
FpXQ_powu 62867
FpXQ_red 2645307
FpXQ_sqr 3058411
FpXQ_sqrt 7347
FpXQ_sqrtn 8492
FpXQ_trace 20790
FpXQ_transmul 123
FpXQ_transmul_init 30
FpXT_red 1093179
FpXV_FpX_fromdigits 2296
FpXV_prod 18692
FpXV_red 289643
FpX_FpV_multieval 0
FpX_FpV_multieval_tree 1772
FpX_FpXM_qmul 165
FpX_FpXQV_eval 126079
FpX_FpXQ_eval 170406
FpX_Fp_add 550299
FpX_Fp_add_shallow 0
FpX_Fp_mul 3497762
FpX_Fp_mul_to_monic 45779
FpX_Fp_mulspec 3503446
FpX_Fp_sub 299672
FpX_Fp_sub_shallow 1559
FpX_Frobenius 156399
FpX_add 8073578
FpX_addmulmul 346
FpX_center 676675
FpX_chinese_coprime 980
FpX_deriv 635762
FpX_digits 5642
FpX_disc 28
FpX_div_by_X_x 19593
FpX_divrem 3651473
FpX_divrem_Barrett_noGC 97391
FpX_divrem_Barrettspec 97787
FpX_divrem_basecase 61623828
FpX_dotproduct 566
FpX_eval 371459
FpX_extgcd 361306
FpX_extgcd_basecase 246820
FpX_extgcd_halfgcd 4
FpX_gcd 440620
FpX_gcd_basecase 52006
FpX_gcd_check 0
FpX_get_red 421332
FpX_halfgcd 472
FpX_halfgcd_basecase 191
FpX_halfgcd_i 356
FpX_halfgcd_split 165
FpX_halve 1090
FpX_invBarrett 2050
FpX_invBarrett_Newton 528
FpX_invBarrett_basecase 1490
FpX_is_squarefree 2107
FpX_matFrobenius 2693
FpX_mul 46038666
FpX_mulspec 1653468
FpX_mulu 1183982
FpX_neg 73815
FpX_normalize 259920
FpX_powu 267610
FpX_recipspec 196191
FpX_red 66109005
FpX_rem 60932090
FpX_rescale 13377
FpX_resultant 5880
FpX_sqr 3148664
FpX_sub 6482770
FpX_subspec 6580558
FpX_valrem 23779
FpXn_mul 108
Fp_FpXQ_log 5626
Fp_FpX_sub 8427
Fp_issquare 90811
Fp_neg_FpX 8
Fp_red_FpX 6598
FqV_inv 0
Fq_ispower 133
Fq_issquare 90664
Fq_log 271845
ZX_lgrenormalizespec 206370
Z_to_FpX 1710
_FpXQ_add 1069675
_FpXQ_cmul 1198601
_FpXQ_easylog 1443
_FpXQ_mul 871613
_FpXQ_one 311549
_FpXQ_pow 150173
_FpXQ_rand 3384
_FpXQ_red 356106
_FpXQ_sqr 2590384
_FpXQ_sub 57554
_FpXQ_zero 3537
_FpX_add 10241
_FpX_divrem 69706
_FpX_mul 69597
_FpX_sqr 55979
bounded_order 5382
deg2pol_shallow 8171
gener_FpXQ 6841
gener_FpXQ_i 1465
gener_FpXQ_local 1442
get_FpXQ_algebra 13559
get_FpXQ_star 1782
get_FpX_algebra 0
get_FpX_degree 1584422
get_FpX_mod 386897
get_FpX_red 64583594
get_FpX_var 1382098
matid2_FpXM 4
random_FpX 19167
to_Flx 40026310
to_Flxq 754380

Generated by: LCOV version 1.11