mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-28 19:10:35 +00:00
solvtable:: unittest added
This commit is contained in:
parent
1962900ce0
commit
50d7a725d4
@ -508,6 +508,8 @@ void improve(sn::tabled_inverses& tab) {
|
||||
|
||||
int dimX=64, dimY=64, dimZ=64;
|
||||
|
||||
EX hyperpoint recompress(hyperpoint h) { return decompress(compress(h)); }
|
||||
|
||||
int readArgs() {
|
||||
using namespace arg;
|
||||
|
||||
@ -547,6 +549,25 @@ int readArgs() {
|
||||
sn::get_tabled().load();
|
||||
visualize_table(sn::get_tabled(), argcs());
|
||||
}
|
||||
else if(argis("-sn-unittest")) {
|
||||
println(hlog, "nih = ", (bool)nih);
|
||||
ld maxerr;
|
||||
auto test_result = [&maxerr] (ld a, ld b) { maxerr = max(maxerr, (a-b)); };
|
||||
auto test_result_p = [&maxerr] (hyperpoint a, hyperpoint b) { maxerr = max(maxerr, hypot_d(3, a-b)); };
|
||||
auto test = [&maxerr] (string s, reaction_t tester) {
|
||||
maxerr = 0;
|
||||
tester();
|
||||
println(hlog, "unittest: ", s, " error = ", maxerr);
|
||||
};
|
||||
test("x_to_ix", [&] { for(ld a=0; a<=20; a+=.1) test_result(a, sn::ix_to_x(sn::x_to_ix(a))); });
|
||||
test("z_to_iz", [&] { for(ld a=nih?-20:0; a<=20; a+=.1) test_result(a, sn::iz_to_z(sn::z_to_iz(a))); });
|
||||
test("azeq_to_table", [&] { for(ld a=-5; a<=5; a++) for(ld b=-5; b<=5; b++) for(ld c=-5; c<=5; c++) { hyperpoint h = point3(a,b,c); test_result_p(h, sn::table_to_azeq(sn::azeq_to_table(h))); }});
|
||||
test("azeq_to_table recompressed", [&] {
|
||||
for(ld a=-5; a<=5; a++) for(ld b=-5; b<=5; b++) for(ld c=-5; c<=5; c++) {
|
||||
hyperpoint h = point3(a,b,c); test_result_p(h, sn::table_to_azeq(recompress(sn::azeq_to_table(h))));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else return 1;
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user