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 - F2x.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.14.0 lcov report (development 25892-64329ab65e) Lines: 1438 1725 83.4 %
Date: 2020-10-28 06:08:44 Functions: 175 202 86.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
F2xC_to_FlxC 0
F2xXV_to_F2xM 0
F2xX_F2x_add 0
F2xX_to_F2xC 0
F2xY_F2xq_evalx 0
F2x_deflate 0
F2x_recip 0
F2x_recip1 0
F2x_recip_raw 0
F2xn_inv 0
F2xn_inv1 0
F2xn_inv_basecase1 0
F2xn_mul 0
F2xn_red 0
F2xqXM_F2xqX_mul2 0
F2xqXM_mul2 0
F2xqX_F2xqXM_qmul 0
F2xqX_addmulmul 0
F2xqX_extgcd_halfgcd 0
F2xqX_halfgcd 0
F2xqX_halfgcd_basecase 0
F2xqX_halfgcd_i 0
F2xqX_halfgcd_split 0
F2xqX_powu 0
_F2xqX_mul 0
_F2xqX_sqr 0
matid2_F2xXM 0
F2xqX_invBarrett_basecase 6
F2xqXQ_inv 7
F2xqXQ_invsafe 7
F2xqXQ_pow 7
F2xq_conjvec 7
F2xqX_disc 14
F2xqX_extgcd 14
F2xqX_extgcd_basecase 14
F2xq_log_Coppersmith 14
F2xq_log_index 14
F2xq_pow_init 14
check_kernel 14
smallirred_F2x 14
F2xqX_resultant 21
F2xq_log_Coppersmith_rec 28
F2xqX_invBarrett_Newton 44
F2xq_powu 49
F2xqX_invBarrett 50
F2xX_to_FlxX 56
_F2xqXQ_zero 56
F2xqXQV_red 63
F2xq_log_find_rel 63
monomial_F2x 63
F2xq_log_from_rel 78
F2xq_log_Coppersmith_d 92
F2x_mulspec_mulii 102
int_to_F2x 102
gener_F2xq 154
F2x_degreespec 204
F2x_to_int 204
F2x_eval 245
FlxXC_to_F2xXC 252
F2x_to_F2xX 378
F2xq_order 378
_F2xq_inv 413
polx_F2xX 476
F2x_halfgcd 520
F2x_halfgcd_i 520
FlxX_to_F2xX 581
_F2xq_s 693
_F2xq_neg 798
F2xXC_to_ZXXC 833
F2xX_to_ZXX 966
_F2xq_equal0 973
F2x_shiftneg 1049
RgX_to_F2x 1330
F2xX_addspec 1359
F2xqX_divrem_Barrett 1362
F2xqX_divrem_Barrettspec 1362
get_F2xq_field 1659
F2xq_log_Coppersmith_worker 2111
F2xqXQ_auttrace 2646
F2xX_recipspec 2768
random_F2xqX 2779
F2xqX_mulspec 3339
F2xX_lgrenormalizespec 3651
F2xC_to_ZXC 3710
ZXX_to_F2xX 4550
F2xqXQ_auttrace_sqr 4641
F2xq_pow_table 5246
F2xX_to_Kronecker_spec 6678
F2xqXQ_auttrace_mul 6916
F2xqX_F2xq_mul 7021
F2xqXQ_powers 7462
F2xq_log 7651
_F2xq_rand 9037
F2xq_sqrtn 9310
F2xq_easylog 10562
F2x_valrem 12806
F2xq_autpow_mul 12836
_F2xq_rmul 13748
F2xqX_F2xqXQV_eval 13881
F2x_factorel 15261
FlxC_to_F2xC 16478
F2x_is_x 18090
F2xq_autpow 18097
F2xV_to_FlxV_inplace 21168
mkF2 25921
F2xq_autpow_sqr 26528
_F2xqXQ_sqr 32984
F2xq_sqrt 33056
F2xqX_divrem 33383
F2xqXQ_autpow_mul 33481
F2x_issquare 37046
F2x_addshift 38503
F2x_F2xq_eval 40092
F2x_even_odd 45794
F2xq_sqrt_fast 45794
F2x_addspec 57750
F2xqXQ_autpow 70679
F2xX_deriv 80731
_F2xq_pow 87320
F2xqXQ_autpow_sqr 89061
Flx_to_F2x 95218
F2x_to_Flx 101607
F2xqXQ_sqr 104328
F2xqX_sqr 105294
F2x_sqrt 106496
_F2xqXQ_mul 114464
F2xqXQ_mul 114520
F2xqX_F2xqXQ_eval 122542
F2xq_pow 130572
F2xY_F2xqV_evalx 136374
F2xqX_mul 154094
F2x_pow2n 154569
rel_Coppersmith 154668
Kronecker_to_F2xqX 157433
F2xqX_gcd_basecase 169750
F2xqX_gcd 170121
F2xV_to_ZXV_inplace 171483
F2x_1_add 190192
F2xqX_F2xq_mul_to_monic 206185
F2xqX_normalize 206199
F2xY_degreex 206766
Z_to_F2x 209174
F2xq_Artin_Schreier 212975
F2x_get_red 218239
F2xqX_get_red 219884
F2xq_matrix_pow 224033
F2xV_to_F2m 224034
F2x_matFrobenius 224034
F2x_to_ZX 231468
F2x_is_smooth 232655
F2x_shiftpos 258835
_F2xq_zero 259714
F2x_shift 259858
ZX_to_F2x 261141
F2x_is_smooth_squarefree 269458
F2xX_to_Kronecker 308188
_F2xqXQ_add 344316
_F2xqXQ_red 352254
F2xq_powers 353491
_F2xqXQ_one 375389
F2x_Frobenius 386074
F2xX_add 422590
pol1_F2xX 446992
F2xq_trace 457788
F2xX_F2x_mul 480683
_F2xqXQ_cmul 480683
_F2xq_red 543536
F2xqX_divrem_basecase 545870
F2xq_div 575801
F2x_F2xqV_eval 609903
_F2xq_sqr 655591
F2xqX_rem 751079
get_F2xqX_red 784462
_F2xq_one 876472
F2x_deriv 882942
F2xqX_red 1006310
Rg_to_F2xq 1161501
F2xq_inv 1290256
F2x_extgcd 1290263
F2xq_invsafe 1290263
_F2xq_mul 1309950
_F2xq_add 1352301
F2x_to_F2v 1510210
F2x_slice 1597814
_F2xq_cmul 1735275
F2xX_renormalize 2710364
F2x_gcd 3012192
F2x_mulspec_basecase 5060191
F2xq_sqr 7744189
F2x_sqr 8047234
F2xq_mul 9160805
F2x_divrem 11197110
F2x_mul1 18025899
F2x_shiftip 23113614
F2x_mul 27486581
F2x_mulspec 27541210
F2x_add 30557816
F2x_rem 44819286
F2x_degree 68048609
F2x_addshiftip 131608593
F2x_addshiftipspec 161625650
F2x_degree_lg 246443354

Generated by: LCOV version 1.13