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 - Flx.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 16912-212c0f0) Lines: 2085 2246 92.8 %
Date: 2014-10-20 Functions: 259 271 95.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1086 1322 82.1 %

Function Name Sort by function name Hit count Sort by hit count
Fl2_equal1 49
Fl2_inv_pre 14
Fl2_mul_pre 168
Fl2_norm_pre 0
Fl2_pow_pre 77
Fl2_sqr_pre 497
Fl2_sqrtn_pre 14
Fl_to_Flx 444870
Flc_to_ZC 1084834
Flm_to_FlxV 144662
Flm_to_FlxX 11989
Flm_to_ZM 207290
FlvV_polint_tree 21624
Flv_FlvV_polint 0
Flv_inv 21624
Flv_polint 21624
Flv_producttree 21624
Flv_roots_to_pol 496
Flv_to_Flx 356796
Flv_to_ZV 301
FlxC_to_ZXC 419
FlxM_Flx_add_shallow 84
FlxM_Flx_mul2 859
FlxM_mul2 646
FlxM_to_ZXM 189
FlxT_red 29818
FlxV_Flc_mul 12124
FlxV_red 0
FlxV_to_Flm 223349
FlxV_to_ZXV 80961
FlxXV_to_FlxM 152
FlxX_Fl_mul 228
FlxX_Flx_add 326
FlxX_Flx_mul 130593
FlxX_add 115493
FlxX_double 424
FlxX_lgrenormalizespec 259771
FlxX_neg 228
FlxX_recipspec 149069
FlxX_renormalize 1277726
FlxX_shift 0
FlxX_sub 41977
FlxX_subspec 65265
FlxX_swap 9772
FlxX_to_Flm 5591
FlxX_to_FlxC 1840
FlxX_to_ZXX 289437
FlxX_triple 98
FlxY_Flx_div 1463
FlxY_FlxqV_evalx 13141
FlxY_Flxq_evalx 0
FlxY_evalx 811838
FlxYqq_mul 1960
FlxYqq_pow 1946
FlxYqq_redswap 4886
FlxYqq_sqr 2926
Flx_Fl_add 362442
Flx_Fl_mul 14485015
Flx_Fl_mul_to_monic 1292103
Flx_Flv_eval 0
Flx_Flv_eval_tree 21624
Flx_FlxM_qmul 643
Flx_FlxqV_eval 1296455
Flx_Flxq_eval 629166
Flx_Frobenius 2654732
Flx_add 12985854
Flx_addmulmul 1724
Flx_addshift 3788
Flx_addspec 7520
Flx_deflate 20699
Flx_deriv 3861199
Flx_div_by_X_x 8215
Flx_divrem 53190700
Flx_divrem_Barrett_noGC 13021
Flx_divrem_Barrettspec 13151
Flx_divrem_basecase 18827305
Flx_double 1769140
Flx_equal 4676680
Flx_eval 25868328
Flx_eval2BILspec 365539
Flx_extgcd 2657694
Flx_extgcd_basecase 2657694
Flx_extgcd_halfgcd 3
Flx_extresultant 141701
Flx_gcd 14639858
Flx_gcd_basecase 14084035
Flx_get_red 11807063
Flx_halfgcd 2246
Flx_halfgcd_basecase 1416
Flx_halfgcd_i 2246
Flx_halfgcd_split 830
Flx_inflate 9755
Flx_invBarrett 96
Flx_invBarrett_Newton 14
Flx_invBarrett_basecase 66
Flx_is_l_pow 4627
Flx_is_smooth 84847
Flx_is_smooth_squarefree 89474
Flx_is_squarefree 3354741
Flx_lgrenormalizespec 26512
Flx_matFrobenius 220171
Flx_mod_Xn1 19
Flx_mod_Xnm1 17160
Flx_mul 53316545
Flx_mullimb 42254260
Flx_mullimb_ok 100463278
Flx_mulspec 53346733
Flx_mulspec_basecase 30930566
Flx_mulspec_halfmulii 17514087
Flx_mulspec_mulii 890414
Flx_mulspec_mulii_inflate 137443
Flx_neg 728928
Flx_neg_inplace 1838
Flx_negspec 728928
Flx_normalize 7336919
Flx_powu 1435
Flx_recip 0
Flx_recipspec 26316
Flx_red 117980
Flx_rem 174989662
Flx_rem_basecase 154413385
Flx_renormalize 482718725
Flx_rescale 42
Flx_resultant 3128297
Flx_shift 1261881
Flx_shiftip 76214643
Flx_splitting 60400
Flx_sqr 26774255
Flx_sqrspec 26774367
Flx_sqrspec_basecase 12986920
Flx_sqrspec_halfsqri 13392257
Flx_sqrspec_sqri 270409
Flx_sqrspec_sqri_inflate 90653
Flx_sub 35011137
Flx_subspec 13151
Flx_to_Flv 2906265
Flx_to_FlxX 0
Flx_to_ZX 2672309
Flx_to_ZX_inplace 37729797
Flx_to_int_halfspec 48420431
Flx_triple 627092
Flx_val 1430
Flx_valrem 311002
FlxqV_dotproduct 56672
FlxqV_roots_to_pol 346
FlxqXQV_autpow 1163
FlxqXQV_autsum 2789
FlxqXQ_autpow_mul 642
FlxqXQ_autpow_sqr 2003
FlxqXQ_autsum_mul 5248
FlxqXQ_autsum_sqr 4328
FlxqXQ_div 1201
FlxqXQ_inv 1201
FlxqXQ_invsafe 1201
FlxqXQ_matrix_pow 152
FlxqXQ_mul 8949
FlxqXQ_mul_mg 43497
FlxqXQ_pow 6741
FlxqXQ_powers 6141
FlxqXQ_sqr 1071
FlxqXQ_sqr_mg 42171
FlxqXV_prod 346
FlxqX_FlxqXQV_eval 12455
FlxqX_FlxqXQ_eval 2645
FlxqX_Flxq_mul 7442
FlxqX_Flxq_mul_to_monic 16128
FlxqX_divrem 226970
FlxqX_extgcd 6038
FlxqX_gcd 4202
FlxqX_invBarrett 27807
FlxqX_invBarrett_Newton 18539
FlxqX_invBarrett_basecase 9119
FlxqX_mul 91367
FlxqX_mulspec 223751
FlxqX_normalize 0
FlxqX_pow 5061
FlxqX_red 51220
FlxqX_rem_Barrett 65265
FlxqX_safegcd 1967
FlxqX_sqr 51236
Flxq_autpow 318564
Flxq_autpow_mul 10222
Flxq_autpow_sqr 382666
Flxq_autsum 315087
Flxq_autsum_mul 595850
Flxq_autsum_sqr 365088
Flxq_charpoly 341
Flxq_conjvec 20
Flxq_div 1704378
Flxq_easylog 316951
Flxq_inv 2573324
Flxq_invsafe 2590653
Flxq_is2npower 140
Flxq_issquare 296522
Flxq_log 54677
Flxq_lroot 12474
Flxq_lroot_fast 56672
Flxq_matrix_pow 221403
Flxq_minpoly 314
Flxq_mul 24405382
Flxq_norm 14357
Flxq_order 12807
Flxq_pow 5817212
Flxq_pow_Frobenius 5237304
Flxq_powers 915200
Flxq_powu 3321848
Flxq_sqr 26648973
Flxq_sqrt 143178
Flxq_sqrtn 144633
Flxq_trace 1711
Fly_to_FlxY 581
Kronecker_to_FlxqX 366354
RgX_to_Flx 126
Rg_to_F2 1428461
Rg_to_Fl 12447131
Rg_to_Flxq 585815
ZXT_to_FlxT 639425
ZXV_to_FlxV 0
ZXXV_to_FlxXV 0
ZXX_to_FlxX 321010
ZX_to_Flx 99289879
Z_mod2BIL_Flx 228096
Z_mod2BIL_Flx_2 228054
Z_mod2BIL_Flx_3 42
Z_to_Flx 1136469
_Fl2_mul 168
_Fl2_pow 77
_Fl2_rand 21
_Fl2_sqr 497
_Flx_mul 3716
_FlxqXQ_add 115493
_FlxqXQ_cmul 130593
_FlxqXQ_mul 43497
_FlxqXQ_one 37642
_FlxqXQ_red 34698
_FlxqXQ_sqr 42171
_FlxqXQ_zero 0
_FlxqX_mul 1338
_FlxqX_sqr 5068
_Flxq_add 7721125
_Flxq_cmul 9161104
_Flxq_equal0 46423
_Flxq_inv 2048
_Flxq_mul 17742631
_Flxq_neg 2118
_Flxq_one 5092431
_Flxq_pow 5221053
_Flxq_rand 281579
_Flxq_red 4751359
_Flxq_rmul 489576
_Flxq_s 8244
_Flxq_sqr 23382562
_Flxq_zero 18065
bounded_order 633086
gener_Flxq 6586
get_Flx_degree 8759875
get_Flx_mod 2865994
get_Flx_red 228180362
get_Flx_var 9033565
get_Flxq_field 320
get_Flxq_star 210193
int_to_Flx 1160823
int_to_Flx_half 30906344
matid2_FlxM 10
maxlengthcoeffpol 76214643
mkF2 714
pol1_FlxX 43680
polx_FlxX 4000
random_Flx 643305
zxX_to_Kronecker 233970
zxX_to_Kronecker_spec 681472

Generated by: LCOV version 1.9