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 17110-9967e23) Lines: 1016 1107 91.8 %
Date: 2014-11-26 Functions: 131 135 97.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 483 624 77.4 %

Function Name Sort by function name Hit count Sort by hit count
FpV_inv 2423
FpV_roots_to_pol 3307
FpXC_FpXQV_eval 80
FpXM_FpXQV_eval 20
FpXM_FpX_mul2 441
FpXM_mul2 147
FpXQM_autsum 10
FpXQM_autsum_mul 20
FpXQM_autsum_sqr 10
FpXQ_autpow 379
FpXQ_autpow_mul 5
FpXQ_autpow_sqr 399
FpXQ_autpowers 380
FpXQ_autsum 665
FpXQ_autsum_mul 1289
FpXQ_autsum_sqr 675
FpXQ_charpoly 2067
FpXQ_conjvec 6
FpXQ_div 183211
FpXQ_inv 230635
FpXQ_invsafe 231001
FpXQ_issquare 1654
FpXQ_log 40575
FpXQ_matrix_pow 4658
FpXQ_minpoly 2066
FpXQ_mul 27088414
FpXQ_norm 1
FpXQ_order 26
FpXQ_pow 194401
FpXQ_pow_Frobenius 11350
FpXQ_powers 68410
FpXQ_powu 37024
FpXQ_red 2238300
FpXQ_sqr 1546958
FpXQ_sqrt 4975
FpXQ_sqrtn 5544
FpXQ_trace 7341
FpXT_red 265538
FpXV_prod 12532
FpXV_red 104665
FpX_FpXM_qmul 145
FpX_FpXQV_eval 36585
FpX_FpXQ_eval 108272
FpX_Fp_add 345580
FpX_Fp_add_shallow 0
FpX_Fp_mul 2323152
FpX_Fp_mul_to_monic 36262
FpX_Fp_mulspec 2324002
FpX_Fp_sub 61251
FpX_Fp_sub_shallow 1100
FpX_Frobenius 50789
FpX_add 3556366
FpX_addmulmul 886
FpX_center 390409
FpX_chinese_coprime 475
FpX_deriv 320415
FpX_digits 2445
FpX_disc 10
FpX_div_by_X_x 12784
FpX_divrem 2030751
FpX_divrem_Barrett_noGC 44266
FpX_divrem_Barrettspec 44468
FpX_divrem_basecase 35224711
FpX_eval 340911
FpX_extgcd 252401
FpX_extgcd_basecase 192315
FpX_extgcd_halfgcd 2
FpX_fromdigits 1035
FpX_gcd 62566
FpX_gcd_basecase 13537
FpX_gcd_check 0
FpX_get_red 90568
FpX_halfgcd 327
FpX_halfgcd_basecase 152
FpX_halfgcd_i 297
FpX_halfgcd_split 145
FpX_halve 625
FpX_invBarrett 826
FpX_invBarrett_Newton 28
FpX_invBarrett_basecase 796
FpX_is_squarefree 1515
FpX_matFrobenius 1783
FpX_mul 36672978
FpX_mulspec 198365
FpX_mulu 754701
FpX_neg 113973
FpX_normalize 169671
FpX_powu 685
FpX_recipspec 88964
FpX_red 45771051
FpX_rem 35050582
FpX_rescale 9370
FpX_resultant 3535
FpX_sqr 1569993
FpX_sub 9523730
FpX_subspec 9568198
FpX_valrem 16605
Fp_FpXQ_log 26010
Fp_FpX_sub 11940
Fp_issquare 33270
Fp_neg_FpX 14
Fp_red_FpX 397
FqV_inv 0
Fq_issquare 33270
Fq_log 880
ZX_lgrenormalizespec 89421
Z_to_FpX 622
_FpXQ_add 342308
_FpXQ_cmul 381122
_FpXQ_easylog 605
_FpXQ_mul 220474
_FpXQ_one 91187
_FpXQ_pow 10949
_FpXQ_rand 1671
_FpXQ_red 94758
_FpXQ_sqr 1188794
_FpXQ_zero 16
_FpX_add 3470
_FpX_divrem 25990
_FpX_mul 38786
_FpX_sqr 9410
bounded_order 2789
famat_Z_gcd 0
gener_FpXQ 4536
gener_FpXQ_i 1001
gener_FpXQ_local 990
get_FpXQ_star 913
get_FpX_degree 580544
get_FpX_mod 249981
get_FpX_red 37081333
get_FpX_var 531647
matid2_FpXM 2
random_FpX 41997
to_Flx 24637517
to_Flxq 401532

Generated by: LCOV version 1.9