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 - ellrank.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28676-df828f1c94) Lines: 1112 1190 93.4 %
Date: 2023-08-26 07:54:43 Functions: 105 112 93.8 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpX_issquare 115954
Q2_hyperell_lift 469
Q2_hyperell_regpoint 2827
Q2_hyperell_solve 2296
Q2_hyperell_solve_affine 2827
Qp_hyperell_solve_odd 57753
Qp_issquare 105315
RgVV_nb 8316
RgXV_cxeval 21273
RgXV_homogenous_evaldeg 5375
RgX_homogenous_evaldeg 19716
ZC_add_coeff 3206
ZC_shifti 17528
ZV_iseven 5908
ZV_isneg 89026
Z_quad_char 161
_factorbackmod 5558
_trace 117342
affine_apply 57753
basis 18998
bestS 434
bnfselmer 434
bnfselmerQ 791
cassels_Qp_solve 60049
cassels_oo_solve 546
cassels_oo_solve_i 546
casselspairing 2296
check_oncurve 42
den_remove 518
dim_selmer 8316
ell2cover 56
ell2pol 1701
ell2selmer 861
ell2selmer_basis 49
ellLS2image 861
ellabs 3898
elllocalimage 8316
ellrank 798
ellrank_flag 854
ellrank_get_nudur 98
ellrankinit 63
ellsearchtrivialpoints 861
elltwistequation 812
elltwistpoint 224
elltwistpoints 1617
enfsqrt 2296
first_divisor 623
get_kerval 245
get_row 483
gtoset_inplace 1617
hilb2nf 259
hyperell_lift 1317
hyperell_local_solve 60049
hyperell_locally_soluble 0
hyperell_red 115506
hyperell_reg_point 117333
kernorm 861
kpmodsquares 782838
kpmodsquares1 1597204
lemma6 0
lemma6nf 0
lemma7 0
lemma7_aux 0
lemma7nf 5642
liftselmer 3339
liftselmer_cover 3591
liftselmerinit 6930
locally_soluble 259
makevbnf 840
matcassels 301
matselmersign 1722
nf2selmer_quad 245
nfC_prV_val 868
nfV_factorbackmod 434
nfV_zm_factorback 434
nf_hyperell_locally_soluble 259
nfhilbert 21
nfhilbert0 581
nfhilbertp 567
nfsqrt 6097
nfsqrt_safe 6097
polrootsmodpn 8316
prV_ZM_factorback 434
projratpointxz 4353
projratpointxz2 1694
psquare2nf 511
psquarenf 0
quad_char 140
quartic_H 2296
quartic_IJ 18403
quartic_cubic 12761
quartic_disc 4508
quartic_findunit 4508
quartic_hessiandd 2296
quartic_minim_all 7091
quarticinv_pol 6804
randS 161
randu 483
redquadric 7091
repres 252
selmerbasis 17528
selmersign 72030
setlgall 8316
to_ZX 4592
to_principal_unit 162715
tracematrix 19557
vecellabs 756
veckpmodsquares 16632
vecnfsqrtmod 2296
vecsmallbasis 861
zpsol 0
zpsolnf 5642

Generated by: LCOV version 1.14