commit de70dc746f16607e2110f2c6acee8ed8ba2507f8
parent 6008855b28763f297f4379dfcdc23eacb303ee45
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date: Sun, 15 Dec 2024 16:07:12 +0100
Added more scrambles, found bug
Diffstat:
2 files changed, 69 insertions(+), 31 deletions(-)
diff --git a/tools/400_solvetest/scrambles.h b/tools/400_solvetest/scrambles.h
@@ -0,0 +1,62 @@
+struct {
+ char *scramble;
+ char *solutions;
+} 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"
+},
+[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"
+},
+[2] = {
+ .scramble = "R2 U2 R2 U2 R2 U2",
+ .solutions =
+ "U2 R2 U2 R2 U2 R2\n"
+ "D2 L2 U2 L2 D2 R2\n"
+ "U2 L2 D2 R2 D2 L2\n"
+ "D2 R2 D2 L2 U2 L2\n"
+ "R2 U2 R2 U2 R2 U2\n"
+ "L2 D2 R2 D2 L2 U2\n"
+ "R2 D2 L2 U2 L2 D2\n"
+ "L2 U2 L2 D2 R2 D2\n"
+},
+[3] = {
+ .scramble = "R U2 R' U' R U2 L' U R' U' L", /* J-perm */
+ .solutions =
+ "R2 D' R' D R' B2 L U' L' B2\n"
+ "B2 L U L' B2 R D' R D R2\n"
+},
+[4] = {
+ .scramble = "R' U' F D2 L2 F R2 U2 R2 B D2 L B2"
+ "D' B2 L' R' B D2 B U2 L U2 R' U' F", /* FMC2019 A1 */
+ .solutions =
+ "D2 F' U2 D2 F' L2 D R2 D F B2 R' L2 F' U' D\n"
+},
+[5] = {
+ .scramble = "L B' D2 R2 L2 B' U2 D2 R L' U F2", /* Taken from 6 */
+ .solutions =
+ "B2 R2 L2 D F2 B2 R' L F' U2 B L'\n"
+ "F2 U' R' L U2 D2 B R2 L2 D2 B L'\n"
+},
+[6] = {
+ .scramble = "R L' B R L' D R L' F R L' U"
+ "R' L F R L' D R L' B R L' U", /* Random thing */
+ .solutions =
+ "U' R L' B' D2 F R' L F2 B2 U' F2 R2 L2 U2\n"
+ "U' R L' B' R2 L2 U2 B' U2 D2 R' L D B2 U2\n"
+ "D2 R' L F R' B' R U B U L F' U' F' D\n"
+ "D' R' L B' U2 F R L' F2 B2 D' R2 L2 B2 D2\n"
+ "D' R' L B' D2 R2 L2 B' U2 D2 R L' U F2 D2\n"
+},
+{
+ .scramble = "", /* End-of-list signal */
+}
+};
diff --git a/tools/400_solvetest/solve_test.c b/tools/400_solvetest/solve_test.c
@@ -1,35 +1,12 @@
#include "../tool.h"
+#include "scrambles.h"
-#define SOL_BUFFER_LEN 10000
-
-typedef struct {
- char *scramble;
- char *solutions;
-} scramblesol_t;
+#define SOL_BUFFER_LEN 100000
char *solver;
int64_t size = 0;
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"
-},
-[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 */
-}
-};
bool check_one(char *actual, char *expected) {
unsigned i;
@@ -83,14 +60,13 @@ void run(void) {
n = nissy_solve(cube, solver, NISSY_NISSFLAG_NORMAL,
0, 20, 1, -1, 0, size, buf, SOL_BUFFER_LEN, sol, stats);
if (n == 0) {
- printf("Error! No solution found for scramble %s\n",
- s[i].scramble);
+ printf("Error: no solution\n");
return;
}
if (check_one(sol, s[i].solutions)) {
- printf("Single solution for scramble %d is correct\n", i);
+ printf("Single solution is correct\n");
} else {
- printf("Error! Scramble %d: %s\n", i, s[i].scramble);
+ printf("Error!\n");
printf("Found solution(s):\n%s", sol);
printf("Valid solution(s):\n%s", s[i].solutions);
return;
@@ -105,9 +81,9 @@ void run(void) {
n = nissy_solve(cube, solver, NISSY_NISSFLAG_NORMAL,
0, 20, 100, 0, 0, size, buf, SOL_BUFFER_LEN, sol, stats);
if (check_all(sol, s[i].solutions)) {
- printf("All solutions for scramble %d are correct\n", i);
+ printf("All solutions are correct\n");
} else {
- printf("Error! Scramble %s\n", s[i].scramble);
+ printf("Error!\n");
printf("Found solution(s):\n%s", sol);
printf("Valid solution(s):\n%s", s[i].solutions);
return;