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.8.0 lcov report (development 18955-a6d8269) Lines: 1228 1325 92.7 %
Date: 2016-05-31 Functions: 147 153 96.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 557 694 80.3 %

Function Name Sort by function name Hit count Sort by hit count
get_FpX_red 69901493
FpX_red 69250030
FpX_rem 66197180
FpX_divrem_basecase 65478138
FpX_mul 47246481
to_Flx 41574576
FpXQ_mul 39798194
FpX_add 10489374
FpX_subspec 7448882
FpX_sub 7350659
FpXQ_red 4108108
FpX_Fp_mulspec 3854415
FpX_Fp_mul 3848731
FpX_divrem 3704284
FpX_sqr 3378214
FpXQ_sqr 3314308
_FpXQ_sqr 2845020
get_FpX_degree 2192803
FpX_mulspec 1663020
get_FpX_var 1596016
_FpXQ_mul 1335276
FpX_mulu 1183943
_FpXQ_cmul 1142641
_FpXQ_add 1017150
FpX_deriv 798153
FpXT_red 723005
FpXQ_pow 666454
FpX_get_red 652965
to_Flxq 645745
FpX_center 642670
FpX_Fp_add 546531
FpX_eval 525010
get_FpX_mod 417743
FpXQ_pow_Frobenius 386622
_FpXQ_pow 385962
_FpXQ_red 343089
FpX_extgcd 341089
FpXQ_invsafe 307473
FpXQ_inv 307459
_FpXQ_one 301165
FpXV_red 287194
FpX_extgcd_basecase 259793
FpX_normalize 245858
FpXQ_div 234615
ZX_lgrenormalizespec 207696
FpX_recipspec 197084
FpXQ_powers 182925
FpX_neg 165794
FpX_FpXQ_eval 150218
FpX_powu 144599
FpX_gcd 126974
FpX_FpXQV_eval 122693
FpX_Fp_sub 116360
FpX_divrem_Barrettspec 98220
FpX_divrem_Barrett_noGC 97779
FpXQ_log 84598
FpX_Frobenius 77324
_FpX_divrem 69706
_FpX_mul 67461
FpXQ_powu 61705
_FpXQ_sub 57554
FpX_Fp_mul_to_monic 52404
FpX_gcd_basecase 52038
random_FpX 47359
Fp_issquare 46872
Fq_issquare 46662
Fp_FpXQ_log 38347
Fp_FpX_sub 34713
_FpX_sqr 29722
FpX_valrem 23296
FpXQ_trace 20685
FpX_div_by_X_x 20027
FpXV_prod 19532
get_FpXQ_algebra 13559
FpX_rescale 13076
_FpX_add 10241
deg2pol_shallow 9872
FpXQ_sqrtn 8226
FpXQ_sqrt 7172
gener_FpXQ 6673
FpX_resultant 6098
FpX_digits 5642
bounded_order 5547
FpV_roots_to_pol 5117
FpV_inv 4755
FpXQ_matrix_pow 3878
_FpXQ_zero 3537
_FpXQ_rand 3534
Fp_red_FpX 3495
FpXQ_issquare 3482
FpXQ_norm 3434
FpXQ_minpoly 3095
FpX_matFrobenius 2583
FpX_is_squarefree 2478
FpX_FpV_multieval_tree 2332
FpV_producttree 2332
FpV_invVandermonde 2331
FpX_fromdigits 2296
FpX_invBarrett 1982
FpXQ_autsum_mul 1894
Fq_log 1876
get_FpXQ_star 1783
Z_to_FpX 1710
FpX_Fp_sub_shallow 1551
gener_FpXQ_i 1451
gener_FpXQ_local 1428
FpX_invBarrett_basecase 1421
_FpXQ_easylog 1396
FpX_halve 1124
FpXQ_autsum_sqr 984
FpXQ_autsum 970
FpX_chinese_coprime 665
FpXQ_autpowers 595
FpX_dotproduct 566
FpX_invBarrett_Newton 557
FpXQ_autpow_sqr 556
FpXQ_autpow 528
FpX_halfgcd 455
FpXC_FpXQV_eval 434
FpX_halfgcd_i 349
FpX_addmulmul 340
FpX_halfgcd_basecase 187
FpXM_FpX_mul2 166
FpXM_mul2 166
FpX_halfgcd_split 162
FpX_FpXM_qmul 162
FpXQ_transmul 123
Fq_ispower 112
FpXn_mul 108
FpXM_FpXQV_eval 98
FpXQM_autsum_mul 98
FpXQM_autsum 70
FpXQM_autsum_sqr 70
Fp_neg_FpX 36
FpXQ_transmul_init 30
FpXQ_order 29
FpXQ_auttrace 14
FpX_disc 14
FpXQ_conjvec 8
FpXQ_auttrace_mul 7
FpXQ_autpow_mul 7
FpXQ_auttrace_sqr 7
FpX_extgcd_halfgcd 4
matid2_FpXM 4
FpVV_polint_tree 1
FpV_polint 1
FpXQ_charpoly 1
get_FpX_algebra 0
FpX_FpV_multieval 0
FpX_Fp_add_shallow 0
FpX_gcd_check 0
FqV_inv 0
FpV_FpM_polint 0

Generated by: LCOV version 1.9