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 - FpX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.18.0 lcov report (development 29644-f1a46412a2) Lines: 1634 1796 91.0 %
Date: 2024-10-12 09:06:38 Functions: 184 197 93.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpV_FpM_polint 0
FpX_FpV_multieval 0
FpX_FpXV_multirem 0
FpX_Fp_add_shallow 0
FpX_chinese_coprime 0
FpX_integ 0
FpXn_exp 0
FpXn_sqr 0
FqV_inv 0
_FpX_one 0
_FpX_red 0
_FpX_zero 0
get_FpX_algebra 0
FpXQ_conjvec 8
matJ2_FpXM 8
FpVV_polint_tree 15
FpXQ_charpoly 15
FpXQ_autpow_msqr 21
FpV_polint 22
FpX_extresultant_basecase 24
matid2_FpXM 24
FpX_disc 42
Fq_ispower 70
FpX_extresultant 77
FpX_halfres 106
FpXQM_autsum 147
FpX_invLaplace 158
FpXQM_autsum_sqr 217
FpXM_FpXQV_eval 315
FpXQM_autsum_mul 315
FpXQ_auttrace_sqr 317
FpXQ_auttrace_mul 360
FpXQ_auttrace 437
FpX_Laplace 576
FpXC_FpXQ_eval 588
FpXV_chinese 588
FpXV_chinese_tree 588
FpXV_chinesetree 588
FpXV_invdivexact 588
FpXV_producttree 588
FpXV_sqr 588
FpX_FpXV_multirem_tree 588
gc_chinese 588
_FpXQ_easylog 618
FpX_halfgcd 658
FpX_gcd_check 804
Fp_neg_FpX 935
FpX_convol 994
FpXQ_transmul_init 1022
FpXQ_sqrtn 1435
FpXC_FpXQV_eval 1470
FpX_invBarrett_Newton 1500
Z_to_FpX 1726
FpXQ_autpowers 1771
FpXQ_order 1883
_FpXQ_rand 1968
FpXQ_transmul 2643
get_FpXQ_star 3110
FpX_invBarrett_basecase 3264
FpX_halfres_update 3749
_FpXQ_zero 4123
FpX_resultant_basecase 4223
FpXQ_autsum 4395
FpXQ_autsum_sqr 4465
FpXV_FpX_fromdigits 4564
FpX_invBarrett 4817
FpXQ_autpow 5029
FpXQ_autpow_sqr 5742
FpXQ_autsum_mul 6089
FpXn_div 6412
FpXn_inv 6412
bounded_order 6450
gener_FpXQ 7002
FpXT_sqr 7602
FpX_dotproduct 8004
FpX_divu 8610
get_FpXQ_algebra 10199
FpX_Fp_sub_shallow 11146
FpX_fromNewton 11334
FpX_digits 11403
FpXQ_minpoly 13327
FpX_extgcd_halfgcd 13435
FpX_halfgcd_all_i 15099
FpX_halfgcd_all 15239
FpX_FpXM_qmul 16298
FpXM_mul2 16389
FpXV_factorback 16567
FpXn_expint 17249
FpX_halfres_split 17382
Fp2_norm 19503
Fp2_sqrt 19934
_FpX_add 20062
Fp_red_FpX 21043
FpXQ_trace 21070
Fp_FpX_sub 25690
_FpX_pow 26327
FpX_halfres_basecase 31487
FpX_matFrobenius 31494
FpV_invVandermonde 31537
FpV_producttree 31553
FpX_FpV_multieval_tree 31555
FpXV_producttree_dbl 32143
FpX_FpXV_multirem_dbl_tree 32143
FpXM_FpX_mul2 33664
FpV_inv 33982
FpX_is_squarefree 40913
FpX_halfres_i 48869
FpX_gcd_basecase 52555
_FpXQ_sub 52941
FpX_integXn 55491
FpXn_mulhigh 59410
FpXQ_matrix_pow 66290
FpXQ_sqrt 80932
FpX_addmulmul 81037
gener_FpXQ_local 83355
gener_FpXQ_i 83391
_FpX_sqr 85901
FpV_roots_to_pol 93058
FpX_halve 94891
FpX_mulhigh_i 114901
FpX_Fp_mul_to_monic 133680
_FpX_divrem 134778
FpX_div_by_X_x 164700
FpX_rescale 177516
_FpXQ_pow 178367
FpXQ_pow_Frobenius 193684
FpXn_red 199478
FpX_divrem_Barrett 212940
FpX_divrem_Barrettspec 213687
FpX_valrem 253224
random_FpX 260113
FpX_powu 307062
FpXV_prod 308561
FpX_center 310268
FpXQ_norm 363999
_FpX_mul 367441
FpXQ_powers 383479
FpXQ_issquare 401074
FpXV_red 404384
FpX_FpXQV_eval 408609
FpX_resultant 416738
FpX_recipspec 431922
FpX_Frobenius 444142
ZX_lgrenormalizespec 457975
FpX_neg 467797
FpX_Newton 520247
FpXn_recip 531085
Fp_FpXQ_log 544381
FpX_Fp_sub 588307
FpXQ_powu 604310
FpXQ_div 621984
FpX_extgcd_basecase 676017
FpX_Fp_div 703459
FpXQ_log 707774
FpX_FpXQ_eval 792641
_FpXQ_red 885368
_FpXQ_one 887765
FpXQ_pow 896370
FpX_Fp_add 906675
FpX_get_red 957111
FpX_shift 958803
FpX_eval 963202
FpX_gcd 1011349
FpXQ_inv 1183087
FpXQ_invsafe 1183087
FpX_center_i 1235645
FpX_mulu 1280763
Fp_issquare 1335928
FpX_extgcd 1524422
_FpXQ_mul 1616684
FpX_deriv 1628268
Fq_issquare 1631123
FpXT_red 1663672
FpX_normalize 1835893
to_Flxq 2115095
Fq_log 2192914
_FpXQ_add 2263249
FpXn_mul 2559688
_FpXQ_cmul 2677960
_FpXQ_sqr 5149690
FpX_Fp_mul 5849292
FpX_Fp_mulspec 5863957
FpXQ_sqr 6243173
FpX_sqr 6435213
FpX_mulspec 7997772
FpXQ_mul 11818096
FpX_divrem 14540233
FpX_sub 14750438
FpX_subspec 14964118
FpX_add 16994578
FpXQ_red 17863417
FpX_mul 26874787
to_Flx 44513826
FpX_divrem_basecase 67144982
FpX_rem 71748824
get_FpX_red 86300199
FpX_red 94114597

Generated by: LCOV version 1.16