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-bordeaux1.fr machine (x86_64 architecture), and agregate them in the final report:

The target is 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 - F2x.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 18609-ea8a867) Lines: 893 952 93.8 %
Date: 2016-02-13 Functions: 106 108 98.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 482 607 79.4 %

Function Name Sort by function name Hit count Sort by hit count
F2c_to_Flc 3374
F2c_to_ZC 1012374
F2c_to_mod 3045
F2m_rowslice 14
F2m_to_Flm 1232
F2m_to_ZM 195988
F2m_to_mod 112
F2v_add_inplace 28403997
F2v_slice 28
F2xC_to_ZXC 1673
F2xV_to_F2m 52137
F2x_1_add 4395
F2x_F2xqV_eval 0
F2x_F2xq_eval 29302
F2x_add 13439959
F2x_addshift 11826922
F2x_addshiftip 72333667
F2x_addspec 9456130
F2x_deflate 37170
F2x_degree 27359946
F2x_degree_lg 122822287
F2x_deriv 282300
F2x_divrem 9635966
F2x_eval 196
F2x_even_odd 35521
F2x_extgcd 443244
F2x_factorel 7504
F2x_gcd 1269574
F2x_halfgcd 315
F2x_halfgcd_i 315
F2x_is_smooth 95417
F2x_is_smooth_squarefree 109956
F2x_is_x 8438
F2x_issquare 14539
F2x_mul 10781882
F2x_mul1 21876140
F2x_mulspec 33246548
F2x_pow2n 81760
F2x_rem 15758627
F2x_shift 116788
F2x_shiftip 33108040
F2x_shiftneg 490
F2x_shiftpos 116298
F2x_sqr 2205139
F2x_sqrt 18123
F2x_to_F2v 339376
F2x_to_Flx 43371
F2x_to_ZX 104392
F2x_valrem 45638
F2xq_Artin_Schreier 31137
F2xq_autpow 8438
F2xq_autpow_mul 12569
F2xq_autpow_sqr 16720
F2xq_conjvec 7
F2xq_div 333779
F2xq_easylog 84308
F2xq_inv 443244
F2xq_invsafe 443244
F2xq_log 51933
F2xq_log_Coppersmith 7
F2xq_log_Coppersmith_d 42
F2xq_log_Coppersmith_rec 14
F2xq_log_find_rel 119
F2xq_log_from_rel 28
F2xq_log_index 7
F2xq_matrix_pow 52137
F2xq_mul 1565656
F2xq_order 347
F2xq_pow 289206
F2xq_powers 52137
F2xq_powu 3829
F2xq_sqr 2041496
F2xq_sqrt 8620
F2xq_sqrt_fast 35523
F2xq_sqrtn 658
F2xq_trace 75599
Flm_to_F2m 1232
Flv_to_F2v 6034
Flx_to_F2x 116929
RgM_to_F2m 287
RgV_to_F2v 7686
RgX_to_F2x 126
Rg_to_F2xq 165436
ZM_to_F2m 382211
ZV_to_F2v 2144101
ZXX_to_F2xX 1673
ZX_to_F2x 162627
Z_to_F2x 1813
_F2xq_add 351558
_F2xq_cmul 370451
_F2xq_equal0 182
_F2xq_inv 91
_F2xq_mul 507316
_F2xq_neg 161
_F2xq_one 167591
_F2xq_pow 283877
_F2xq_rand 84
_F2xq_red 116076
_F2xq_rmul 728
_F2xq_s 119
_F2xq_sqr 423996
_F2xq_zero 0
check_kernel 7
gener_F2xq 84
get_F2xq_field 70
mkF2 11490
rel_Coppersmith 54019
smallirred_F2x 7

Generated by: LCOV version 1.9