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 - trans1.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.16.1 lcov report (development 28676-df828f1c94) Lines: 2234 2305 96.9 %
Date: 2023-08-26 07:54:43 Functions: 166 167 99.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
powrshalf 0
catalan 14
constcatalan 14
cxlog1p 14
magm 14
mpcatalan 14
ellE 21
ser_agm1 21
ellK 28
ellK_i 35
real_I 35
serchop 42
serchop_i 42
cos_p 49
ser_cmp_expo 49
zellagmcx 49
is_ext_qfr 63
mplog1p 63
sin_p 63
mpcotan 70
Qp_exp_prec 84
magm_gap 84
glog1p 119
gpow0 126
log1p_i 133
mptan 133
powp 161
gtan 217
transvecgen 329
Zn_sqrt 420
powrfrac 511
Qp_sqrtn_ram 854
teichmullerinit 1225
trans_evalgen 1883
Qp_sqrt 1897
Qp_sqrtn_unram 2037
Qp_sqrtn 2604
tan_huge_im 4018
gcotan 4207
teich 4739
rootsof1_cx 4788
teichmuller 4977
expm1_Ir 5890
mpsincosm1 5890
cxexpm1 5946
usqrtn 7658
ser_pow_1 7847
val_from_i 7861
pow2Pis 7868
ser_powfrac 7868
ser_pow 7952
Zp_teichmuller 9933
powPis 10220
mpexpm1 10773
upowers 12017
gexpm1 12582
gsqrtn 12645
tofp_safe 13254
_oner 13797
powersr 13797
rootsof1q_cx 14154
rootsof1powinit 14987
agm 17483
agm1 17637
sqrt_ser 18690
powr0 21041
sqrtnint 23625
pow_polmod 31360
serchop0 36547
gsqrpowers 37434
pi_ramanujan 38382
log2_split 38968
shiftc_inplace 56109
consteuler 58034
mpeuler 58034
mpexp0 71243
serexp 77231
swap_clone 77917
Qp_exp 108295
Qp_exp_safe 108758
powruhalf 117857
Z2_sqrt 144690
mplog 146496
gcos 154849
powcx_prec 182141
gpowers0 200038
PiI2 261346
PiI2n 262235
powcx 266668
abpq_init 273252
Qp_log 280473
pari_close_floats 314221
pari_init_floats 315892
_one 324678
gpowers 324684
scalarpol_get_1 367439
Z_to_padic 387698
rpowuu 428956
sqrtnof1 524334
grootsof1_4 574835
_rpowuu_msqr 624744
logagmcx 639082
agm1cx 644661
agmcx_a_b 644710
agmcx_init 644710
pow_monome 673609
grootsof1 711160
expIr 762212
mpsin 849548
gsin 882481
rootsof1u_cx 1264952
logagmr_abs 1268577
agm1r_abs 1280459
powps 1307296
expQ 1468517
_rpowuu_sqr 1597605
gpowg0 1603204
cubic_prec_mask 1663489
sqrtnr_abs 1915575
transvec 2006262
mpsinc 2428754
gsinc 2428866
mpcos 2745069
cxexp 3292220
gsincos 3301749
_mul 3525828
trans_eval 3732798
T2 4403853
powru 4870567
powfrac 5130520
_sqr 6051913
_mulr 6412640
mpsincos 6777598
abpq_sum 8592549
mpaut 8668340
powrs 9464173
logr_aux 10043860
mpcosm1 10374381
agmcx_gap 11530726
logr_abs 11780498
rootsof1pow 12516441
gexp 14790357
mpexp_basecase 15279997
exp1r_abs 15341777
mpexp 15351197
modlog2 15369345
glog 15913942
agmr_gap 18472036
usqru 19413986
_sqrr 19735871
gpow 20370879
mulii3 20576744
Pi2n 21932986
powis 23644067
mplog2 24310255
constlog2 24310326
_muli 31800575
mppi 35108449
constpi 35108459
powuu 48108993
gsqrt 48580215
_sqri 83430995
powgi 98377728
powiu_sign 101507638
upowuu 101520091
powiu 101662660
gpowgs 117204453

Generated by: LCOV version 1.14