From 270e5b0444f67781856bf80db51650af9cb89b0c Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 17 Jul 2025 08:54:44 +0200 Subject: Renamed tests to make space for more coordinate tests --- test/112_cocsep_selfsim/00_all.in | 2 ++ test/112_cocsep_selfsim/00_all.out | 2 ++ test/112_cocsep_selfsim/cocsep_selfsim_tests.c | 39 ++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 test/112_cocsep_selfsim/00_all.in create mode 100644 test/112_cocsep_selfsim/00_all.out create mode 100644 test/112_cocsep_selfsim/cocsep_selfsim_tests.c (limited to 'test/112_cocsep_selfsim') diff --git a/test/112_cocsep_selfsim/00_all.in b/test/112_cocsep_selfsim/00_all.in new file mode 100644 index 0000000..5d0021c --- /dev/null +++ b/test/112_cocsep_selfsim/00_all.in @@ -0,0 +1,2 @@ +ABCDEFGH=ABCDEFGHIJKL=A +WBCVEILH=ABCDIFGLHJKE=A diff --git a/test/112_cocsep_selfsim/00_all.out b/test/112_cocsep_selfsim/00_all.out new file mode 100644 index 0000000..cc96363 --- /dev/null +++ b/test/112_cocsep_selfsim/00_all.out @@ -0,0 +1,2 @@ +0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 +0 1 2 3 24 25 26 27 diff --git a/test/112_cocsep_selfsim/cocsep_selfsim_tests.c b/test/112_cocsep_selfsim/cocsep_selfsim_tests.c new file mode 100644 index 0000000..1a1c6f2 --- /dev/null +++ b/test/112_cocsep_selfsim/cocsep_selfsim_tests.c @@ -0,0 +1,39 @@ +/* + * This test is tricky, we only have two cases for now: the solved cube + * and the cube that is one quarter-turn-move off (all such cases are + * equivalent due to symmetry). Adding more tests requires figuring out + * by hand which one is the first position in its class to be reached. + * Note that the .out files need a space before each newline. + */ +#include "../test.h" + +size_t gendata_cocsep(unsigned char *, uint64_t *, cube_t *); +int64_t coord_cocsep(cube_t); + +void run(void) { + char str[STRLENMAX]; + unsigned char buf[2000000]; + uint32_t *cocsepdata, data; + int64_t coord, coclass; + uint64_t selfsim[COCSEP_CLASSES], sim, t; + oriented_cube_t cube; + cube_t rep[COCSEP_CLASSES]; + + gendata_cocsep(buf, selfsim, rep); + cocsepdata = (uint32_t *)(buf + INFOSIZE); + + /* All cases in the same test so we do not generate data many times */ + + while (fgets(str, STRLENMAX, stdin) != NULL) { + cube = readcube(str); + coord = coord_cocsep(cube.cube); + data = cocsepdata[coord]; + coclass = (data & (0xFFFU << 16)) >> 16; + sim = selfsim[coclass]; + for (t = 0; t < 48 && sim; t++, sim >>= 1) { + if (sim & 1) + printf("%" PRId64 " ", t); + } + printf("\n"); + } +} -- cgit v1.3