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 - FpX_factor.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 16375-9f41ae0) Lines: 1574 1679 93.7 %
Date: 2014-04-19 Functions: 142 151 94.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 861 1114 77.3 %

Function Name Sort by function name Hit count Sort by hit count
F2xV_to_FlxV_inplace 555
F2xV_to_ZXV_inplace 74089
F2x_Berlekamp_i 74082
F2x_Berlekamp_ker 20694
F2x_degfact_2 539
F2x_factcantor 7348
F2x_factcantor_i 9538
F2x_factor 0
F2x_factor_2 30077
F2x_factor_deg2 30623
F2x_is_irred 140
F2x_is_irred_2 7
F2x_quad_factortype 23658
F2x_split 19707
F2x_split_Berlekamp 42395
F2xqX_quad_roots 1698
Fl_disc_bc 251457
Fl_nonsquare 6
Flm_Flx_mul 211149
FlxV_to_ZXV_inplace 386075
Flx_Berlekamp_i 388978
Flx_Berlekamp_ker 219655
Flx_Xn1 76
Flx_Xnm1 83
Flx_addmul_inplace 624185
Flx_cut_out_roots 14
Flx_degfact 150650
Flx_degfact_2 27356
Flx_factcantor 7220
Flx_factcantor_i 170762
Flx_factor 16908
Flx_factor_2 148356
Flx_factor_deg2 175712
Flx_is_irred 581
Flx_is_irred_2 0
Flx_nbfact 34164
Flx_nbfact_by_degree 73721
Flx_nbroots 2284878
Flx_oneroot 630
Flx_oneroot_i 1430
Flx_oneroot_mod_2 14
Flx_otherroot 152286
Flx_quad_factortype 27342
Flx_quad_root 224115
Flx_root_mod_2 5688
Flx_roots 38199
Flx_roots_i 49207
Flx_roots_naive 14
Flx_split 104049
Flx_split_Berlekamp 243708
Flx_try_pow 55089
FlxqXQ_halfFrobenius 2578
FlxqX_Berlekamp_ker 68
FlxqX_Frobenius 1041
FlxqX_nbroots 21
FlxqX_split_part 35
FpXQXQ_halfFrobenius 2519
FpXQX_Berlekamp_ker 70
FpXQX_Frobenius 121
FpXQX_nbfact 0
FpXQX_nbroots 21
FpXQX_split_part 7
FpX_Berlekamp_i 458529
FpX_Berlekamp_ker 78
FpX_degfact 0
FpX_degfact_2 14
FpX_factcantor 0
FpX_factcantor_i 91
FpX_factor 458466
FpX_factor_2 56
FpX_factor_deg2 77
FpX_factorff 0
FpX_factorff_i 252
FpX_is_irred 14
FpX_is_irred_2 7
FpX_is_totally_split 0
FpX_nbfact 28
FpX_nbroots 16401
FpX_oneroot 2898
FpX_oneroot_i 2084
FpX_otherroot 1860
FpX_quad_factortype 21
FpX_quad_root 3963
FpX_roots 18467
FpX_roots_i 1785
FpX_rootsff 0
FpX_rootsff_i 585
FpX_split 434
FpX_split_Berlekamp 181
FpX_split_part 16401
FqXC_roots_from_deg1 295
FqX_Frobenius_eval 2019
FqX_Frobenius_powers 770
FqX_deriv 15001
FqX_factor 637
FqX_factor_i 406
FqX_frob_deflate 63
FqX_is_squarefree 462
FqX_nbfact 0
FqX_nbroots 546
FqX_quad_roots 1999
FqX_rand 2536
FqX_roots 5195
FqX_roots_i 2955
FqX_split 3922
FqX_split_Berlekamp 70
FqX_split_Trager 35
FqX_split_all 56
FqX_split_by_degree 280
FqX_split_deg1 511
FqX_split_equal 386
FqX_split_roots 323
FqX_sqf_split 14
Mod0pX 14
ZX_factmod_init 479845
add 722
all_roots_mod_p 56
cmpGuGu 1488353
deg1_Flx 114690
factcantor 56
factcantor0 91
factmod 77
factmod_aux 168
factmod_init 245
factorff 287
factormod0 91
ffcheck 287
isabsolutepol 3347
polrootsff 70
prime_fact 35
rootmod 63
rootmod0 70
rootmod2 14
rootmod_aux 18544
simplefactmod 35
split_Flx_cut_out_roots 24191
split_add 33359
split_add_done 9614
split_done 7335
split_init 25976
split_moveto_done 33359
split_nonsquares 82
split_squares 82
split_todo 8623
to_Fq 9562
to_FqC 35
to_Fq_fact 252
to_Fq_pol 4375
trivial_fact 217247
try_pow 284
zero_fact_intmod 14

Generated by: LCOV version 1.9