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 16912-212c0f0) Lines: 1013 1106 91.6 %
Date: 2014-10-20 Functions: 131 135 97.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 481 624 77.1 %

Function Name Sort by function name Hit count Sort by hit count
FpX_red 62456152
get_FpX_red 50962632
FpX_mul 50660734
FpX_divrem_basecase 48680431
FpX_rem 48159786
FpXQ_mul 37820217
to_Flx 36294061
FpX_subspec 12955657
FpX_sub 12865199
FpX_add 4714539
FpX_Fp_mulspec 3095016
FpX_Fp_mul 3093862
FpX_divrem 2802846
FpXQ_red 2616222
FpX_sqr 2182118
FpXQ_sqr 2149897
_FpXQ_sqr 1650996
FpX_mulu 1060907
get_FpX_var 660612
get_FpX_degree 612132
_FpXQ_cmul 540309
FpX_center 504580
_FpXQ_add 486021
FpX_eval 475907
FpX_deriv 448390
to_Flxq 403576
FpX_mulspec 389058
FpXT_red 368473
FpX_Fp_add 353576
get_FpX_mod 339387
FpX_extgcd 337727
FpXQ_invsafe 312915
FpXQ_inv 312429
_FpXQ_mul 305096
FpX_extgcd_basecase 270686
FpXQ_div 258428
FpX_normalize 233656
ZX_lgrenormalizespec 181609
FpX_recipspec 180962
FpX_FpXQ_eval 150707
FpXV_red 146225
FpX_neg 135045
_FpXQ_red 132852
_FpXQ_one 127163
FpX_get_red 126296
FpXQ_pow 119965
FpXQ_powers 95686
FpX_divrem_Barrettspec 90458
FpX_divrem_Barrett_noGC 90120
FpX_gcd 86790
FpX_Frobenius 70367
FpX_Fp_sub 63518
FpXQ_log 54658
_FpX_mul 51995
FpX_FpXQV_eval 51513
FpXQ_powu 51028
FpX_Fp_mul_to_monic 50070
Fq_issquare 46578
Fp_issquare 46578
Fp_FpXQ_log 36473
_FpX_divrem 36351
random_FpX 30941
FpX_valrem 22897
FpX_gcd_basecase 18617
FpX_div_by_X_x 17658
Fp_FpX_sub 16303
FpXV_prod 16095
FpXQ_pow_Frobenius 16025
_FpXQ_pow 15594
_FpX_sqr 13160
FpX_rescale 12894
FpXQ_trace 10263
FpXQ_matrix_pow 6455
gener_FpXQ 6350
_FpX_add 4858
FpX_resultant 4691
FpV_roots_to_pol 4090
bounded_order 3911
FpX_digits 3416
FpXQ_charpoly 2865
FpXQ_minpoly 2864
FpX_matFrobenius 2451
FpV_inv 2423
_FpXQ_rand 2388
FpXQ_issquare 2386
FpXQ_sqrtn 2235
FpX_is_squarefree 2114
FpXQ_autsum_mul 1816
FpX_invBarrett 1638
FpX_invBarrett_basecase 1584
FpX_Fp_sub_shallow 1508
FpX_fromdigits 1449
FpXQ_sqrt 1440
gener_FpXQ_i 1352
gener_FpXQ_local 1337
get_FpXQ_star 1282
Fq_log 1253
FpX_powu 959
FpXQ_autsum_sqr 943
FpXQ_autsum 929
_FpXQ_easylog 918
FpX_addmulmul 914
Z_to_FpX 870
FpX_halve 840
FpX_chinese_coprime 665
FpXQ_autpow_sqr 541
FpXQ_autpowers 532
FpXQ_autpow 513
FpXM_FpX_mul2 453
Fp_red_FpX 359
FpX_halfgcd 347
FpX_halfgcd_i 303
FpXC_FpXQV_eval 266
FpX_halfgcd_basecase 156
FpXM_mul2 151
FpX_halfgcd_split 147
FpX_FpXM_qmul 147
FpXM_FpXQV_eval 105
FpXQM_autsum_mul 105
FpXQM_autsum_sqr 70
FpX_invBarrett_Newton 46
FpXQ_order 36
FpXQM_autsum 28
Fp_neg_FpX 22
_FpXQ_zero 16
FpX_disc 14
FpXQ_conjvec 8
FpXQ_autpow_mul 7
FpX_extgcd_halfgcd 4
matid2_FpXM 4
FpXQ_norm 1
FpX_Fp_add_shallow 0
FpX_gcd_check 0
FqV_inv 0
famat_Z_gcd 0

Generated by: LCOV version 1.9