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 16741-1378b1c) Lines: 980 1076 91.1 %
Date: 2014-08-17 Functions: 125 130 96.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 476 622 76.5 %

Function Name Sort by function name Hit count Sort by hit count
FpX_red 43546689
FpX_mul 35208557
get_FpX_red 34947725
FpX_divrem_basecase 33258448
FpX_rem 32975038
FpXQ_mul 26816825
to_Flx 23506448
FpX_subspec 8182568
FpX_sub 8140846
FpX_add 2655549
FpXQ_red 2124914
FpX_divrem 1972687
FpX_Fp_mulspec 1901606
FpX_Fp_mul 1900839
FpX_sqr 1383928
FpXQ_sqr 1363053
_FpXQ_sqr 1081143
FpX_mulu 652986
FpX_center 414928
_FpXQ_cmul 378800
_FpXQ_add 340684
FpX_eval 331861
get_FpX_var 331058
FpX_deriv 311930
to_Flxq 290396
get_FpX_degree 279407
FpXT_red 261015
FpX_Fp_add 216666
get_FpX_mod 212457
FpX_extgcd 211492
_FpXQ_mul 194412
FpXQ_invsafe 193602
FpXQ_inv 193277
FpX_mulspec 183250
FpX_normalize 167046
FpX_extgcd_basecase 164366
FpXQ_div 151203
FpX_FpXQ_eval 107808
FpXV_red 104362
_FpXQ_red 93847
_FpXQ_one 90105
FpX_get_red 88022
FpX_neg 84914
ZX_lgrenormalizespec 83721
FpXQ_pow 83701
FpX_recipspec 83466
FpXQ_powers 68060
FpX_gcd 61356
FpX_Frobenius 49886
FpX_Fp_sub 44444
FpXQ_log 43526
FpX_divrem_Barrettspec 41722
FpX_divrem_Barrett_noGC 41582
FpXQ_powu 36542
_FpX_mul 36521
FpX_FpXQV_eval 35924
FpX_Fp_mul_to_monic 35610
Fq_issquare 33270
Fp_issquare 33270
Fp_FpXQ_log 25631
_FpX_divrem 24400
random_FpX 21859
FpX_valrem 16430
FpX_div_by_X_x 12694
FpX_gcd_basecase 12662
FpXV_prod 11457
FpXQ_pow_Frobenius 10494
_FpXQ_pow 10190
FpX_rescale 9244
_FpX_sqr 9105
FpXQ_trace 7326
Fp_FpX_sub 5844
gener_FpXQ 4571
FpXQ_matrix_pow 4438
FpX_resultant 3247
_FpX_add 3230
FpV_roots_to_pol 2882
bounded_order 2565
FpV_inv 2423
FpX_digits 2405
FpXQ_charpoly 2057
FpXQ_minpoly 2056
FpX_matFrobenius 1753
_FpXQ_rand 1611
FpXQ_issquare 1583
FpX_is_squarefree 1505
FpXQ_sqrtn 1468
FpXQ_autsum_mul 1365
Z_to_FpX 1216
FpX_fromdigits 1020
gener_FpXQ_i 966
gener_FpXQ_local 955
FpX_Fp_sub_shallow 951
FpXQ_sqrt 899
Fq_log 895
FpX_addmulmul 886
get_FpXQ_star 860
FpX_invBarrett 774
FpX_invBarrett_basecase 748
FpXQ_autsum_sqr 705
FpXQ_autsum 695
_FpXQ_easylog 612
FpX_chinese_coprime 475
FpXM_FpX_mul2 441
FpX_halve 385
FpXQ_autpowers 385
FpXQ_autpow_sqr 382
FpXQ_autpow 362
FpX_halfgcd 327
FpX_halfgcd_i 297
Fp_red_FpX 234
FpX_halfgcd_basecase 152
FpXM_mul2 147
FpX_halfgcd_split 145
FpX_FpXM_qmul 145
FpX_invBarrett_Newton 22
_FpXQ_zero 16
Fp_neg_FpX 10
FpXQ_order 10
FpX_disc 10
FpXQ_conjvec 6
FpXQ_autpow_mul 5
FpX_extgcd_halfgcd 2
matid2_FpXM 2
FpXQ_norm 1
FpX_Fp_add_shallow 0
FpX_gcd_check 0
FqV_inv 0
famat_Z_gcd 0
FpX_powu 0

Generated by: LCOV version 1.9