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 29873-a0b27995a4) Lines: 4422 4708 93.9 %
Date: 2025-01-14 09:09:31 Functions: 398 408 97.5 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.16