mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	solvtable:: unittest added
This commit is contained in:
		| @@ -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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue