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 - basemath - elliptic.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.1 lcov report (development 29877-9124a6ce27) Lines: 4422 4708 93.9 %
Date: 2025-01-18 09:08:44 Functions: 398 408 97.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
checkell_Qp 0
checkellpt 0
ellintegralbmodel 0
ellprint 0
elltwist_card 0
ellwp 0
localredbug 0
point_to_a4a6 0
triv_ser 0
zellrealneg 0
bilhell 7
ch_Fp 7
ch_Rg 7
ellQ_isisom 7
ellexpo 7
ellnf_isisom 7
CM_factor 14
ellchangecompose 14
ellchangecompose_i 14
ellchangeinvert 14
ellisisom 14
elllseries 14
ellmul_CM 14
ellmul_CM_aux 14
elltaniyama 14
ellwpseries 14
zell_closest_0 14
bilhell_i 21
ch_Qp 21
ellQp_P2t_err 21
ellQ_bsd 28
ellnf_veceta 28
zellrealpos 28
ellheightpairing 35
min_set_2 35
ellQ_isdivisible 42
ellQ_isdivisible_test 42
ellnf_bsd 42
myroundr 42
nfrestrict23 42
ellQ_saturation 49
ellQ_tamagawa 49
ellchangeinvert_i 49
ellnf_vecomega 49
ellsaturation 49
ellsub 49
elltamagawa 49
ellQ_eulerf 56
ellQp_t2P 56
ellchangevecpt 56
ellnf_get_CM 56
ellnf_volume 56
bnf_get_v 63
ellnfminimalmodel 63
ellnfminimalmodel_i 63
doellR_eta 70
ellbsd 70
elleulerf 70
ellheightfaltings 70
ellminimaldisc 70
ellneg_i 70
ellpadicheight0 70
elltrace 70
ellR_eta 84
elleta 84
real_prec 84
ellQ_rootno 91
ellnf_vecarea 91
ec_phi2 105
ch_Fq 119
ch_FF 126
ellsea 126
to_RgX 126
ellQp_P2t 133
elllog 140
min_set_3 140
Flv_firstnonzero 147
elliscm 154
ellzeta 161
doellnfrootno 168
ellnf_rootno_global 168
ellnf_vec_wrap 168
ellwp0 182
get_r0 182
ellinit_Qp 203
ellnfan 203
ellrootno 210
padic_prec 238
ellnf_reladelicvolume 245
ellnf2isog 287
rootnovalp 287
get_c4c6 294
elltatepairing 301
ellwpseries_aux 301
ellanQ 329
ellrnfup 364
_mul 385
twist2 392
ellminimaltwistcond 399
ellxn 406
ellminimaltwist0 448
nf_coordch 476
nf_coordch_rst 476
RgE2_Fp_init 497
ellchangevecptinv 504
ellan 525
ec_dFdy_evalQ 532
neron_3 595
ellminimaltwist 665
akell 693
checkell_int 693
ec_half_deriv_2divpol_evalx 707
apk_good 735
ec_half_deriv_2divpol 812
ellQ_genreduce 833
ellnf_adelicvolume 854
ellnf_bsdperiod 854
ellheightmatrix 861
ellpadicheightmatrix 875
ellnf_tamagawa 882
ellQ_get_Nfa 917
ellminimalbmodel 966
Q_to_globalred 980
ellchangepointinv 980
ellnfglobalred 980
ellnfembed_free 1029
ellchangepointinv0 1043
ellnf_D_primes 1106
_sqr 1190
ellsatp 1204
ellsatp_mat 1204
ellsupersingularj 1204
ellrootno_3 1421
ellrootno_2 1673
neron_2 1673
ZtoF2 1820
pointell 1890
ellwpnum_all 1911
ellintegralmodel 2478
FljV_vecsat_Prickett 2807
ltors_Fl 2807
ellordinate 3010
ellordinate_i 3010
kod_23 3094
val_init 3094
doellrootno 3262
ellchangeptinv 3360
ellrootno_p 3374
checkellisog 3528
oncurve_exact 3855
ZV_is_ei 4214
ellQ_factorback 4228
elleisnum 4459
QEV_to_ZJV 4460
ellanal_globalred 4543
ellrootno_global 4592
direllnf_worker 4963
elldivpol0 5075
cardmod2 5138
F2_card 5159
ellweilpairing 5250
ellQ_factorback_chinese 5332
cardmod3 6195
F3_card 6335
ellanQ_zv 6699
ellQ_get_N 8057
checkell_Q 8239
FljV_vecsat_Siksek 8631
ellQ_factorback_slice 8741
ellQ_factorback_worker 8741
ellbasechar 9149
val_aux 9282
nb_real_components 9632
ellQ_factorback_filter 10789
FljV_vecsat 11438
ellR_area 11942
sievep_bad 12544
elldivpol 13125
elldivpol4 15064
FljV_changepointinv_pre 15322
ellQ_factorback1 15732
gcomposev 15743
ellgenerators 16849
doellgens 18690
ellff_get_D 18690
ellff_get_m 18690
ellff_get_gens 18767
doellff_get_o 19292
nf_coordch_st 19392
ellQtwist_bsdperiod 19747
ellff_get_o 19845
ellQ_get_CM 20382
_hell 20468
ellQminimalmodel 21399
ellminimalmodel 21469
ellgroup0 21490
ellfromj_simple 22715
nflocalred_section7 27524
elltwist 28574
ellheight_C 28728
zellcx 28735
ellperiods 28749
zell_i 28763
prV_merge_factors 28812
ellpointnfembed 28819
ellnf_height 28833
zell 28903
slope_samex 29184
safe_Z_lval 29386
Q_to_minimalprimes 29554
ec_2divpol_evalx 29715
ellnf_minimalnormu 29722
ellnf_c4c6_primes 29771
ellnfembed 29841
ellheightoo 30660
QE_to_ZJ 33680
ellfromj 34020
eta_correction 37618
ellsigma 37674
cxredsl2 37828
cxredsl2_i 37863
get_toadd 39431
reduce_z 39557
handle_Q 41580
ellomega_cx 42759
ellisoncurve 44170
gellisoncurve_i 44310
doellR_omega 52360
ellomega_agm 52360
ellQ_height 52410
ell_is_integral 52753
elladd 57457
ellheight0 57659
ellminimalprimes 58660
ellnf_get_nf_prec 58660
nfembed_extraprec 58660
doellR_ab 58842
zk_capZ 60648
point_to_a4a6_Fl 64236
ec_3divpol_evalx 65276
_elleta 66353
ellinit_Rg 67529
approx_mod3 70308
_elleisnum 70994
get_periods 72856
compute_periods 72933
red_modSL2 72933
check_periods 72940
ellinit_nf 73437
ellheight 81243
ellneg 82034
check_complex 82432
ellR_ab 83056
ellR_on_neutral 83056
ellR_root 83056
exphellagm 83056
hoo_aux 83056
quad_root 83056
ellnflocal 83781
ellnf_localheight 85988
ch_Q 90552
ch_R 90552
a4a6_ch_Fl 91290
ellR_omega 92652
Fq_c4_to_a4 93441
Fq_c4c6_to_a4a6 93441
ellQap 98567
chk_p 99614
set_gamma 110796
ellQap_u 111167
ellinit_Fq 114479
ellchangept 116278
coordch_s 119378
ellgroup_m 120715
FF_ellinit_ns 120982
ellisoncurve_i 126043
ellgroup 127806
nflocalred_p 129122
ec_LHS_evalQ 129821
ellchangepoint 133162
ec_dFdx_evalQ 136151
ellinit_nf_to_Fq 137725
ellnf_to_Fq 137746
PiI2div 139314
approx_mod2 140616
ch_NF 140644
doellGm 146454
ellchangepoint0 147799
a4a6_ch 150697
ell_to_a4a6_bc 150697
Q_numer 157580
ellchangetoalg 157703
get_piinv 158165
ellinit_Fp 165117
elljissupersingular 165907
ellissupersingular 166117
ellff_get_group 167307
doellR_roots 169953
ell_to_nfell10 182035
nflocalred_23 182035
nf_compose_s 184651
nf_coordch_s 184651
ellff_Gm 185997
ellcard 186985
ellnfap 191767
checkellpts 193012
initsmall46 194489
elllocalred 197085
nfembedall 206843
coordch 213227
fix_nftype 213437
ell_reset 213472
ellR_roots 223042
doellcard 223378
checkell5 229565
ellchangecurve 229565
coordch_uinv 229705
doellR_roots_i 231360
invcmp 236475
numroots3 245056
ellrandom 245679
ec_bmodel 247495
ellffmul 250153
ellmul_Z 251161
ellmul 251224
checkell_Fq 253918
ec_dmFdy_evalQ 256049
nflocalred 262010
ellff_get_card 269158
nfVtoalg 274372
nf_coordch_rt 301578
get_uniformizers 311157
coordch_t 353563
ellff_get_p 385652
nf_coordch_t 407583
nf_compose_u 443702
nf_coordch_uinv 444178
ellglobalred 454223
ellQ_globalred 456708
ellglobalred_i 469728
nf_compose_r 479441
coordch_rst 489517
coordch_st 489517
nf_compose_st 496356
nf_coordch_r 500082
ellQ_minimalu 503958
ell_over_Fq 505079
ellminimalmodel_i 507570
Z_gcd_primes 533729
min_to_ell 552734
Zec_h_evalx 565817
min_get_v 565817
min_set_all 565817
min_set_D 565831
min_set_a 565852
min_set_b 565992
min_set_c 566139
min_set_u 566139
ellinit_Q 569366
pola1a2 579817
pola2a4a6 592914
nf_compose_rt 594244
checkellpt_i 608354
localred_23 706853
coordch_r 753942
ec_f_evalx 783824
numroots2 790440
vecispt 801282
nf_compose_t 843262
get_vp_u 881468
localred_p 881468
j_pval 884842
aux 891702
ellinit 899481
ellinit_i 900510
is_trivial_change 903582
initsmall5 944904
get_j 982067
initsmall 990110
base_ring 994604
sievep_good 1069698
pola3a6 1070139
ellan_get_ap 1082242
sievep 1082242
ellap_CM_fast 1135064
ec_h_evalx 1177313
aux2 1424346
Fl_c4c6_to_a4a6 1449385
Fl_ell_to_a4a6 1449385
Fl_c6_to_a6 1450033
Fl_c4_to_a4 1529353
isptcoord 1586947
localred 1587901
pol2sqrt_23 1627066
get_vp_u_small 1702543
localred_result 1899478
to_mod 1959058
nftoalg 2133355
ellcard_ram 2422050
ellap 2584122
ell_to_a4a6 2592050
c4_to_a4 2592177
c4c6_to_a4a6 2592190
init_ch 2694776
checkellp 3113014
ellintegralmodel_i 3303266
checkell 4412076
handle_coeff 16516052

Generated by: LCOV version 1.16