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-bordeaux.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.10.0 lcov report (development 21913-852521c) Lines: 1230 1394 88.2 %
Date: 2018-02-19 06:15:51 Functions: 547 618 88.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2m_clear 0
F2v_copy 0
Flxq_add 0
Flxq_sub 0
FpV_FpC_mul 0
FpXQ_add 0
FpXQ_sub 0
Fp_muls 0
FqXQ_add 0
FqXQ_div 0
FqXQ_inv 0
FqXQ_invsafe 0
FqXQ_pow 0
FqXQ_sqr 0
FqXQ_sub 0
FqX_divrem 0
FqX_halfgcd 0
R_abs 0
RgX_isscalar 0
bid_get_gen_nocheck 0
bid_get_no 0
cbrtr 0
cbrtr_abs 0
closure_get_code 0
gabsz 0
gdiventz 0
gdivz 0
get_F2x_mod 0
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gnegz 0
gshiftz 0
gsubz 0
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkerr 0
mkmat4 0
mkmat5 0
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
pari_err_FILE 0
pari_err_MAXPRIME 0
pari_err_PACKAGE 0
polx_zx 0
rnf_get_varn 0
truecoeff 0
trunc_safe 0
vec_setconst 0
vec_shorten 0
vecsmall_coincidence 0
vecsmall_isin 0
vecsmall_min 0
vectrunc_append_batch 0
zero_F2m 0
zero_zm 0
zero_zx 0
zm_copy 0
zm_row 0
zm_to_zxV 0
znstar_get_gen 0
znstar_get_no 0
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0
mkrfrac 7
mkrfraccopy 7
mkvecs 7
pari_err_CONSTPOL 7
gerepilecoeffs 8
RgM_gtomp 14
Z_ispower 14
pari_err_BUG 14
vecsmall_indexmax 14
vecsmall_indexmin 14
mkvec4s 21
vecsmall_lengthen 21
nf_get_ramified_primes 28
pari_err_IRREDPOL 28
F2v_ei 42
RgV_gtofp 42
mkquad 42
pari_err_FLAG 42
pari_err_ROOTS0 42
pol_xnall 42
pari_err_PRIME 49
ellnf_get_bnf 56
err_get_compo 63
pari_err_COPRIME 63
rnf_get_disc 63
rowcopy 63
bnr_get_gen_nocheck 70
idealred_elt 70
nf_get_zk 77
pari_err_SQRTN 77
pari_err_OVERFLOW 84
vecsmall_pack 84
gal_get_e 105
rnf_get_index 105
rowsplice 133
pari_err_PRIORITY 154
FqX_to_mod 175
nbits2ndec 186
pari_err_VAR 203
zm_transpose 210
pari_err_PREC 219
vecreverse_inplace 232
pari_err_COMPONENT 245
quad_disc 252
vecsmall_reverse 252
ellQp_get_prec 287
get_F2xqX_mod 287
pari_err_OP 287
R_abs_shallow 322
pari_err_IMPL 364
F2m_copy 383
mkfracss 385
bid_get_arch 448
rnf_get_alpha 448
rnf_get_k 448
sturm 455
rnf_get_idealdisc 462
ndec2nbits 483
pari_err_DIM 487
RgC_gtomp 560
rnf_get_nfvarn 595
quadnorm 623
RgM_minor 637
RgV_is_QV 728
mkcols 735
pari_err_MODULUS 735
zeropadic_shallow 819
gener_Fq_local 833
inv_content 833
ellQp_get_p 847
bnf_get_reg 860
get_FlxqX_mod 1017
matpascal 1071
ellQp_get_zero 1141
powIs 1148
rnf_get_invzk 1190
FqX_powu 1211
idealchineseinit 1274
gal_get_p 1309
gal_get_orders 1358
zero_F2x 1495
vecsmall_to_vec_inplace 1561
precdbl 1657
gal_get_gen 1708
vec_prepend 1764
RgXQX_div 1792
bnf_get_fu 1806
get_FpXQX_degree 1848
pari_err_DOMAIN 1968
row_i 2177
nf_get_diff 2268
mkmat3 2331
rnf_get_nfzk 2513
gval 2569
FqX_sub 2604
FqX_normalize 2863
rnf_get_zk 2877
pari_err_TYPE2 3073
RgM_fpnorml2 3635
mkintmodu 3801
RgV_isscalar 3857
nf_get_varn 4206
FpXQX_div 4378
isintm1 4522
bnf_get_no 4592
pari_stack_pushp 4839
mkcol6 4957
FqX_div 5110
FqX_sqr 5208
is_extscalar_t 5353
RgX_is_rational 5405
cgetalloc 5750
FqX_get_red 5752
bnf_get_tuU 5762
FqX_div_by_X_x 5936
FqX_roots 6405
bnf_get_fu_nocheck 7022
addmuliu 7483
submuliu 7483
nf_get_r2 8274
ellR_get_sign 8332
F2v_to_F2x 8597
RgX_fpnorml2 8772
closure_get_dbg 8952
Qtoss 10381
mkmat22s 10444
bnr_get_gen 11025
gmulz 11673
prec2ndec 12239
pari_err_TYPE 12293
Flx_constant 12348
idealpseudored 13111
vec_lengthen 13314
nf_get_sign 13523
vecsmall_prepend 13930
mkmoo 14182
rnf_get_nfdegree 15316
gal_get_den 15673
gal_get_invvdm 15673
gal_get_mod 15673
gal_get_roots 16051
zeromat 16072
FqX_neg 16837
zerovec_block 17304
bnr_get_mod 18123
ZX_equal1 18149
gal_get_pol 19194
pari_err_INV 19696
mkvec2s 20312
Fp_halve 21329
closure_get_text 21516
FqXQ_mul 21522
mkmatcopy 21549
gtomp 22400
ZV_dvd 23198
gaddz 23318
mkoo 24108
nf_get_Tr 24332
gequalgs 24395
bnf_get_tuN 24549
FqX_red 24829
gcmpgs 25983
ndec2prec 26804
ndec2nlong 27287
bnr_get_nf 27307
bid_get_gen 27769
znstar_get_Ui 28140
mkcolcopy 28555
bid_get_sarch 29855
absfrac_shallow 32777
F2xqX_div 33180
mkveccopy 33852
pari_calloc 34668
rowslicepermute 35148
rnf_get_map 35182
FlxqX_div 35483
ZM_hnfrem 35625
ellR_get_prec 37051
Fq_to_FpXQ 38491
upr_norm 40852
mkcol3 42385
bnr_get_no 45080
bid_get_ideal 45836
nf_get_disc 47463
inf_get_sign 48546
FqX_rem 48985
abgrp_get_no 49672
err_get_num 51283
get_FpXQX_var 53083
RgXQX_rem 53735
vec_append 60956
nf_get_G 61016
gal_get_group 65072
vecsmall_ei 68648
FqX_factor 73451
FqX_extgcd 86065
get_FlxqX_degree 90260
FqX_mul 91071
rnf_get_polabs 94955
cyclic_perm 98399
zero_Flm_copy 103003
Q_abs_shallow 107140
mkvec2copy 107611
rnf_get_nfpol 107982
vecsmall_max 109834
RgX_is_QX 115997
znstar_get_U 117670
get_F2x_degree 121254
gtou 121612
rnf_get_nf 128107
RgM_gtofp 129956
zeroser 130879
gerepilemany 134000
get_FpXQX_mod 142588
idealpseudomin 153363
mkqfi 158123
idealred 158937
nf_get_roots 159032
znstar_get_cyc 165669
row 178468
affc_fixlg 186751
affgr 190202
RgC_fpnorml2 200698
get_F2xqX_degree 201068
cgetc 203551
pr_norm 205562
logint 211708
nf_get_zkprimpart 220049
nf_get_zkden 222653
powii 231553
prec2nbits_mul 233231
vecsplice 249732
FqX_gcd 257971
FqX_deriv 270487
zero_F2m_copy 280540
mul_content 282132
idealpseudomin_nonscalar 294411
bid_get_mod 300579
sqrtnr 301601
zeropadic 303475
is_real_t 309019
ZXQ_sqr 311676
Fp_invsafe 312349
vec_ei 325039
RgX_renormalize 344827
znstar_get_pe 350119
bid_get_fact2 352687
bid_get_sprk 352757
get_FlxqX_var 356694
bnf_get_gen 362384
bid_get_archp 373351
get_F2xqX_var 375739
bnr_get_bid 379266
abgrp_get_gen 391714
bid_get_fact 394085
perm_conj 402990
zv_to_ZV 404446
vecsmall_to_vec 407757
Flx_lead 413636
bnf_get_cyc 429073
nf_get_roundG 431194
ZV_to_zv 433578
gen_I 441047
get_F2x_var 447467
vec_to_vecsmall 451855
bnr_get_cyc 454761
rnf_get_absdegree 459914
mkvecsmall5 467871
RgX_shift_inplace 468855
RgX_shift_inplace_init 468855
FqX_mulu 473371
bnf_get_logfu 480297
mkvec3s 492724
ellnf_get_nf 501452
bnr_get_clgp 511769
pari_realloc 527360
get_FpX_mod 560399
gdivsg 562942
FqX_Fq_mul 570203
ZXQ_mul 582136
bit_accuracy_mul 582359
modpr_get_p 609455
rnf_get_degree 627501
FqX_Fp_mul 633902
RgX_gtofp 646258
bid_get_U 653546
identity_perm 655791
vecsmall_shorten 670097
polx_F2x 673136
ellff_get_a4a6 678200
Flx_mulu 695962
znstar_get_conreygen 707336
vecslicepermute 710946
bnr_get_bnf 737035
vecsmall_concat 747851
nf_get_index 748329
is_rational_t 770311
rnf_get_pol 782103
zero_Flx 787801
zero_F2v 796336
bnf_get_clgp 796378
zero_Flm 801053
ellinf 806783
F2x_equal1 818757
FpX_div 828423
ZC_hnfrem 841495
pol_x 873597
is_vec_t 910020
FqX_add 928648
gsubgs 929134
ismpzero 1015641
is_intreal_t 1015718
ell_get_b4 1021259
bid_get_cyc 1023873
ell_get_j 1027285
FpXX_renormalize 1033335
bid_get_grp 1052237
pari_stack_delete 1087509
FpXQX_renormalize 1135200
RgC_gtofp 1149146
ZM_lll 1158786
nbits2nlong 1191725
closure_get_frame 1201745
nf_get_M 1211892
killblock 1212140
Flm_copy 1222232
sqrfrac 1242630
pari_stack_init 1260348
col_ei 1263884
nf_get_r1 1270860
Rg_col_ei 1285710
perm_inv 1315684
pol_1 1324958
F2m_flip 1360848
F2v_flip 1360848
F2x_flip 1360848
cxtofp 1384048
ell_get_b8 1463826
mkmat22 1530753
mkintmod 1538452
ellff_get_field 1561176
mul_denom 1570428
ell_get_b6 1627060
vecsmall_copy 1664331
mkpolmod 1688137
ulogint 1808567
get_FpX_var 1810550
mulsubii 1822355
get_FpX_degree 1832569
znstar_get_faN 1838760
zv_copy 2008908
bnf_get_nf 2041620
abgrp_get_cyc 2074790
ZV_isscalar 2121658
mkcol2s 2149938
nf_get_invzk 2170245
pr_get_e 2229572
zeromatcopy 2248190
Z_issquare 2314132
pr_is_inert 2322982
Flv_copy 2331198
Fp_div 2333813
RgX_coeff 2380386
mkcol 2386130
F2m_set 2434021
vecsmall_append 2442923
pol_xn 2497494
znstar_get_conreycyc 2514771
modpr_get_T 2518304
rowpermute 2714098
cxcompotor 2783201
pol1_F2x 2828358
Flm_row 2848498
Fq_red 2858223
F2x_div 2994486
ell_get_a2 3094383
mkcomplex 3218400
matslice 3249013
F2x_equal 3551153
gaddgs 3800783
ell_get_a4 3887364
RgX_is_ZX 3926440
RgX_equal_var 3942865
mkfraccopy 3954113
ell_get_b2 3968344
F2v_clear 4181822
F2x_clear 4181822
ser_isexactzero 4443515
ell_get_a3 4514187
ell_get_a6 4703718
Flx_equal1 4757142
pr_get_gen 4802045
zc_to_ZC 4919526
vecsmall_to_col 4938531
Flx_div 4961928
zeropol 5238188
ell_get_a1 5285560
const_vecsmall 5371401
ZX_is_monic 5459832
sqrti 5491082
mkmat 5522285
vecreverse 5786495
pr_get_tau 5801275
znstar_get_N 5861212
ell_get_c4 5951076
vecpermute 6000240
qfb_disc 6377678
qfb_disc3 6458500
RgX_div 6553953
isint1 6817717
nbits2lg 6819978
RgM_shallowcopy 6847453
get_Flx_mod 7098454
Q_abs 7111140
Fp_addmul 7421630
gerepileall 7538301
pr_get_f 7744065
vecsmall_lexcmp 7943031
ell_get_type 7958121
const_vec 7972885
ell_get_c6 7983008
modpr_get_pr 8123814
Fp_inv 8491234
mkvec4 8570307
const_col 8618179
shallowcopy 8893713
nchar2nlong 9004155
ell_get_disc 9417162
cxnorm 10064318
pol0_F2x 11517577
normalize_frac 11589213
RgM_dimensions 11623904
mkvec5 11931102
mkfrac 12292797
Fp_neg 12577276
F2v_set 12906416
submulii 13412503
gmulgs 13658508
mkvec 13847747
vectrunc_init 13874403
pol_0 15081100
RgX_is_monomial 15557210
zero_zv 16805877
QV_isscalar 17414444
sqrtr 17560117
constant_coeff 17565367
zerovec 17735616
pr_get_p 18277295
dbllog2r 18354221
gtodouble 18470688
polx_Flx 18741799
get_Flx_var 19268255
rowslice 19575581
F2m_coeff 20107358
absfrac 20498476
nf_get_degree 21263236
pol1_Flx 21810176
is_universal_constant 23793395
lincombii 24890753
mkvecsmall4 25384046
mkcol2 26143706
bit_prec 26736706
RgV_is_ZV 26780678
zerocol 26928918
nf_get_pol 27094106
gtofp 27158972
cgiv 27253127
Fp_center 27958149
mkmat2 28602651
both_odd 28954864
get_Flx_degree 31791880
nbrows 32366242
zero_Flv 32798977
ell_is_inf 34186070
sstoQ 35066017
closure_is_variadic 35404698
F2x_set 39204350
vecsmallpermute 41782219
perm_mul 42987830
gerepilecopy 43589838
ZX_renormalize 46463964
pol0_Flx 46851041
vecsmalltrunc_append 50538167
is_noncalc_t 50902769
vectrunc_append 52141027
bin_copy 53709823
Fp_sqr 56647975
mkvecsmall3 57256396
FpX_renormalize 59950609
mkvecsmall 60390094
equalim1 61723281
pari_free 62271125
RgX_copy 63928342
gtos 68180130
F2x_copy 69905868
Fp_sub 70199767
mkvec3 74901934
Flx_copy 76519539
Fp_mulu 78642770
Fp_add 80259381
leading_coeff 80696242
vecsmall_prefixcmp 85155511
Fp_red 85835265
nbits2prec 86180911
Fp_mul 89995975
lgcols 93441030
vecsmalltrunc_init 95992672
mkvec2 106824321
GENbinbase 107413580
addmuliu_inplace 114244105
submuliu_inplace 115716042
mkvecsmall2 116712061
F2x_renormalize 123435857
vecslice 159729608
leafcopy_avma 160837156
F2v_coeff 166598767
is_scalar_t 170810035
F2x_coeff 173143293
is_bigint 205553055
closure_get_data 225918617
closure_get_oper 225939507
closure_codestr 225982848
nbits2extraprec 247991327
closure_arity 261762139
pari_malloc 270880182
lg_increase 272364515
equali1 330416710
pari_stack_new 354379657
is_matvec_t 371938324
isintzero 422464649
pari_stack_alloc 432067949
pari_stack_base 433226721
gerepileuptoleaf 629351458
gerepileupto 723421679
is_const_t 945324082
bit_accuracy 1006846292
prec2nbits 1099207364
gerepileuptoint 1141979134
is_pm1 1193969166
lgpol 1414112784
odd 2164857184
isonstack 2522403485
is_recursive_t 2691205117
degpol 2862321687
remsBIL 3104553933
divsBIL 3141352985
icopy_avma 3617768239

Generated by: LCOV version 1.11