From 6008855b28763f297f4379dfcdc23eacb303ee45 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sun, 15 Dec 2024 11:14:42 +0100 Subject: Added tool to check for correctnes of H48 solver. TODO: add more scrambles. --- tools/400_solvetest/solve_test.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'tools') diff --git a/tools/400_solvetest/solve_test.c b/tools/400_solvetest/solve_test.c index d19e1f3..14b3e04 100644 --- a/tools/400_solvetest/solve_test.c +++ b/tools/400_solvetest/solve_test.c @@ -14,8 +14,17 @@ char *buf; scramblesol_t s[] = { [0] = { .scramble = "R' D R U R' D' R U'", - .solutions = "U R' D R U' R' D' R\n" - "B' D2 B U' B' D2 B U\n", + .solutions = + "U R' D R U' R' D' R\n" + "B' D2 B U' B' D2 B U\n" +}, +[1] = { + .scramble = "R' L U2 R L' B2", + .solutions = + "B2 R' L U2 R L'\n" + "R L' B2 R' L U2\n" + "R B2 R' L U2 L'\n" + "L' B2 R' L U2 R\n" }, { .scramble = "", /* End-of-list signal */ @@ -26,7 +35,7 @@ bool check_one(char *actual, char *expected) { unsigned i; size_t l_actual, l_expected; - l_actual = strlen(actual); + for (l_actual = 0; actual[l_actual] != '\n'; l_actual++) ; l_expected = strlen(expected); if (l_actual > l_expected) return false; @@ -42,15 +51,16 @@ bool check_all(char *actual, char *expected) { unsigned i, found, n_expected; size_t l_actual; - if (strlen(actual) != strlen(expected)) + l_actual = strlen(actual); + if (l_actual != strlen(expected)) return false; for (i = 0, n_expected = 0; expected[i]; i++) n_expected += expected[i] == '\n'; - l_actual = strlen(actual); for (i = 0, found = 0; i < l_actual; i++) - found += check_one(&actual[i], expected); + if (i == 0 || actual[i-1] == '\n') + found += check_one(&actual[i], expected); return found == n_expected; } -- cgit v1.3