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-bordeaux1.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 16358-a11f489) Lines: 947 1054 89.8 %
Date: 2014-04-11 Functions: 116 122 95.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 460 616 74.7 %

Function Name Sort by function name Hit count Sort by hit count
FpV_inv 2423
FpV_roots_to_pol 2887
FpXM_FpX_mul2 348
FpXM_mul2 116
FpXQ_autpow 367
FpXQ_autpow_mul 5
FpXQ_autpow_sqr 385
FpXQ_autpowers 385
FpXQ_autsum 700
FpXQ_autsum_mul 1374
FpXQ_autsum_sqr 710
FpXQ_charpoly 2067
FpXQ_conjvec 6
FpXQ_div 151083
FpXQ_inv 193368
FpXQ_invsafe 193693
FpXQ_issquare 1639
FpXQ_log 43102
FpXQ_matrix_pow 4457
FpXQ_minpoly 2066
FpXQ_mul 26872213
FpXQ_norm 1
FpXQ_order 10
FpXQ_pow 54531
FpXQ_pow_Frobenius 10621
FpXQ_powers 69806
FpXQ_powu 36598
FpXQ_red 2138837
FpXQ_sqr 1368443
FpXQ_sqrt 898
FpXQ_sqrtn 1469
FpXQ_trace 7326
FpXT_red 254613
FpXV_prod 11716
FpXV_red 104945
FpX_FpXM_qmul 114
FpX_FpXQV_eval 34598
FpX_FpXQ_eval 122572
FpX_Fp_add 216661
FpX_Fp_add_shallow 0
FpX_Fp_mul 1541825
FpX_Fp_mul_to_monic 13372
FpX_Fp_mulspec 1542596
FpX_Fp_sub 41292
FpX_Fp_sub_shallow 995
FpX_add 1259551
FpX_addmulmul 700
FpX_center 449853
FpX_chinese_coprime 475
FpX_deriv 14405
FpX_disc 10
FpX_div_by_X_x 12714
FpX_divrem 1235303
FpX_divrem_Barrett_noGC 41134
FpX_divrem_Barrettspec 41275
FpX_divrem_basecase 32591060
FpX_eval 251857
FpX_extgcd 228057
FpX_extgcd_basecase 164277
FpX_extgcd_halfgcd 2
FpX_gcd 31945
FpX_gcd_basecase 12720
FpX_gcd_check 0
FpX_get_red 90375
FpX_halfgcd 260
FpX_halfgcd_basecase 120
FpX_halfgcd_i 234
FpX_halfgcd_split 114
FpX_halve 385
FpX_invBarrett 1420
FpX_invBarrett_Newton 9
FpX_invBarrett_basecase 1408
FpX_is_squarefree 1500
FpX_mul 34433340
FpX_mulspec 182297
FpX_mulu 629062
FpX_neg 84949
FpX_normalize 134936
FpX_recipspec 82559
FpX_red 42474870
FpX_rem 33055076
FpX_rescale 9239
FpX_resultant 3360
FpX_sqr 1379058
FpX_sub 8083660
FpX_subspec 8124935
FpX_valrem 16450
Fp_FpXQ_log 25247
Fp_FpX_sub 9644
Fp_issquare 0
Fp_neg_FpX 10
Fp_red_FpX 234
FqV_inv 0
Fq_issquare 0
Fq_log 874
ZX_lgrenormalizespec 82622
Z_to_FpX 1216
_FpXQ_add 360200
_FpXQ_cmul 400810
_FpXQ_easylog 624
_FpXQ_mul 196954
_FpXQ_one 99783
_FpXQ_pow 10286
_FpXQ_rand 1617
_FpXQ_red 99877
_FpXQ_sqr 1086732
_FpXQ_zero 16
_FpX_mul 29899
bounded_order 2582
famat_Z_gcd 0
gener_FpXQ 4530
gener_FpXQ_i 987
gener_FpXQ_local 976
get_FpXQ_star 855
get_FpX_degree 282648
get_FpX_mod 212638
get_FpX_red 34290379
get_FpX_var 264964
matid2_FpXM 2
random_FpX 22142
to_Flx 22995558
to_Flxq 272118

Generated by: LCOV version 1.9