31 lines
791 B
Plaintext
31 lines
791 B
Plaintext
#include <gtest/gtest.h>
|
|
#include "test_header.cuh"
|
|
|
|
using namespace gf2;
|
|
|
|
bool test_gf2_elim(size_t rank, size_t rank_col, size_t nrows, size_t ncols, uint_fast32_t seed)
|
|
{
|
|
assert(rank <= nrows && rank <= rank_col && rank_col <= ncols);
|
|
MatGF2 rdc(rank, ncols);
|
|
rdc.randomize(rank_col, seed);
|
|
MatGF2 mix(nrows, rank);
|
|
mix.randomize(seed);
|
|
MatGF2 src = mix * rdc;
|
|
ElimResult res = src.gpu_elim();
|
|
MatGF2 win(src, 0, 0, res.rank, src.width);
|
|
return rdc == win;
|
|
}
|
|
|
|
TEST(TestGF2Elim, Small)
|
|
{
|
|
uint_fast32_t seed = 41921095;
|
|
EXPECT_TRUE(test_gf2_elim(5, 7, 6, 8, seed));
|
|
}
|
|
|
|
TEST(TestGF2Elim, Mediem)
|
|
{
|
|
uint_fast32_t seed = 41921095;
|
|
EXPECT_TRUE(test_gf2_elim(50, 70, 60, 80, seed));
|
|
EXPECT_TRUE(test_gf2_elim(500, 700, 600, 800, seed));
|
|
}
|