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 - headers - pariinl.h (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 18603-5baf4f6) Lines: 1181 1326 89.1 %
Date: 2016-02-11 Functions: 491 557 88.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 520 622 83.6 %

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2m_coeff 11825637
F2m_copy 1463
F2m_flip 338886
F2m_set 1566054
F2v_clear 2125617
F2v_coeff 96611049
F2v_copy 0
F2v_ei 7
F2v_flip 338886
F2v_set 13524558
F2v_to_F2x 6048
F2x_clear 2125617
F2x_coeff 99257291
F2x_div 1136996
F2x_equal 1267109
F2x_equal1 305621
F2x_flip 338886
F2x_renormalize 57108993
F2x_set 32977716
Flm_copy 479568
Flm_row 22636
Flv_copy 1584303
Flx_copy 54303524
Flx_div 3258845
Flx_equal1 3986947
Flx_lead 413350
Flx_mulu 424705
FlxqX_div 6965
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQX_div 0
FpXQX_renormalize 941012
FpXQ_add 0
FpXQ_sub 0
FpXX_renormalize 951782
FpX_div 608747
FpX_renormalize 78032686
Fp_add 308367353
Fp_addmul 2436167
Fp_center 4602858
Fp_div 4726271
Fp_halve 21401
Fp_inv 8220864
Fp_invsafe 351282
Fp_mul 285821971
Fp_muls 231
Fp_mulu 58648011
Fp_neg 9443697
Fp_red 1210168
Fp_sqr 6593265
Fp_sub 42733489
FqXQ_add 0
FqXQ_div 21821
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_mul 134067
FqXQ_pow 0
FqXQ_sqr 49923
FqXQ_sub 0
FqX_Fp_mul 530501
FqX_Fq_mul 554795
FqX_add 904065
FqX_div 10101
FqX_div_by_X_x 5831
FqX_divrem 0
FqX_extgcd 39557
FqX_gcd 41545
FqX_get_red 5539
FqX_mul 83839
FqX_mulu 462617
FqX_neg 5539
FqX_powu 1183
FqX_red 9513
FqX_rem 34070
FqX_sqr 5012
FqX_sub 132517
Fq_red 896266
Fq_to_FpXQ 5294
GENbinbase 73865076
QV_isscalar 5862940
Q_abs 342092
Q_abs_shallow 38205
RgC_fpnorml2 242816
RgC_gtofp 379071
RgC_gtomp 560
RgM_dimensions 116011
RgM_fpnorml2 1799
RgM_gtofp 19368
RgM_gtomp 14
RgM_inv 31195
RgM_minor 567
RgM_shallowcopy 5166776
RgV_is_QV 0
RgV_is_ZV 1490167
RgV_isscalar 8175
RgXQX_div 7
RgXQX_rem 34034
RgXQ_mul 439290
RgXQ_sqr 214452
RgX_coeff 1849604
RgX_copy 62488683
RgX_div 6109959
RgX_equal_var 4097394
RgX_fpnorml2 10729
RgX_gtofp 472305
RgX_is_QX 158588
RgX_is_ZX 57090735
RgX_is_monomial 15098544
RgX_is_rational 3297
RgX_isscalar 0
RgX_rem 2710321
RgX_renormalize 307237
RgX_shift_inplace 555678
RgX_shift_inplace_init 555679
Rg_col_ei 3356842
ZC_hnfrem 880813
ZM_hnfrem 52790
ZM_lll 1211216
ZV_dvd 23198
ZV_isscalar 1468246
ZV_to_zv 214485
ZXQ_mul 126770
ZXQ_sqr 22575
ZX_ZXY_resultant 0
ZX_equal1 12471
ZX_renormalize 73020473
Z_ispower 14
Z_issquare 718273
abgrp_get_cyc 1016505
abgrp_get_gen 270265
abgrp_get_no 9681
absfrac 1563325
absfrac_shallow 11823
addmuliu 7000
addmuliu_inplace 263853602
affc_fixlg 186992
affgr 181238
bid_get_U 417574
bid_get_arch 95673
bid_get_cyc 509250
bid_get_fact 138167
bid_get_gen 5901
bid_get_gen_nocheck 0
bid_get_grp 515669
bid_get_ideal 82699
bid_get_mod 362235
bid_get_no 0
bin_copy 36933517
bit_accuracy 1027151661
bit_accuracy_mul 2563083
bit_prec 25034008
bnf_get_clgp 554383
bnf_get_cyc 290327
bnf_get_fu 7671
bnf_get_fu_nocheck 13656
bnf_get_gen 262999
bnf_get_logfu 423784
bnf_get_nf 1183522
bnf_get_no 903
bnf_get_reg 657
bnf_get_tuN 8351
bnf_get_tuU 6671
bnr_get_bid 196341
bnr_get_bnf 396112
bnr_get_clgp 226826
bnr_get_cyc 215633
bnr_get_gen 2345
bnr_get_gen_nocheck 70
bnr_get_mod 10710
bnr_get_nf 3486
bnr_get_no 8778
both_odd 16665348
cbrtr 11710
cgetalloc 6543
cgetc 196607
cgiv 45154989
closure_arity 183984995
closure_codestr 152756337
closure_get_code 0
closure_get_data 152640853
closure_get_dbg 58386
closure_get_frame 180167
closure_get_oper 152706371
closure_get_text 118746
closure_is_variadic 31135438
col_ei 1438293
const_col 24327
const_vec 7436036
const_vecsmall 4075519
constant_term 17430576
cxcompotor 1947924
cxnorm 7144977
cxtofp 972711
cyclic_perm 0
dbllog2r 22828403
degpol 1868902824
divsBIL 3568235654
ellQp_get_p 245
ellQp_get_prec 84
ellQp_get_zero 336
ellR_get_prec 707
ellR_get_sign 800
ell_get_a1 2045256
ell_get_a2 1418418
ell_get_a3 2060645
ell_get_a4 2033011
ell_get_a6 2443092
ell_get_b2 2080131
ell_get_b4 448106
ell_get_b6 839686
ell_get_b8 689633
ell_get_c4 5069786
ell_get_c6 5430713
ell_get_disc 6746873
ell_get_j 949354
ell_get_type 7039060
ell_is_inf 31615021
ellff_get_a4a6 356150
ellff_get_field 909377
ellinf 589059
ellnf_get_nf 95718
equali1 194839967
equalim1 21631992
err_get_compo 84
err_get_num 131089
gabsz 0
gaddgs 7175530
gaddz 23318
gal_get_den 1785
gal_get_e 42
gal_get_gen 896
gal_get_group 3815
gal_get_invvdm 1785
gal_get_mod 1792
gal_get_orders 448
gal_get_p 952
gal_get_pol 959
gal_get_roots 2156
gcmpgs 33879
gdiventz 0
gdivsg 397297
gdivz 0
gen_I 423844
gener_Fq_local 511
gequalgs 23079
gerepileall 6250755
gerepilecoeffs 8
gerepilecopy 26845210
gerepilemany 63932
gerepileupto 519000479
gerepileuptoint 1001908147
gerepileuptoleaf 405619866
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulgs 6732432
gmulz 11673
gnegz 0
gshiftz 0
gsubgs 417220
gsubz 0
gtodouble 33357450
gtofp 21118501
gtomp 22400
gtos 60783372
gtou 31715
gval 1946
icopy_avma 3397997211
idealchineseinit 1197
idealpseudomin 165916
idealpseudomin_nonscalar 250688
idealpseudored 1309
idealred 163495
idealred_elt 336
identity_perm 66815
inf_get_sign 26002
is_bigint 131905858
is_const_t 853624234
is_extscalar_t 622861
is_intreal_t 818495
is_matvec_t 345117938
is_noncalc_t 51597926
is_pm1 1402714126
is_rational_t 619707
is_recursive_t 2288345841
is_scalar_t 155799488
is_universal_constant 27538666
is_vec_t 407892
isint1 5490824
isintm1 301
isintzero 330323219
ismpzero 818418
isonstack 1971641936
killblock 1071512
leading_term 68659444
leafcopy_avma 83637439
lgcols 37424401
lgpol 838221341
lincombii 17074350
matpascal 539
matslice 107282
mkcol 1112424
mkcol2 14358246
mkcol2s 0
mkcol3 40565
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkcol6 421
mkcolcopy 27603
mkcols 0
mkcomplex 2879556
mkerr 0
mkfrac 261369
mkfraccopy 2889142
mkintmod 411714
mkintmodu 3780
mkmat 216113
mkmat2 12775034
mkmat3 2352
mkmat4 0
mkmat5 0
mkmatcopy 7476
mkmoo 7420
mkoo 12035
mkpolmod 251909
mkqfi 158123
mkquad 42
mkrfrac 5586
mkrfraccopy 14
mkvec 2664368
mkvec2 14225420
mkvec2copy 162341
mkvec2s 11942
mkvec3 74845709
mkvec3s 492702
mkvec4 4185673
mkvec4s 7
mkvec5 11612187
mkveccopy 33187
mkvecs 7
mkvecsmall 38843364
mkvecsmall2 103686947
mkvecsmall3 44198751
mkvecsmall4 4637577
mkvecsmall5 398442
modpr_get_T 981390
modpr_get_p 2331
modpr_get_pr 2161212
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
mul_content 253752
mul_denom 180807
mulsubii 1625966
nbits2extraprec 341085771
nbits2lg 3101261
nbits2ndec 1181
nbits2nlong 735776
nbits2prec 96736931
nbrows 13568837
nchar2nlong 9351779
ndec2nbits 1452
ndec2nlong 18642
ndec2prec 17190
nf_get_G 42052
nf_get_M 957590
nf_get_Tr 798
nf_get_degree 2863348
nf_get_diff 812
nf_get_disc 24599
nf_get_index 595494
nf_get_invzk 1348216
nf_get_pol 6507308
nf_get_r1 1053515
nf_get_r2 1057
nf_get_ramified_primes 7
nf_get_roots 89119
nf_get_roundG 373927
nf_get_sign 5666
nf_get_varn 5767
nf_get_zk 6056495
normalize_frac 8770553
odd 570834516
pari_calloc 37944
pari_err_BUG 14
pari_err_COMPONENT 224
pari_err_CONSTPOL 7
pari_err_COPRIME 70
pari_err_DIM 848
pari_err_DOMAIN 5047
pari_err_FILE 0
pari_err_FLAG 21
pari_err_IMPL 217
pari_err_INV 732
pari_err_IRREDPOL 14
pari_err_MAXPRIME 0
pari_err_MODULUS 714
pari_err_OP 315
pari_err_OVERFLOW 63
pari_err_PACKAGE 0
pari_err_PREC 218
pari_err_PRIME 35
pari_err_PRIORITY 105
pari_err_ROOTS0 35
pari_err_SQRTN 77
pari_err_TYPE 36745
pari_err_TYPE2 2989
pari_err_VAR 490
pari_free 45360367
pari_malloc 174521785
pari_realloc 120286
pari_stack_alloc 324497769
pari_stack_base 324555791
pari_stack_delete 28353
pari_stack_init 91545
pari_stack_new 275076341
pari_stack_pushp 9460
perm_conj 35
perm_inv 3801
perm_mul 18782471
pol0_F2x 2276477
pol0_Flx 35628585
pol1_F2x 678952
pol1_Flx 15091667
pol_0 14073213
pol_1 856569
pol_x 427326
polx_F2x 193500
polx_Flx 9311341
polx_zx 0
powIs 819
powii 335307
pr_get_e 1174448
pr_get_f 4484017
pr_get_gen 1950844
pr_get_p 7577447
pr_get_tau 3495326
pr_is_inert 557726
pr_norm 83273
prec2nbits 1116847376
prec2nbits_mul 250998
prec2ndec 8089
precdbl 1687
qfb_disc 4222973
qfb_disc3 4314183
quad_disc 252
quadnorm 623
remsBIL 3500872111
resultant 25808
rnf_get_absdegree 156121
rnf_get_alpha 455
rnf_get_degree 311507
rnf_get_disc 63
rnf_get_idealdisc 427
rnf_get_index 98
rnf_get_invzk 1057
rnf_get_k 455
rnf_get_map 34048
rnf_get_nf 123130
rnf_get_nfdegree 15568
rnf_get_nfpol 108038
rnf_get_nfvarn 490
rnf_get_nfzk 6314
rnf_get_pol 462735
rnf_get_polabs 83580
rnf_get_varn 0
rnf_get_zk 3178
row 114596
row_i 2177
rowcopy 56
rowpermute 199369
rowslice 190301
rowslicepermute 32008
ser_isexactzero 4511013
shallowcopy 629362
sqrfrac 156987
sqrti 2944821
sqrtnr 34828
sqrtr 11749006
sturm 441
submulii 41467744
submuliu 7000
submuliu_inplace 264341978
truecoeff 0
trunc_safe 0
vec_append 55979
vec_ei 306027
vec_lengthen 9373
vec_setconst 1722
vec_shorten 0
vec_to_vecsmall 226763
vecpermute 4825107
vecreverse 1213237
vecreverse_inplace 232
vecslice 3920103
vecslicepermute 128336
vecsmall_append 360316
vecsmall_coincidence 0
vecsmall_concat 235144
vecsmall_copy 25699409
vecsmall_ei 7742
vecsmall_indexmax 14
vecsmall_indexmin 14
vecsmall_isin 0
vecsmall_lengthen 0
vecsmall_lexcmp 2724869
vecsmall_max 45921
vecsmall_min 133
vecsmall_pack 84
vecsmall_prefixcmp 42196553
vecsmall_prepend 1106
vecsmall_shorten 112856
vecsmall_to_col 578054
vecsmall_to_vec 14881
vecsmallpermute 18354757
vecsmalltrunc_append 2418872
vecsmalltrunc_init 1294542
vecsplice 6020
vectrunc_append 10560100
vectrunc_append_batch 0
vectrunc_init 2172610
zc_to_ZC 541087
zero_F2m 0
zero_F2m_copy 97722
zero_F2v 705121
zero_F2x 77
zero_Flm 175
zero_Flm_copy 46478
zero_Flv 21065206
zero_Flx 112051
zero_zm 0
zero_zv 13865414
zero_zx 0
zerocol 26706945
zeromat 6237
zeromatcopy 2161781
zeropadic 276577
zeropadic_shallow 371
zeropol 4407223
zeroser 13048
zerovec 6099048
zm_copy 0
zm_row 0
zm_to_zxV 0
zm_transpose 154
zv_copy 1266391
zv_to_ZV 8358
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0

Generated by: LCOV version 1.9