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.16.2 lcov report (development 29115-f22e516b23) Lines: 1542 1840 83.8 %
Date: 2024-03-29 08:06:26 Functions: 192 214 89.7 %
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
F2xXn_red 0
F2xY_F2xq_evalx 0
F2x_deflate 0
F2x_recip 0
F2x_recip_raw 0
F2xqXM_F2xqX_mul2 0
F2xqXM_mul2 0
F2xqX_F2xqXM_qmul 0
F2xqX_addmulmul 0
F2xqX_extgcd_halfgcd 0
F2xqX_halfgcd 0
F2xqX_halfres 0
F2xqX_halfres_split 0
F2xqX_halfres_update 0
F2xqX_powu 0
_F2xqX_sqr 0
matJ2_F2xXM 0
matid2_F2xXM 0
F2xqX_invBarrett_basecase 3
F2xqV_roots_to_deg1 7
F2xqV_roots_to_pol 7
F2xqXQ_inv 7
F2xqXQ_invsafe 7
F2xqXQ_pow 7
F2xqXV_prod 7
F2xqX_halfgcd_all 7
F2xqX_halfgcd_all_i 7
F2xqX_halfres_basecase 7
F2xqX_halfres_i 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
F2xqX_resultant_basecase 21
F2xn_div1 28
F2xn_inv 28
F2xq_log_Coppersmith_rec 28
F2x_recip1 42
F2xn_div 42
F2xn_inv1 42
F2xn_inv_basecase1 42
F2xqX_invBarrett_Newton 44
F2xn_mul 46
F2xqX_invBarrett 47
F2xq_powu 49
F2xX_to_FlxX 56
_F2xqXQ_zero 56
F2xqXQV_red 63
F2xq_log_find_rel 63
monomial_F2x 63
F2xq_log_from_rel 77
F2xn_red 83
F2xq_log_Coppersmith_d 91
F2x_mulspec_mulii 102
int_to_F2x 102
gener_F2xq 161
F2x_degreespec 204
F2x_to_int 204
F2x_to_F2xX 378
F2xq_order 378
_F2xq_inv 413
F2x_halfgcd 473
F2x_halfgcd_i 473
FlxXC_to_F2xXC 497
polx_F2xX 497
_F2xq_s 693
_F2xq_neg 798
_F2xqX_mul 882
_F2xq_equal0 973
FlxX_to_F2xX 1043
F2x_shiftneg 1050
F2xXC_to_ZXXC 1176
F2xX_addspec 1241
F2xqX_divrem_Barrett 1244
F2xqX_divrem_Barrettspec 1244
RgX_to_F2x 1400
F2xX_to_ZXX 1547
get_F2xq_field 1659
F2xq_log_Coppersmith_worker 2049
F2xX_recipspec 2532
F2xqXQ_auttrace 2709
random_F2xqX 2807
F2xqX_mulspec 3103
F2xX_lgrenormalizespec 3415
F2xC_to_ZXC 3710
ZXX_to_F2xX 4893
F2xqXQ_auttrace_sqr 4900
F2xq_pow_table 5246
F2xX_to_Kronecker_spec 6206
F2xqX_F2xq_mul 7021
F2xq_sqrtn 7021
F2xqXQ_auttrace_mul 7231
F2xqXQ_powers 7819
_F2xq_rand 9107
F2x_eval 13062
_F2xq_rmul 13748
F2xqX_F2xqXQV_eval 14511
F2xq_autpow_mul 14679
F2x_factorel 15030
FlxC_to_F2xC 16457
F2x_is_x 19291
F2xq_autpow 19298
mkF2 27064
F2xq_autpow_sqr 29380
F2xV_to_FlxV_inplace 30303
_F2xqXQ_sqr 33271
F2xqX_divrem 33299
F2xqXQ_autpow_mul 33432
F2x_valrem 34953
F2x_issquare 35617
F2xq_sqrt 38695
F2x_addshift 44720
F2x_F2xq_eval 44787
F2x_even_odd 61548
F2xq_sqrt_fast 61548
F2x_addspec 69455
F2xqXQ_autpow 70665
F2xX_deriv 80710
F2xqXQ_autpow_sqr 88984
F2xqXQ_sqr 104426
F2xqX_sqr 105490
_F2xqXQ_mul 114604
F2xqXQ_mul 114660
F2xqX_F2xqXQ_eval 122416
F2x_to_Flx 131775
F2xY_F2xqV_evalx 136878
rel_Coppersmith 148147
F2x_pow2n 149480
Flx_to_F2x 150717
F2xqX_mul 155123
Kronecker_to_F2xqX 158226
F2xqX_gcd_basecase 169729
F2xqX_gcd 170093
F2x_1_add 190308
F2xqX_F2xq_mul_to_monic 206549
F2xqX_normalize 206563
F2xY_degreex 206969
Z_to_F2x 210454
F2xq_Artin_Schreier 212786
F2x_get_red 219492
F2xqX_get_red 220815
F2x_is_smooth 223601
F2xq_matrix_pow 235792
F2xV_to_F2m 235793
F2x_matFrobenius 235795
F2x_sqrt 244965
F2x_shiftpos 249211
F2x_shift 250242
F2x_is_smooth_squarefree 258894
_F2xq_zero 259971
F2xX_to_Kronecker 310246
_F2xqXQ_add 345583
_F2xqXQ_red 352814
F2xq_powers 365439
_F2xqXQ_one 376215
F2xX_add 424039
pol1_F2xX 447832
F2xq_trace 458534
F2xX_F2x_mul 482454
_F2xqXQ_cmul 482454
F2xq_log 543492
F2xqX_divrem_basecase 546184
F2xq_easylog 558543
F2xq_div 575595
_F2xq_red 582366
F2x_F2xqV_eval 611863
F2x_Frobenius 657836
F2xqX_rem 751317
get_F2xqX_red 784616
_F2xq_one 927219
F2xqX_red 1006640
Rg_to_F2xq 1165208
_F2xq_sqr 1207896
F2x_deriv 1267524
F2x_to_ZX 1305833
F2xV_to_ZXV_inplace 1423536
F2x_to_F2v 1558235
F2x_slice 1590188
_F2xq_add 1697187
F2xq_inv 2058503
F2x_extgcd 2058510
F2xq_invsafe 2058510
_F2xq_cmul 2087529
_F2xq_mul 2180139
_F2xq_pow 2390956
F2xq_pow 2434250
F2xX_renormalize 2715947
ZX_to_F2x 3133688
F2x_gcd 3691290
F2x_mulspec_basecase 5115207
F2xq_sqr 8611063
F2x_sqr 8901557
F2xq_mul 10051125
F2x_divrem 13431737
F2x_mul1 20694778
F2x_shiftip 25841217
F2x_mul 30198620
F2x_mulspec 30259498
F2x_add 32734677
F2x_rem 46791735
F2x_degree 80274836
F2x_addshiftip 137863951
F2x_addshiftipspec 171356461
F2x_degree_lg 269632284

Generated by: LCOV version 1.14