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 to exceed 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.12.0 lcov report (development 23348-5caea72e3) Lines: 1287 1456 88.4 %
Date: 2018-12-14 05:41:32 Functions: 564 642 87.9 %
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
FqX_halve 0
FqX_integ 0
FqXn_exp 0
FqXn_inv 0
FqXn_mul 0
FqXn_sqr 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
gaddz 0
gdiventz 0
gdivz 0
get_F2x_mod 0
gmaxsg 0
gminsg 0
gmodz 0
gmul2nz 0
gmulz 0
gnegz 0
gshiftz 0
gsubz 0
mkcol3s 0
mkcol4 0
mkcol4s 0
mkcol5 0
mkerr 0
mkmat4 0
mkmat5 0
mkvecs 0
mpcosz 0
mpexpz 0
mplogz 0
mpsinz 0
pari_err_FILE 0
pari_err_FILEDESC 0
pari_err_MAXPRIME 0
pari_err_PACKAGE 0
polx_zx 0
rnf_get_varn 0
sturm 0
truecoef 0
trunc_safe 0
vec_setconst 0
vec_shorten 0
vecsmall_coincidence 0
vecsmall_isin 0
zero_F2m 0
zero_zm 0
zero_zx 0
zm_copy 0
zm_row 0
zm_to_zxV 0
zv_to_zx 0
zx_renormalize 0
zx_shift 0
zx_to_zv 0
gerepilecoeffs 6
FqX_ddf 7
FqX_factor_squarefree 7
mkrfrac 7
mkrfraccopy 7
pari_err_CONSTPOL 7
znstar_get_gen 7
znstar_get_no 7
RgM_gtomp 14
Z_ispower 14
pari_err_BUG 14
vecsmall_indexmax 14
vecsmall_indexmin 14
mkvec4s 21
vecsmall_lengthen 21
pari_err_IRREDPOL 28
F2v_ei 42
FqX_degfact 42
RgV_gtofp 42
pari_err_ROOTS0 49
ellnf_get_bnf 56
pari_err_COPRIME 63
pari_err_FLAG 63
rnf_get_disc 63
bnr_get_gen_nocheck 70
pari_err_PRIME 70
err_get_compo 77
pari_err_SQRTN 77
gal_get_e 84
vecsmall_pack 84
pari_err_OVERFLOW 86
nf_get_ramified_primes 91
nf_get_zk 98
mkquad 105
rnf_get_index 105
rowsplice 133
pari_err_PRIORITY 175
nbits2ndec 193
FqX_to_mod 203
coltrunc_init 203
pari_err_COMPONENT 203
pari_err_VAR 203
zm_transpose 210
pari_err_PREC 218
vecreverse_inplace 253
mkcols 273
quad_disc 273
ellQp_get_prec 287
pol_xnall 287
F2m_copy 302
R_abs_shallow 322
vecsmall_reverse 329
pari_err_OP 350
get_F2xqX_mod 378
pari_err_IMPL 427
pari_err_DIM 487
RgC_gtomp 560
rnf_get_alpha 609
quadnorm 623
rnf_get_idealdisc 700
bid_get_arch 707
rnf_get_k 742
pari_err_MODULUS 749
Rg_to_Fq 756
idealred_elt 826
RgM_minor 833
bnf_get_reg 846
zeropadic_shallow 966
matpascal 1071
ellQp_get_p 1085
rnf_get_invzk 1197
powIs 1246
gener_Fq_local 1253
FqX_powu 1288
gal_get_p 1323
zero_F2x 1327
gal_get_orders 1379
ellQp_get_zero 1407
vecsmall_min 1421
vecsmall_to_vec_inplace 1617
nf_get_r2 1673
gal_get_gen 1743
bnf_get_fu 1778
vec_prepend 1785
RgXQX_div 1792
idealchineseinit 2058
pari_err_DOMAIN 2085
get_FpXQX_degree 2187
row_i 2303
nf_get_diff 2324
mkmat3 2331
get_FlxqX_mod 2461
pari_err_TYPE2 3045
precdbl 3143
rnf_get_nfzk 3178
FqX_sub 3234
FqX_normalize 3248
rnf_get_zk 3290
rnf_get_nfvarn 3325
RgM_fpnorml2 3846
mkintmodu 4074
FpXQX_div 4347
nf_get_varn 4675
isintm1 4697
pari_stack_pushp 4808
is_extscalar_t 5479
FqX_div 5600
cgetalloc 5813
FqX_div_by_X_x 5936
inv_content 6048
FqX_get_red 6095
FqX_sqr 6468
RgX_is_rational 6511
bnf_get_no 6713
gval 7077
FqX_roots 7126
bnf_get_tuU 7457
submuliu 7595
RgV_isscalar 7676
ndec2nbits 8478
mkcol6 8716
bnf_get_fu_nocheck 8885
RgX_fpnorml2 9304
closure_get_dbg 9666
vectrunc_append_batch 10416
mkmat22s 10696
ellR_get_sign 12106
Qtoss 12208
Flx_constant 12301
prec2ndec 12448
pari_err_TYPE 12636
vec_lengthen 13710
bnr_get_gen 14931
gal_get_den 15918
gal_get_invvdm 15918
gal_get_mod 15960
gal_get_roots 16338
rnf_get_nfdegree 16471
mkmoo 17010
FqX_neg 17404
zerovec_block 17605
ZX_equal1 18205
bnr_get_mod 18648
pari_err_INV 19716
gal_get_pol 19894
RgV_is_QV 21130
vecsmall_prepend 21176
idealpseudored 21784
mkmatcopy 22341
FqXQ_mul 22348
gtomp 22400
nf_get_sign 22843
mkvec2s 23042
closure_get_text 23140
ZV_dvd 23198
zeromat 23555
Fp_halve 23592
ndec2prec 23878
nf_get_Tr 24367
gequalgs 24570
FqX_red 25431
mkfracss 32137
F2v_to_F2x 32323
ndec2nlong 32356
bnr_get_nf 32557
absfrac_shallow 32665
F2xqX_div 33285
FlxqX_div 35076
mkveccopy 35091
ellR_get_prec 37156
pari_calloc 37342
bnf_get_tuN 40208
rowslicepermute 40668
vecsmall_shorten 41511
mkcol3 42385
Fq_to_FpXQ 43439
bid_get_gen 45346
znstar_get_Ui 45920
upr_norm 48083
ZM_hnfrem 48866
bid_get_sarch 49203
mkcolcopy 50553
err_get_num 52667
FqX_rem 53108
nf_get_disc 53151
get_FpXQX_var 57364
gcmpgs 59646
vec_append 63399
bid_get_ideal 65947
gal_get_group 66990
RgXQX_rem 67885
vecsmall_ei 71428
FqX_factor 74543
nf_get_G 81489
bnr_get_no 82278
FqX_extgcd 88128
abgrp_get_no 92758
mkoo 96160
FqX_mul 96748
mkvec2copy 96868
rnf_get_map 96915
cyclic_perm 98434
zero_Flm_copy 110196
znstar_get_U 118160
get_F2x_degree 121548
idealred 122877
Q_abs_shallow 130772
zv_to_ZV 131980
inf_get_sign 132886
RgM_gtofp 134578
vecsmall_to_vec 135186
idealpseudomin 140674
get_FpXQX_mod 142586
zeroser 143591
gtou 152301
get_FlxqX_degree 155787
mkqfi 158123
vecsmall_max 178788
RgC_fpnorml2 187194
rnf_get_nfpol 188580
znstar_get_cyc 198534
gerepilemany 199026
get_F2xqX_degree 201684
rowcopy 204820
rnf_get_polabs 205254
affgr 216244
logint 221139
pr_norm 232216
FqX_gcd 259238
affc_fixlg 260929
RgX_is_QX 263284
vecsplice 263753
powii 265504
FqX_deriv 272895
zero_F2m_copy 277570
nf_get_zkprimpart 279038
nf_get_zkden 280186
ZXQ_sqr 281953
cxtoreal 291144
idealpseudomin_nonscalar 298542
cgetc 298744
prec2nbits_mul 302041
Fp_invsafe 318439
nf_get_roots 332889
vec_ei 336194
bid_get_mod 361227
mul_content 362953
zeropadic 363703
RgX_renormalize 368623
get_FlxqX_var 368938
get_F2xqX_var 376495
rnf_get_nf 384825
row 390422
bnf_get_gen 390989
nf_get_roundG 408067
perm_conj 416934
addmuliu 425359
abgrp_get_gen 437924
get_F2x_var 448552
gen_I 449591
bid_get_sprk 458184
bid_get_fact2 458373
sqrtnr 462323
mkvecsmall5 466536
RgX_shift_inplace 470874
RgX_shift_inplace_init 470874
bnr_get_bid 474711
Flx_lead 480395
FqX_mulu 489744
mkvec3s 492724
bid_get_archp 493975
bnf_get_cyc 498019
bnf_get_logfu 502386
is_real_t 504275
bid_get_fact 528282
ZXQ_mul 559859
bit_accuracy_mul 566020
FqX_Fq_mul 588211
modpr_get_p 609500
bnr_get_cyc 618106
FqX_Fp_mul 657480
pari_realloc 673975
gdivsg 682472
Rg_col_ei 683115
ellff_get_a4a6 683126
polx_F2x 686105
ellnf_get_nf 699365
bnr_get_clgp 716428
identity_perm 728145
RgX_gtofp 757416
FpXX_renormalize 772497
rnf_get_absdegree 775698
vecsmall_concat 786537
zero_F2v 797108
znstar_get_pe 800366
ellinf 809820
vecslicepermute 816343
bid_get_U 819621
F2x_equal1 826472
nf_get_index 828845
Flx_mulu 847368
bnf_get_clgp 896050
ZC_hnfrem 901843
zero_Flm 922961
bnr_get_bnf 927533
zero_Flx 932938
FpX_div 947701
FqX_add 957187
pol_x 989395
ell_get_b4 1024949
ell_get_j 1028909
perm_inv 1161996
nbits2nlong 1191939
RgC_gtofp 1192232
znstar_get_conreygen 1201690
is_rational_t 1208370
ismpzero 1224227
is_intreal_t 1224304
closure_get_frame 1227607
rnf_get_degree 1233638
mulsubii 1238672
FpXQX_renormalize 1251664
bid_get_cyc 1284742
sqrfrac 1285239
killblock 1288000
bid_get_grp 1330683
gsubgs 1353440
F2m_set 1362615
Flm_copy 1375074
Fp_divu 1401757
col_ei 1422164
pol_1 1429238
ell_get_b8 1464001
rnf_get_pol 1479849
is_vec_t 1499606
F2m_flip 1501622
F2v_flip 1501622
F2x_flip 1501622
mkmat22 1533070
ellff_get_field 1570455
gc_NULL 1612003
mul_denom 1627421
ell_get_b6 1630617
get_FpX_mod 1631494
Fp_div 1655621
cxtofp 1702168
pari_stack_delete 1738658
pari_stack_init 1789826
vecsmall_copy 1873888
zv_copy 1903224
hash_str 1945612
ulogint 1997398
mkcol2s 2176216
gc_double 2270182
Flv_copy 2274987
bnf_get_nf 2315506
Z_issquare 2334532
RgX_is_monomial 2348320
pr_get_e 2376642
ZM_lll 2438964
nf_get_invzk 2486878
mkcol 2534705
mkmat 2536167
F2x_div 2585765
abgrp_get_cyc 2600822
get_FpX_degree 2627881
modpr_get_T 2681237
Fq_red 2802399
znstar_get_faN 2814224
nf_get_M 2864897
pol1_F2x 2876924
mkpolmod 2940301
RgX_coeff 2961582
rowpermute 3011311
ell_get_a2 3095797
F2x_equal 3108674
mkintmod 3120440
vecsmall_append 3128832
pr_is_inert 3188983
ell_get_b2 3318529
ZV_to_zv 3343107
vec_to_vecsmall 3365444
gc_int 3366417
cxcompotor 3432070
znstar_get_conreycyc 3488156
get_FpX_var 3672322
matslice 3703534
Flm_row 3759406
ell_get_a3 3861701
ell_get_a4 3888743
ell_get_a1 3979750
nf_get_r1 4136913
RgX_is_ZX 4466761
Flx_div 4487033
checkell_i 4624844
ell_get_a6 4704922
F2v_clear 4728268
F2x_clear 4728268
Flx_equal1 4889998
zeromatcopy 4890262
Fp_addmul 5038547
ZV_isscalar 5045407
zc_to_ZC 5208107
vecsmall_to_col 5227140
ZX_is_monic 5499214
RgM_dimensions 5673623
isint1 5711901
ser_isexactzero 5750158
vecreverse 5830525
sqrti 5869052
gaddgs 6080071
ell_get_c4 6167022
pr_get_tau 6300022
qfb_disc 6305775
qfb_disc3 6386709
vecpermute 6508514
hash_str_len 6584187
pr_get_gen 6618202
mkfraccopy 6675277
RgX_div 6862149
mkvec4 7270038
ell_get_c6 7403516
gerepileall 7578079
get_Flx_mod 7585765
nbits2lg 7699680
Q_abs 7765031
vecsmall_lexcmp 8141461
modpr_get_pr 8420056
const_vecsmall 8602649
const_col 8679186
const_vec 8746442
pol_xn 8770747
F2v_set 8963531
mkcomplex 9074684
pr_get_f 9158882
Fp_inv 9623443
ell_get_disc 9653728
nchar2nlong 9983372
RgM_shallowcopy 10337122
pol0_F2x 11172091
ell_get_type 11455518
F2m_coeff 11671379
mkvecsmall4 11949480
mkvec5 12081879
shallowcopy 12705502
vectrunc_init 12713035
cxnorm 12991826
submulii 13447187
Fp_neg 13562155
mkvec 15052297
gmulgs 15086518
pol1_Flx 15116071
Fp_center_i 15267740
gc_ulong 15278743
zeropol 15543007
Fp_center 16714377
get_Flx_var 16822991
zero_zv 17415259
polx_Flx 17830242
constant_coeff 17947377
QV_isscalar 19658338
pr_get_p 20066635
lincombii 20674169
zerovec 21784325
normalize_frac 21815197
znstar_get_N 21944062
gc_bool 21953267
rowslice 22365736
sqrtr 22383154
absfrac 23087107
mkfrac 23138938
dbllog2r 23259341
nf_get_degree 25311451
mkcol2 25641927
is_universal_constant 25918019
RgV_is_ZV 27439539
RgX_equal_var 28786645
both_odd 29033367
nf_get_pol 31828538
cgiv 31943189
mkmat2 32198316
bit_prec 32645996
F2x_set 32802720
pol_0 32822528
vecsmalltrunc_append 33067368
Fp_sqr 33456638
zero_Flv 33650555
gtodouble 33832985
ell_is_inf 33980674
nbrows 34540890
Fp_red 35460427
closure_is_variadic 35502535
gtofp 35760654
get_Flx_degree 35946594
zerocol 37586781
vecsmallpermute 45408004
perm_mul 46651839
ZX_renormalize 51150321
vectrunc_append 51325322
gerepilecopy 53206773
pol0_Flx 54632301
Fp_sub 56651026
mkvecsmall3 58017276
F2x_copy 59599496
is_noncalc_t 60096906
equalim1 61422644
bin_copy 63570079
Fp_mulu 64529706
mkvecsmall 69565974
sstoQ 71228544
Fp_add 72036988
pari_free 72235486
FpX_renormalize 73149673
gtos 73372210
mkvec3 74695525
RgX_copy 81470681
Flx_copy 84167949
vecsmalltrunc_init 84513463
vecsmall_prefixcmp 85155511
Fp_mul 92117396
leading_coeff 93818904
F2v_coeff 95950731
F2x_coeff 100568457
mkvec2 102016300
nbits2prec 109538645
F2x_renormalize 111821953
gc_long 112961295
mkvecsmall2 114103761
addmuliu_inplace 121400247
lgcols 122826109
submuliu_inplace 122920269
GENbinbase 127133294
leafcopy_avma 177557282
closure_get_data 189670796
closure_get_oper 189683649
closure_codestr 189707104
is_scalar_t 191142922
vecslice 202198945
closure_arity 225530215
is_bigint 245842411
lg_increase 257577225
pari_malloc 279247396
nbits2extraprec 316966774
pari_stack_new 323196385
pari_stack_alloc 401007975
pari_stack_base 402703158
is_matvec_t 416400915
gerepileuptoleaf 649152343
isintzero 657667024
equali1 698158994
gerepileupto 806531816
is_pm1 980766122
bit_accuracy 1049695361
prec2nbits 1163686629
is_const_t 1255368709
gerepileuptoint 1280436929
lgpol 1407806188
odd 2075224275
isonstack 2767611166
degpol 2849727587
is_recursive_t 3047871187
remsBIL 3433494515
divsBIL 3478134208
icopy_avma 3805723713

Generated by: LCOV version 1.13