diff options
142 files changed, 382 insertions, 50 deletions
diff --git a/src/core/constants.h b/src/core/constants.h index e8b80ae..6505689 100644 --- a/src/core/constants.h +++ b/src/core/constants.h | |||
| @@ -580,7 +580,7 @@ STATIC const char *transstr[] = { | |||
| 580 | [TRANS_BLm] = "mirrored BL", | 580 | [TRANS_BLm] = "mirrored BL", |
| 581 | }; | 581 | }; |
| 582 | 582 | ||
| 583 | static uint8_t inverse_trans_table[] = { | 583 | STATIC uint8_t inverse_trans_table[] = { |
| 584 | [TRANS_UFr] = TRANS_UFr, | 584 | [TRANS_UFr] = TRANS_UFr, |
| 585 | [TRANS_UFm] = TRANS_UFm, | 585 | [TRANS_UFm] = TRANS_UFm, |
| 586 | [TRANS_ULr] = TRANS_URr, | 586 | [TRANS_ULr] = TRANS_URr, |
| @@ -631,7 +631,7 @@ static uint8_t inverse_trans_table[] = { | |||
| 631 | [TRANS_BLm] = TRANS_LDm, | 631 | [TRANS_BLm] = TRANS_LDm, |
| 632 | }; | 632 | }; |
| 633 | 633 | ||
| 634 | static uint8_t trans_move_table[][3] = { | 634 | STATIC uint8_t trans_move_table[][3] = { |
| 635 | [TRANS_UFr] = { MOVE_U, MOVE_R, MOVE_F }, | 635 | [TRANS_UFr] = { MOVE_U, MOVE_R, MOVE_F }, |
| 636 | [TRANS_UFm] = { MOVE_U, MOVE_L, MOVE_F }, | 636 | [TRANS_UFm] = { MOVE_U, MOVE_L, MOVE_F }, |
| 637 | [TRANS_ULr] = { MOVE_U, MOVE_F, MOVE_L }, | 637 | [TRANS_ULr] = { MOVE_U, MOVE_F, MOVE_L }, |
| @@ -682,7 +682,7 @@ static uint8_t trans_move_table[][3] = { | |||
| 682 | [TRANS_BLm] = { MOVE_B, MOVE_U, MOVE_R }, | 682 | [TRANS_BLm] = { MOVE_B, MOVE_U, MOVE_R }, |
| 683 | }; | 683 | }; |
| 684 | 684 | ||
| 685 | static uint8_t orientation_transition_table[][3] = { | 685 | STATIC uint8_t orientation_transition_table[][3] = { |
| 686 | [ORIENTATION_UF] = { ORIENTATION_FD, ORIENTATION_UR, ORIENTATION_LF }, | 686 | [ORIENTATION_UF] = { ORIENTATION_FD, ORIENTATION_UR, ORIENTATION_LF }, |
| 687 | [ORIENTATION_UR] = { ORIENTATION_RD, ORIENTATION_UB, ORIENTATION_FR }, | 687 | [ORIENTATION_UR] = { ORIENTATION_RD, ORIENTATION_UB, ORIENTATION_FR }, |
| 688 | [ORIENTATION_UB] = { ORIENTATION_BD, ORIENTATION_UL, ORIENTATION_RB }, | 688 | [ORIENTATION_UB] = { ORIENTATION_BD, ORIENTATION_UL, ORIENTATION_RB }, |
| @@ -709,26 +709,94 @@ static uint8_t orientation_transition_table[][3] = { | |||
| 709 | [ORIENTATION_BL] = { ORIENTATION_LF, ORIENTATION_BD, ORIENTATION_DL }, | 709 | [ORIENTATION_BL] = { ORIENTATION_LF, ORIENTATION_BD, ORIENTATION_DL }, |
| 710 | }; | 710 | }; |
| 711 | 711 | ||
| 712 | static struct { | 712 | STATIC uint8_t orientation_trans[] = { |
| 713 | uint8_t moves[3]; | 713 | [ORIENTATION_UF] = TRANS_UFr, |
| 714 | uint8_t rotations[6]; | 714 | [ORIENTATION_UR] = TRANS_URr, |
| 715 | } equivalent_move_table[] = { | 715 | [ORIENTATION_UB] = TRANS_UBr, |
| 716 | [MOVE_U] = { { MOVE_U, UINT8_MAX }, {UINT8_MAX} }, | 716 | [ORIENTATION_UL] = TRANS_ULr, |
| 717 | [MOVE_U2] = { { MOVE_U2, UINT8_MAX }, {UINT8_MAX} }, | 717 | [ORIENTATION_DF] = TRANS_DFr, |
| 718 | [MOVE_U3] = { { MOVE_U3, UINT8_MAX }, {UINT8_MAX} }, | 718 | [ORIENTATION_DR] = TRANS_DRr, |
| 719 | [MOVE_D] = { { MOVE_D, UINT8_MAX }, {UINT8_MAX} }, | 719 | [ORIENTATION_DB] = TRANS_DBr, |
| 720 | [MOVE_D2] = { { MOVE_D2, UINT8_MAX }, {UINT8_MAX} }, | 720 | [ORIENTATION_DL] = TRANS_DLr, |
| 721 | [MOVE_D3] = { { MOVE_D3, UINT8_MAX }, {UINT8_MAX} }, | 721 | [ORIENTATION_RF] = TRANS_RFr, |
| 722 | [MOVE_R] = { { MOVE_R, UINT8_MAX }, {UINT8_MAX} }, | 722 | [ORIENTATION_RD] = TRANS_RDr, |
| 723 | [MOVE_R2] = { { MOVE_R2, UINT8_MAX }, {UINT8_MAX} }, | 723 | [ORIENTATION_RB] = TRANS_RBr, |
| 724 | [MOVE_R3] = { { MOVE_R3, UINT8_MAX }, {UINT8_MAX} }, | 724 | [ORIENTATION_RU] = TRANS_RUr, |
| 725 | [MOVE_L] = { { MOVE_L, UINT8_MAX }, {UINT8_MAX} }, | 725 | [ORIENTATION_LF] = TRANS_LFr, |
| 726 | [MOVE_L2] = { { MOVE_L2, UINT8_MAX }, {UINT8_MAX} }, | 726 | [ORIENTATION_LD] = TRANS_LDr, |
| 727 | [MOVE_L3] = { { MOVE_L3, UINT8_MAX }, {UINT8_MAX} }, | 727 | [ORIENTATION_LB] = TRANS_LBr, |
| 728 | [MOVE_F] = { { MOVE_F, UINT8_MAX }, {UINT8_MAX} }, | 728 | [ORIENTATION_LU] = TRANS_LUr, |
| 729 | [MOVE_F2] = { { MOVE_F2, UINT8_MAX }, {UINT8_MAX} }, | 729 | [ORIENTATION_FD] = TRANS_FDr, |
| 730 | [MOVE_F3] = { { MOVE_F3, UINT8_MAX }, {UINT8_MAX} }, | 730 | [ORIENTATION_FR] = TRANS_FRr, |
| 731 | [MOVE_B] = { { MOVE_B, UINT8_MAX }, {UINT8_MAX} }, | 731 | [ORIENTATION_FU] = TRANS_FUr, |
| 732 | [MOVE_B2] = { { MOVE_B2, UINT8_MAX }, {UINT8_MAX} }, | 732 | [ORIENTATION_FL] = TRANS_FLr, |
| 733 | [MOVE_B3] = { { MOVE_B3, UINT8_MAX }, {UINT8_MAX} }, | 733 | [ORIENTATION_BD] = TRANS_BDr, |
| 734 | [ORIENTATION_BR] = TRANS_BRr, | ||
| 735 | [ORIENTATION_BU] = TRANS_BUr, | ||
| 736 | [ORIENTATION_BL] = TRANS_BLr, | ||
| 737 | }; | ||
| 738 | |||
| 739 | typedef struct { | ||
| 740 | uint8_t move[3]; | ||
| 741 | uint8_t rotation[4]; | ||
| 742 | } equivalent_moves_t; | ||
| 743 | |||
| 744 | STATIC equivalent_moves_t equivalent_moves_table[] = { | ||
| 745 | [MOVE_U] = {{MOVE_U, UINT8_MAX}, {UINT8_MAX}}, | ||
| 746 | [MOVE_U2] = {{MOVE_U2, UINT8_MAX}, {UINT8_MAX}}, | ||
| 747 | [MOVE_U3] = {{MOVE_U3, UINT8_MAX}, {UINT8_MAX}}, | ||
| 748 | [MOVE_D] = {{MOVE_D, UINT8_MAX}, {UINT8_MAX}}, | ||
| 749 | [MOVE_D2] = {{MOVE_D2, UINT8_MAX}, {UINT8_MAX}}, | ||
| 750 | [MOVE_D3] = {{MOVE_D3, UINT8_MAX}, {UINT8_MAX}}, | ||
| 751 | [MOVE_R] = {{MOVE_R, UINT8_MAX}, {UINT8_MAX}}, | ||
| 752 | [MOVE_R2] = {{MOVE_R2, UINT8_MAX}, {UINT8_MAX}}, | ||
| 753 | [MOVE_R3] = {{MOVE_R3, UINT8_MAX}, {UINT8_MAX}}, | ||
| 754 | [MOVE_L] = {{MOVE_L, UINT8_MAX}, {UINT8_MAX}}, | ||
| 755 | [MOVE_L2] = {{MOVE_L2, UINT8_MAX}, {UINT8_MAX}}, | ||
| 756 | [MOVE_L3] = {{MOVE_L3, UINT8_MAX}, {UINT8_MAX}}, | ||
| 757 | [MOVE_F] = {{MOVE_F, UINT8_MAX}, {UINT8_MAX}}, | ||
| 758 | [MOVE_F2] = {{MOVE_F2, UINT8_MAX}, {UINT8_MAX}}, | ||
| 759 | [MOVE_F3] = {{MOVE_F3, UINT8_MAX}, {UINT8_MAX}}, | ||
| 760 | [MOVE_B] = {{MOVE_B, UINT8_MAX}, {UINT8_MAX}}, | ||
| 761 | [MOVE_B2] = {{MOVE_B2, UINT8_MAX}, {UINT8_MAX}}, | ||
| 762 | [MOVE_B3] = {{MOVE_B3, UINT8_MAX}, {UINT8_MAX}}, | ||
| 763 | |||
| 764 | [MOVE_Uw] = {{MOVE_D, UINT8_MAX}, {1, UINT8_MAX}}, | ||
| 765 | [MOVE_Uw2] = {{MOVE_D2, UINT8_MAX}, {1, 1, UINT8_MAX}}, | ||
| 766 | [MOVE_Uw3] = {{MOVE_D3, UINT8_MAX}, {1, 1, 1, UINT8_MAX}}, | ||
| 767 | [MOVE_Dw] = {{MOVE_U, UINT8_MAX}, {1, 1, 1, UINT8_MAX}}, | ||
| 768 | [MOVE_Dw2] = {{MOVE_U2, UINT8_MAX}, {1, 1, UINT8_MAX}}, | ||
| 769 | [MOVE_Dw3] = {{MOVE_U3, UINT8_MAX}, {1, UINT8_MAX}}, | ||
| 770 | [MOVE_Rw] = {{MOVE_L, UINT8_MAX}, {0, UINT8_MAX}}, | ||
| 771 | [MOVE_Rw2] = {{MOVE_L2, UINT8_MAX}, {0, 0, UINT8_MAX}}, | ||
| 772 | [MOVE_Rw3] = {{MOVE_L3, UINT8_MAX}, {0, 0, 0, UINT8_MAX}}, | ||
| 773 | [MOVE_Lw] = {{MOVE_R, UINT8_MAX}, {0, 0, 0, UINT8_MAX}}, | ||
| 774 | [MOVE_Lw2] = {{MOVE_R2, UINT8_MAX}, {0, 0, UINT8_MAX}}, | ||
| 775 | [MOVE_Lw3] = {{MOVE_R3, UINT8_MAX}, {0, UINT8_MAX}}, | ||
| 776 | [MOVE_Fw] = {{MOVE_B, UINT8_MAX}, {2, UINT8_MAX}}, | ||
| 777 | [MOVE_Fw2] = {{MOVE_B2, UINT8_MAX}, {2, 2, UINT8_MAX}}, | ||
| 778 | [MOVE_Fw3] = {{MOVE_B3, UINT8_MAX}, {2, 2, 2, UINT8_MAX}}, | ||
| 779 | [MOVE_Bw] = {{MOVE_F, UINT8_MAX}, {2, 2, 2, UINT8_MAX}}, | ||
| 780 | [MOVE_Bw2] = {{MOVE_F2, UINT8_MAX}, {2, 2, UINT8_MAX}}, | ||
| 781 | [MOVE_Bw3] = {{MOVE_F3, UINT8_MAX}, {2, UINT8_MAX}}, | ||
| 782 | |||
| 783 | [MOVE_M] = {{MOVE_R, MOVE_L3, UINT8_MAX}, {0, 0, 0, UINT8_MAX}}, | ||
| 784 | [MOVE_M2] = {{MOVE_R2, MOVE_L2, UINT8_MAX}, {0, 0, UINT8_MAX}}, | ||
| 785 | [MOVE_M3] = {{MOVE_R3, MOVE_L, UINT8_MAX}, {0, UINT8_MAX}}, | ||
| 786 | [MOVE_S] = {{MOVE_F3, MOVE_B, UINT8_MAX}, {2, UINT8_MAX}}, | ||
| 787 | [MOVE_S2] = {{MOVE_F2, MOVE_B2, UINT8_MAX}, {2, 2, UINT8_MAX}}, | ||
| 788 | [MOVE_S3] = {{MOVE_F, MOVE_B3, UINT8_MAX}, {2, 2, 2, UINT8_MAX}}, | ||
| 789 | [MOVE_E] = {{MOVE_U, MOVE_D3, UINT8_MAX}, {1, 1, 1, UINT8_MAX}}, | ||
| 790 | [MOVE_E2] = {{MOVE_U2, MOVE_D2, UINT8_MAX}, {1, 1, UINT8_MAX}}, | ||
| 791 | [MOVE_E3] = {{MOVE_U3, MOVE_D, UINT8_MAX}, {1, UINT8_MAX}}, | ||
| 792 | |||
| 793 | [MOVE_x] = {{UINT8_MAX}, {0, UINT8_MAX}}, | ||
| 794 | [MOVE_x2] = {{UINT8_MAX}, {0, 0, UINT8_MAX}}, | ||
| 795 | [MOVE_x3] = {{UINT8_MAX}, {0, 0, 0, UINT8_MAX}}, | ||
| 796 | [MOVE_y] = {{UINT8_MAX}, {1, UINT8_MAX}}, | ||
| 797 | [MOVE_y2] = {{UINT8_MAX}, {1, 1, UINT8_MAX}}, | ||
| 798 | [MOVE_y3] = {{UINT8_MAX}, {1, 1, 1, UINT8_MAX}}, | ||
| 799 | [MOVE_z] = {{UINT8_MAX}, {2, UINT8_MAX}}, | ||
| 800 | [MOVE_z2] = {{UINT8_MAX}, {2, 2, UINT8_MAX}}, | ||
| 801 | [MOVE_z3] = {{UINT8_MAX}, {2, 2, 2, UINT8_MAX}}, | ||
| 734 | }; | 802 | }; |
diff --git a/src/core/moves.h b/src/core/moves.h index 8ed267d..20544a3 100644 --- a/src/core/moves.h +++ b/src/core/moves.h | |||
| @@ -14,8 +14,13 @@ STATIC_INLINE uint8_t movebase(uint8_t); | |||
| 14 | STATIC_INLINE uint8_t moveaxis(uint8_t); | 14 | STATIC_INLINE uint8_t moveaxis(uint8_t); |
| 15 | STATIC_INLINE bool isbase(uint8_t); | 15 | STATIC_INLINE bool isbase(uint8_t); |
| 16 | STATIC_INLINE bool parallel(uint8_t, uint8_t); | 16 | STATIC_INLINE bool parallel(uint8_t, uint8_t); |
| 17 | STATIC_INLINE uint8_t moveopposite(uint8_t); | ||
| 18 | STATIC_INLINE uint8_t reorient_move(uint8_t, uint8_t); | ||
| 19 | STATIC_INLINE uint8_t movefollow(uint8_t); | ||
| 20 | STATIC uint8_t transform_move(uint8_t, uint8_t); | ||
| 17 | 21 | ||
| 18 | STATIC cube_t move(cube_t, uint8_t); | 22 | STATIC cube_t move(cube_t, uint8_t); |
| 23 | STATIC oriented_cube_t move_extended(oriented_cube_t, uint8_t); | ||
| 19 | STATIC cube_t premove(cube_t, uint8_t); | 24 | STATIC cube_t premove(cube_t, uint8_t); |
| 20 | STATIC uint8_t inverse_move(uint8_t); | 25 | STATIC uint8_t inverse_move(uint8_t); |
| 21 | STATIC void sortparallel_moves(size_t n, uint8_t [n]); | 26 | STATIC void sortparallel_moves(size_t n, uint8_t [n]); |
| @@ -112,14 +117,14 @@ countmoves(const char *buf) | |||
| 112 | { | 117 | { |
| 113 | uint8_t m; | 118 | uint8_t m; |
| 114 | uint64_t c; | 119 | uint64_t c; |
| 120 | int64_t count; | ||
| 115 | 121 | ||
| 122 | count = 0; | ||
| 116 | FOREACH_READMOVE(buf, m, c, INT_MAX, NISSY_ERROR_INVALID_MOVES, | 123 | FOREACH_READMOVE(buf, m, c, INT_MAX, NISSY_ERROR_INVALID_MOVES, |
| 117 | {} | 124 | count += m <= MOVE_Bw3 ? 1 : (m <= MOVE_E3 ? 2 : 0); |
| 118 | ) | 125 | ) |
| 119 | 126 | ||
| 120 | (void)m; /* Ignore "variable set but not used" warning */ | 127 | return count; |
| 121 | |||
| 122 | return (int64_t)c; | ||
| 123 | } | 128 | } |
| 124 | 129 | ||
| 125 | STATIC int64_t | 130 | STATIC int64_t |
| @@ -188,6 +193,9 @@ movebase(uint8_t move) | |||
| 188 | STATIC_INLINE uint8_t | 193 | STATIC_INLINE uint8_t |
| 189 | moveaxis(uint8_t move) | 194 | moveaxis(uint8_t move) |
| 190 | { | 195 | { |
| 196 | if (move > MOVE_B3) | ||
| 197 | return UINT8_ERROR; | ||
| 198 | |||
| 191 | return move / 6; | 199 | return move / 6; |
| 192 | } | 200 | } |
| 193 | 201 | ||
| @@ -209,6 +217,44 @@ moveopposite(uint8_t move) | |||
| 209 | return movebase(move) == 2 * moveaxis(move) ? move + 3 : move - 3; | 217 | return movebase(move) == 2 * moveaxis(move) ? move + 3 : move - 3; |
| 210 | } | 218 | } |
| 211 | 219 | ||
| 220 | STATIC_INLINE uint8_t | ||
| 221 | reorient_move(uint8_t m, uint8_t or) | ||
| 222 | { | ||
| 223 | return transform_move(m, orientation_trans[or]); | ||
| 224 | } | ||
| 225 | |||
| 226 | /* This is currently unused, but it may turn out to be useful at some point */ | ||
| 227 | STATIC_INLINE uint8_t | ||
| 228 | movefollow(uint8_t move) | ||
| 229 | { | ||
| 230 | uint8_t b, m; | ||
| 231 | |||
| 232 | if (move <= MOVE_B3) | ||
| 233 | return move; | ||
| 234 | |||
| 235 | if (move <= MOVE_Bw3) | ||
| 236 | return move - MOVE_Uw; | ||
| 237 | |||
| 238 | b = UINT8_C(3) * (move / UINT8_C(3)); | ||
| 239 | m = move - b; | ||
| 240 | switch (b) { | ||
| 241 | case MOVE_M: | ||
| 242 | return MOVE_L + m; | ||
| 243 | case MOVE_S: | ||
| 244 | return MOVE_F + m; | ||
| 245 | case MOVE_E: | ||
| 246 | return MOVE_D + m; | ||
| 247 | case MOVE_x: | ||
| 248 | return MOVE_R + m; | ||
| 249 | case MOVE_y: | ||
| 250 | return MOVE_U + m; | ||
| 251 | case MOVE_z: | ||
| 252 | return MOVE_F + m; | ||
| 253 | default: | ||
| 254 | return UINT8_ERROR; | ||
| 255 | } | ||
| 256 | } | ||
| 257 | |||
| 212 | STATIC cube_t | 258 | STATIC cube_t |
| 213 | move(cube_t c, uint8_t m) | 259 | move(cube_t c, uint8_t m) |
| 214 | { | 260 | { |
| @@ -255,6 +301,47 @@ move(cube_t c, uint8_t m) | |||
| 255 | } | 301 | } |
| 256 | } | 302 | } |
| 257 | 303 | ||
| 304 | STATIC uint8_t | ||
| 305 | transform_move(uint8_t m, uint8_t t) | ||
| 306 | { | ||
| 307 | uint8_t a, base, modifier; | ||
| 308 | |||
| 309 | a = moveaxis(m); | ||
| 310 | if (a == UINT8_ERROR) | ||
| 311 | return UINT8_ERROR; | ||
| 312 | |||
| 313 | base = trans_move_table[t][a]; | ||
| 314 | if (movebase(m) != 2 * a) | ||
| 315 | base = moveopposite(base); | ||
| 316 | |||
| 317 | modifier = m % 3; | ||
| 318 | if (t >= TRANS_UFm) | ||
| 319 | modifier = 2 - modifier; | ||
| 320 | |||
| 321 | return base + modifier; | ||
| 322 | } | ||
| 323 | |||
| 324 | STATIC oriented_cube_t | ||
| 325 | move_extended(oriented_cube_t c, uint8_t m) | ||
| 326 | { | ||
| 327 | int i; | ||
| 328 | equivalent_moves_t eqm; | ||
| 329 | oriented_cube_t ret; | ||
| 330 | |||
| 331 | eqm = equivalent_moves_table[m]; | ||
| 332 | ret = c; | ||
| 333 | |||
| 334 | for (i = 0; eqm.move[i] != UINT8_MAX; i++) | ||
| 335 | ret.cube = move( | ||
| 336 | ret.cube, reorient_move(eqm.move[i], ret.orientation)); | ||
| 337 | |||
| 338 | for (i = 0; eqm.rotation[i] != UINT8_MAX; i++) | ||
| 339 | ret.orientation = orientation_transition_table[ | ||
| 340 | ret.orientation][eqm.rotation[i]]; | ||
| 341 | |||
| 342 | return ret; | ||
| 343 | } | ||
| 344 | |||
| 258 | /* Applies the INVERSE of m BEFORE the scramble corresponding to c */ | 345 | /* Applies the INVERSE of m BEFORE the scramble corresponding to c */ |
| 259 | STATIC cube_t | 346 | STATIC cube_t |
| 260 | premove(cube_t c, uint8_t m) | 347 | premove(cube_t c, uint8_t m) |
| @@ -345,7 +432,7 @@ applymoves(oriented_cube_t cube, const char *buf) | |||
| 345 | "move error: inconsistent cube\n"); | 432 | "move error: inconsistent cube\n"); |
| 346 | 433 | ||
| 347 | FOREACH_READMOVE(buf, m, c, -1, ZERO_ORIENTED_CUBE, | 434 | FOREACH_READMOVE(buf, m, c, -1, ZERO_ORIENTED_CUBE, |
| 348 | cube.cube = move(cube.cube, m); | 435 | cube = move_extended(cube, m); |
| 349 | ) | 436 | ) |
| 350 | 437 | ||
| 351 | return cube; | 438 | return cube; |
diff --git a/src/core/transform.h b/src/core/transform.h index 763a4ae..d1d2931 100644 --- a/src/core/transform.h +++ b/src/core/transform.h | |||
| @@ -25,7 +25,6 @@ STATIC cube_t transform_corners(cube_t, uint8_t); | |||
| 25 | STATIC cube_t transform(cube_t, uint8_t); | 25 | STATIC cube_t transform(cube_t, uint8_t); |
| 26 | STATIC oriented_cube_t applytrans(oriented_cube_t, const char *); | 26 | STATIC oriented_cube_t applytrans(oriented_cube_t, const char *); |
| 27 | STATIC_INLINE uint8_t inverse_trans(uint8_t); | 27 | STATIC_INLINE uint8_t inverse_trans(uint8_t); |
| 28 | STATIC uint8_t transform_move(uint8_t, uint8_t); | ||
| 29 | STATIC uint64_t symmetry_mask(cube_t); | 28 | STATIC uint64_t symmetry_mask(cube_t); |
| 30 | 29 | ||
| 31 | STATIC uint8_t | 30 | STATIC uint8_t |
| @@ -392,23 +391,6 @@ inverse_trans(uint8_t t) | |||
| 392 | return inverse_trans_table[t]; | 391 | return inverse_trans_table[t]; |
| 393 | } | 392 | } |
| 394 | 393 | ||
| 395 | STATIC uint8_t | ||
| 396 | transform_move(uint8_t m, uint8_t t) | ||
| 397 | { | ||
| 398 | uint8_t a, base, modifier; | ||
| 399 | |||
| 400 | a = moveaxis(m); | ||
| 401 | base = trans_move_table[t][a]; | ||
| 402 | if (movebase(m) != 2 * a) | ||
| 403 | base = moveopposite(base); | ||
| 404 | |||
| 405 | modifier = m % 3; | ||
| 406 | if (t >= TRANS_UFm) | ||
| 407 | modifier = 2 - modifier; | ||
| 408 | |||
| 409 | return base + modifier; | ||
| 410 | } | ||
| 411 | |||
| 412 | STATIC uint64_t | 394 | STATIC uint64_t |
| 413 | symmetry_mask(cube_t cube) | 395 | symmetry_mask(cube_t cube) |
| 414 | { | 396 | { |
diff --git a/test/030_move/500_Uw_solved.in b/test/030_move/500_Uw_solved.in new file mode 100644 index 0000000..3e79076 --- /dev/null +++ b/test/030_move/500_Uw_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Uw | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/500_Uw_solved.out b/test/030_move/500_Uw_solved.out new file mode 100644 index 0000000..fc08019 --- /dev/null +++ b/test/030_move/500_Uw_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABHGEFCD=ABHGEFCDIJKL=B | |||
diff --git a/test/030_move/501_Uw2_solved.in b/test/030_move/501_Uw2_solved.in new file mode 100644 index 0000000..fb0cf4b --- /dev/null +++ b/test/030_move/501_Uw2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Uw2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/501_Uw2_solved.out b/test/030_move/501_Uw2_solved.out new file mode 100644 index 0000000..eb734e6 --- /dev/null +++ b/test/030_move/501_Uw2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABDCEFHG=ABDCEFHGIJKL=C | |||
diff --git a/test/030_move/502_Uw3_solved.in b/test/030_move/502_Uw3_solved.in new file mode 100644 index 0000000..3b4ebf6 --- /dev/null +++ b/test/030_move/502_Uw3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Uw3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/502_Uw3_solved.out b/test/030_move/502_Uw3_solved.out new file mode 100644 index 0000000..6724a49 --- /dev/null +++ b/test/030_move/502_Uw3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABGHEFDC=ABGHEFDCIJKL=D | |||
diff --git a/test/030_move/503_Dw_solved.in b/test/030_move/503_Dw_solved.in new file mode 100644 index 0000000..da4009e --- /dev/null +++ b/test/030_move/503_Dw_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Dw | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/503_Dw_solved.out b/test/030_move/503_Dw_solved.out new file mode 100644 index 0000000..f554f31 --- /dev/null +++ b/test/030_move/503_Dw_solved.out | |||
| @@ -0,0 +1 @@ | |||
| FECDABGH=EFCDBAGHIJKL=D | |||
diff --git a/test/030_move/504_Dw2_solved.in b/test/030_move/504_Dw2_solved.in new file mode 100644 index 0000000..5e403a4 --- /dev/null +++ b/test/030_move/504_Dw2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Dw2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/504_Dw2_solved.out b/test/030_move/504_Dw2_solved.out new file mode 100644 index 0000000..51c13ad --- /dev/null +++ b/test/030_move/504_Dw2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| BACDFEGH=BACDFEGHIJKL=C | |||
diff --git a/test/030_move/505_Dw3_solved.in b/test/030_move/505_Dw3_solved.in new file mode 100644 index 0000000..d4a9fbb --- /dev/null +++ b/test/030_move/505_Dw3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Dw3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/505_Dw3_solved.out b/test/030_move/505_Dw3_solved.out new file mode 100644 index 0000000..b842e86 --- /dev/null +++ b/test/030_move/505_Dw3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| EFCDBAGH=FECDABGHIJKL=B | |||
diff --git a/test/030_move/506_Rw_solved.in b/test/030_move/506_Rw_solved.in new file mode 100644 index 0000000..4387d10 --- /dev/null +++ b/test/030_move/506_Rw_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Rw | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/506_Rw_solved.out b/test/030_move/506_Rw_solved.out new file mode 100644 index 0000000..853c85d --- /dev/null +++ b/test/030_move/506_Rw_solved.out | |||
| @@ -0,0 +1 @@ | |||
| AXUDJFGK=ABCDEKJHIFGL=Q | |||
diff --git a/test/030_move/507_Rw2_solved.in b/test/030_move/507_Rw2_solved.in new file mode 100644 index 0000000..3510315 --- /dev/null +++ b/test/030_move/507_Rw2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Rw2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/507_Rw2_solved.out b/test/030_move/507_Rw2_solved.out new file mode 100644 index 0000000..f89caca --- /dev/null +++ b/test/030_move/507_Rw2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ACBDHFGE=ABCDEGFHIKJL=G | |||
diff --git a/test/030_move/508_Rw3_solved.in b/test/030_move/508_Rw3_solved.in new file mode 100644 index 0000000..69cb0b2 --- /dev/null +++ b/test/030_move/508_Rw3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Rw3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/508_Rw3_solved.out b/test/030_move/508_Rw3_solved.out new file mode 100644 index 0000000..38ae9a9 --- /dev/null +++ b/test/030_move/508_Rw3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| AUXDKFGJ=ABCDEJKHIGFL=W | |||
diff --git a/test/030_move/509_Lw_solved.in b/test/030_move/509_Lw_solved.in new file mode 100644 index 0000000..ddd8aea --- /dev/null +++ b/test/030_move/509_Lw_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Lw | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/509_Lw_solved.out b/test/030_move/509_Lw_solved.out new file mode 100644 index 0000000..b588134 --- /dev/null +++ b/test/030_move/509_Lw_solved.out | |||
| @@ -0,0 +1 @@ | |||
| WBCVEILH=ABCDIFGLHJKE=W | |||
diff --git a/test/030_move/510_Lw2_solved.in b/test/030_move/510_Lw2_solved.in new file mode 100644 index 0000000..c0a00b3 --- /dev/null +++ b/test/030_move/510_Lw2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Lw2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/510_Lw2_solved.out b/test/030_move/510_Lw2_solved.out new file mode 100644 index 0000000..9d468db --- /dev/null +++ b/test/030_move/510_Lw2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| DBCAEGFH=ABCDHFGELJKI=G | |||
diff --git a/test/030_move/511_Lw3_solved.in b/test/030_move/511_Lw3_solved.in new file mode 100644 index 0000000..94b1333 --- /dev/null +++ b/test/030_move/511_Lw3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Lw3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/511_Lw3_solved.out b/test/030_move/511_Lw3_solved.out new file mode 100644 index 0000000..d4f17bb --- /dev/null +++ b/test/030_move/511_Lw3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| VBCWELIH=ABCDLFGIEJKH=Q | |||
diff --git a/test/030_move/512_Fw_solved.in b/test/030_move/512_Fw_solved.in new file mode 100644 index 0000000..179dab4 --- /dev/null +++ b/test/030_move/512_Fw_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Fw | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/512_Fw_solved.out b/test/030_move/512_Fw_solved.out new file mode 100644 index 0000000..966f275 --- /dev/null +++ b/test/030_move/512_Fw_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ANCPETGR=AbaDEFGHIJRS=M | |||
diff --git a/test/030_move/513_Fw2_solved.in b/test/030_move/513_Fw2_solved.in new file mode 100644 index 0000000..94fd724 --- /dev/null +++ b/test/030_move/513_Fw2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Fw2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/513_Fw2_solved.out b/test/030_move/513_Fw2_solved.out new file mode 100644 index 0000000..06c3560 --- /dev/null +++ b/test/030_move/513_Fw2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ADCBEHGF=ACBDEFGHIJLK=E | |||
diff --git a/test/030_move/514_Fw3_solved.in b/test/030_move/514_Fw3_solved.in new file mode 100644 index 0000000..5287f6a --- /dev/null +++ b/test/030_move/514_Fw3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Fw3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/514_Fw3_solved.out b/test/030_move/514_Fw3_solved.out new file mode 100644 index 0000000..659a09e --- /dev/null +++ b/test/030_move/514_Fw3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| APCNERGT=AabDEFGHIJSR=I | |||
diff --git a/test/030_move/515_Bw_solved.in b/test/030_move/515_Bw_solved.in new file mode 100644 index 0000000..13eac57 --- /dev/null +++ b/test/030_move/515_Bw_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Bw | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/515_Bw_solved.out b/test/030_move/515_Bw_solved.out new file mode 100644 index 0000000..28af170 --- /dev/null +++ b/test/030_move/515_Bw_solved.out | |||
| @@ -0,0 +1 @@ | |||
| MBODSFQH=ZBCYEFGHQTKL=I | |||
diff --git a/test/030_move/516_Bw2_solved.in b/test/030_move/516_Bw2_solved.in new file mode 100644 index 0000000..989ad7c --- /dev/null +++ b/test/030_move/516_Bw2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Bw2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/516_Bw2_solved.out b/test/030_move/516_Bw2_solved.out new file mode 100644 index 0000000..43b400d --- /dev/null +++ b/test/030_move/516_Bw2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| CBADGFEH=DBCAEFGHJIKL=E | |||
diff --git a/test/030_move/517_Bw3_solved.in b/test/030_move/517_Bw3_solved.in new file mode 100644 index 0000000..a53c4e9 --- /dev/null +++ b/test/030_move/517_Bw3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | Bw3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/517_Bw3_solved.out b/test/030_move/517_Bw3_solved.out new file mode 100644 index 0000000..e10aaf5 --- /dev/null +++ b/test/030_move/517_Bw3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| OBMDQFSH=YBCZEFGHTQKL=M | |||
diff --git a/test/030_move/518_M_solved.in b/test/030_move/518_M_solved.in new file mode 100644 index 0000000..599d8ff --- /dev/null +++ b/test/030_move/518_M_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | M | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/518_M_solved.out b/test/030_move/518_M_solved.out new file mode 100644 index 0000000..6b28216 --- /dev/null +++ b/test/030_move/518_M_solved.out | |||
| @@ -0,0 +1 @@ | |||
| WUXVKILJ=ABCDIJKLHGFE=W | |||
diff --git a/test/030_move/519_M2_solved.in b/test/030_move/519_M2_solved.in new file mode 100644 index 0000000..d0479b8 --- /dev/null +++ b/test/030_move/519_M2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | M2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/519_M2_solved.out b/test/030_move/519_M2_solved.out new file mode 100644 index 0000000..e28cb4e --- /dev/null +++ b/test/030_move/519_M2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| DCBAHGFE=ABCDHGFELKJI=G | |||
diff --git a/test/030_move/520_M3_solved.in b/test/030_move/520_M3_solved.in new file mode 100644 index 0000000..32bff5a --- /dev/null +++ b/test/030_move/520_M3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | M3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/520_M3_solved.out b/test/030_move/520_M3_solved.out new file mode 100644 index 0000000..1d47a15 --- /dev/null +++ b/test/030_move/520_M3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| VXUWJLIK=ABCDLKJIEFGH=Q | |||
diff --git a/test/030_move/521_S_solved.in b/test/030_move/521_S_solved.in new file mode 100644 index 0000000..9e08bff --- /dev/null +++ b/test/030_move/521_S_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | S | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/521_S_solved.out b/test/030_move/521_S_solved.out new file mode 100644 index 0000000..74b55a2 --- /dev/null +++ b/test/030_move/521_S_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ONMPQTSR=YbaZEFGHTQRS=M | |||
diff --git a/test/030_move/522_S2_solved.in b/test/030_move/522_S2_solved.in new file mode 100644 index 0000000..49818d0 --- /dev/null +++ b/test/030_move/522_S2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | S2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/522_S2_solved.out b/test/030_move/522_S2_solved.out new file mode 100644 index 0000000..85245c3 --- /dev/null +++ b/test/030_move/522_S2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| CDABGHEF=DCBAEFGHJILK=E | |||
diff --git a/test/030_move/523_S3_solved.in b/test/030_move/523_S3_solved.in new file mode 100644 index 0000000..3cdc3d6 --- /dev/null +++ b/test/030_move/523_S3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | S3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/523_S3_solved.out b/test/030_move/523_S3_solved.out new file mode 100644 index 0000000..ac53534 --- /dev/null +++ b/test/030_move/523_S3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| MPONSRQT=ZabYEFGHQTSR=I | |||
diff --git a/test/030_move/524_E_solved.in b/test/030_move/524_E_solved.in new file mode 100644 index 0000000..03b48ef --- /dev/null +++ b/test/030_move/524_E_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | E | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/524_E_solved.out b/test/030_move/524_E_solved.out new file mode 100644 index 0000000..54fcf98 --- /dev/null +++ b/test/030_move/524_E_solved.out | |||
| @@ -0,0 +1 @@ | |||
| FEGHABDC=EFGHBADCIJKL=D | |||
diff --git a/test/030_move/525_E2_solved.in b/test/030_move/525_E2_solved.in new file mode 100644 index 0000000..faee27c --- /dev/null +++ b/test/030_move/525_E2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | E2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/525_E2_solved.out b/test/030_move/525_E2_solved.out new file mode 100644 index 0000000..330a390 --- /dev/null +++ b/test/030_move/525_E2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| BADCFEHG=BADCFEHGIJKL=C | |||
diff --git a/test/030_move/526_E3_solved.in b/test/030_move/526_E3_solved.in new file mode 100644 index 0000000..17fa78d --- /dev/null +++ b/test/030_move/526_E3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | E3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/526_E3_solved.out b/test/030_move/526_E3_solved.out new file mode 100644 index 0000000..cb55358 --- /dev/null +++ b/test/030_move/526_E3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| EFHGBACD=FEHGABCDIJKL=B | |||
diff --git a/test/030_move/527_x_solved.in b/test/030_move/527_x_solved.in new file mode 100644 index 0000000..f26b8c5 --- /dev/null +++ b/test/030_move/527_x_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | x | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/527_x_solved.out b/test/030_move/527_x_solved.out new file mode 100644 index 0000000..29fefad --- /dev/null +++ b/test/030_move/527_x_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=Q | |||
diff --git a/test/030_move/528_x2_solved.in b/test/030_move/528_x2_solved.in new file mode 100644 index 0000000..c538316 --- /dev/null +++ b/test/030_move/528_x2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | x2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/528_x2_solved.out b/test/030_move/528_x2_solved.out new file mode 100644 index 0000000..cebf79a --- /dev/null +++ b/test/030_move/528_x2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=G | |||
diff --git a/test/030_move/529_x3_solved.in b/test/030_move/529_x3_solved.in new file mode 100644 index 0000000..cc314b4 --- /dev/null +++ b/test/030_move/529_x3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | x3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/529_x3_solved.out b/test/030_move/529_x3_solved.out new file mode 100644 index 0000000..2449874 --- /dev/null +++ b/test/030_move/529_x3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=W | |||
diff --git a/test/030_move/530_y_solved.in b/test/030_move/530_y_solved.in new file mode 100644 index 0000000..07ec332 --- /dev/null +++ b/test/030_move/530_y_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | y | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/530_y_solved.out b/test/030_move/530_y_solved.out new file mode 100644 index 0000000..4749dd6 --- /dev/null +++ b/test/030_move/530_y_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=B | |||
diff --git a/test/030_move/531_y2_solved.in b/test/030_move/531_y2_solved.in new file mode 100644 index 0000000..a77c990 --- /dev/null +++ b/test/030_move/531_y2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | y2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/531_y2_solved.out b/test/030_move/531_y2_solved.out new file mode 100644 index 0000000..c876a74 --- /dev/null +++ b/test/030_move/531_y2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=C | |||
diff --git a/test/030_move/532_y3_solved.in b/test/030_move/532_y3_solved.in new file mode 100644 index 0000000..d52024c --- /dev/null +++ b/test/030_move/532_y3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | y3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/532_y3_solved.out b/test/030_move/532_y3_solved.out new file mode 100644 index 0000000..3a5afc2 --- /dev/null +++ b/test/030_move/532_y3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=D | |||
diff --git a/test/030_move/533_z_solved.in b/test/030_move/533_z_solved.in new file mode 100644 index 0000000..af78379 --- /dev/null +++ b/test/030_move/533_z_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | z | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/533_z_solved.out b/test/030_move/533_z_solved.out new file mode 100644 index 0000000..9267695 --- /dev/null +++ b/test/030_move/533_z_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=M | |||
diff --git a/test/030_move/534_z2_solved.in b/test/030_move/534_z2_solved.in new file mode 100644 index 0000000..2f702a1 --- /dev/null +++ b/test/030_move/534_z2_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | z2 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/534_z2_solved.out b/test/030_move/534_z2_solved.out new file mode 100644 index 0000000..94daec7 --- /dev/null +++ b/test/030_move/534_z2_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=E | |||
diff --git a/test/030_move/535_z3_solved.in b/test/030_move/535_z3_solved.in new file mode 100644 index 0000000..f697279 --- /dev/null +++ b/test/030_move/535_z3_solved.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | z3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=A | ||
diff --git a/test/030_move/535_z3_solved.out b/test/030_move/535_z3_solved.out new file mode 100644 index 0000000..fd02d56 --- /dev/null +++ b/test/030_move/535_z3_solved.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=I | |||
diff --git a/test/030_move/550_scrambled_random.in b/test/030_move/550_scrambled_random.in new file mode 100644 index 0000000..35cd8bd --- /dev/null +++ b/test/030_move/550_scrambled_random.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | R2 Uw F x Bw2 M' y2 z S3 | ||
| 2 | ABCDEFGH=ABCDEFGHIJKL=F | ||
diff --git a/test/030_move/550_scrambled_random.out b/test/030_move/550_scrambled_random.out new file mode 100644 index 0000000..b3f81b0 --- /dev/null +++ b/test/030_move/550_scrambled_random.out | |||
| @@ -0,0 +1 @@ | |||
| WTCEAFJP=TXWRLKQUJVIS=C | |||
diff --git a/test/032_countmoves/00_empty.in b/test/032_countmoves/00_empty.in new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/test/032_countmoves/00_empty.in | |||
| @@ -0,0 +1 @@ | |||
diff --git a/test/032_countmoves/00_empty.out b/test/032_countmoves/00_empty.out new file mode 100644 index 0000000..573541a --- /dev/null +++ b/test/032_countmoves/00_empty.out | |||
| @@ -0,0 +1 @@ | |||
| 0 | |||
diff --git a/test/032_countmoves/01_U.in b/test/032_countmoves/01_U.in new file mode 100644 index 0000000..765140b --- /dev/null +++ b/test/032_countmoves/01_U.in | |||
| @@ -0,0 +1 @@ | |||
| U | |||
diff --git a/test/032_countmoves/01_U.out b/test/032_countmoves/01_U.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/test/032_countmoves/01_U.out | |||
| @@ -0,0 +1 @@ | |||
| 1 | |||
diff --git a/test/032_countmoves/02_Fw3.in b/test/032_countmoves/02_Fw3.in new file mode 100644 index 0000000..699e64c --- /dev/null +++ b/test/032_countmoves/02_Fw3.in | |||
| @@ -0,0 +1 @@ | |||
| Fw' | |||
diff --git a/test/032_countmoves/02_Fw3.out b/test/032_countmoves/02_Fw3.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/test/032_countmoves/02_Fw3.out | |||
| @@ -0,0 +1 @@ | |||
| 1 | |||
diff --git a/test/032_countmoves/03_S2.in b/test/032_countmoves/03_S2.in new file mode 100644 index 0000000..778c8ff --- /dev/null +++ b/test/032_countmoves/03_S2.in | |||
| @@ -0,0 +1 @@ | |||
| S2 | |||
diff --git a/test/032_countmoves/03_S2.out b/test/032_countmoves/03_S2.out new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/test/032_countmoves/03_S2.out | |||
| @@ -0,0 +1 @@ | |||
| 2 | |||
diff --git a/test/032_countmoves/04_y3.in b/test/032_countmoves/04_y3.in new file mode 100644 index 0000000..b536014 --- /dev/null +++ b/test/032_countmoves/04_y3.in | |||
| @@ -0,0 +1 @@ | |||
| y' | |||
diff --git a/test/032_countmoves/04_y3.out b/test/032_countmoves/04_y3.out new file mode 100644 index 0000000..573541a --- /dev/null +++ b/test/032_countmoves/04_y3.out | |||
| @@ -0,0 +1 @@ | |||
| 0 | |||
diff --git a/test/032_countmoves/countmoves_tests.c b/test/032_countmoves/countmoves_tests.c new file mode 100644 index 0000000..b2c9946 --- /dev/null +++ b/test/032_countmoves/countmoves_tests.c | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | #include "../test.h" | ||
| 2 | |||
| 3 | int64_t countmoves(const char *); | ||
| 4 | |||
| 5 | void run(void) { | ||
| 6 | char movestr[STRLENMAX]; | ||
| 7 | |||
| 8 | fgets(movestr, STRLENMAX, stdin); | ||
| 9 | |||
| 10 | printf("%" PRId64 "\n", countmoves(movestr)); | ||
| 11 | } | ||
diff --git a/test/062_transform_move/transform_move_tests.c b/test/062_transform_move/transform_move_tests.c index 4f554c7..39e8619 100644 --- a/test/062_transform_move/transform_move_tests.c +++ b/test/062_transform_move/transform_move_tests.c | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | cube_t applytrans(cube_t, const char *); | 5 | cube_t applytrans(cube_t, const char *); |
| 6 | uint8_t transform_move(uint8_t, uint8_t); | 6 | uint8_t transform_move(uint8_t, uint8_t); |
| 7 | int64_t readmoves(const char *, size_t n, uint8_t [n]); | 7 | int64_t readmoves(const char *, size_t n, uint8_t [n]); |
| 8 | cube_t move(cube_t, uint8_t); | 8 | oriented_cube_t move_extended(oriented_cube_t, uint8_t); |
| 9 | oriented_cube_t applymoves(oriented_cube_t, const char *); | 9 | oriented_cube_t applymoves(oriented_cube_t, const char *); |
| 10 | uint8_t readtrans(const char[static NISSY_SIZE_TRANSFORMATION]); | 10 | uint8_t readtrans(const char[static NISSY_SIZE_TRANSFORMATION]); |
| 11 | 11 | ||
| @@ -22,7 +22,7 @@ void run(void) { | |||
| 22 | n = readmoves(movestr, MAXMOVES, moves); | 22 | n = readmoves(movestr, MAXMOVES, moves); |
| 23 | t = readtrans(transtr); | 23 | t = readtrans(transtr); |
| 24 | for (i = 0; i < n; i++) | 24 | for (i = 0; i < n; i++) |
| 25 | cube.cube = move(cube.cube, transform_move(moves[i], t)); | 25 | cube = move_extended(cube, transform_move(moves[i], t)); |
| 26 | 26 | ||
| 27 | writecube(cube, STRLENMAX, cubestr); | 27 | writecube(cube, STRLENMAX, cubestr); |
| 28 | printf("%s\n", cubestr); | 28 | printf("%s\n", cubestr); |
diff --git a/utils/cubes/move_18_Uw.txt b/utils/cubes/move_18_Uw.txt new file mode 100644 index 0000000..fc08019 --- /dev/null +++ b/utils/cubes/move_18_Uw.txt | |||
| @@ -0,0 +1 @@ | |||
| ABHGEFCD=ABHGEFCDIJKL=B | |||
diff --git a/utils/cubes/move_19_Uw2.txt b/utils/cubes/move_19_Uw2.txt new file mode 100644 index 0000000..eb734e6 --- /dev/null +++ b/utils/cubes/move_19_Uw2.txt | |||
| @@ -0,0 +1 @@ | |||
| ABDCEFHG=ABDCEFHGIJKL=C | |||
diff --git a/utils/cubes/move_20_Uw3.txt b/utils/cubes/move_20_Uw3.txt new file mode 100644 index 0000000..6724a49 --- /dev/null +++ b/utils/cubes/move_20_Uw3.txt | |||
| @@ -0,0 +1 @@ | |||
| ABGHEFDC=ABGHEFDCIJKL=D | |||
diff --git a/utils/cubes/move_21_Dw.txt b/utils/cubes/move_21_Dw.txt new file mode 100644 index 0000000..f554f31 --- /dev/null +++ b/utils/cubes/move_21_Dw.txt | |||
| @@ -0,0 +1 @@ | |||
| FECDABGH=EFCDBAGHIJKL=D | |||
diff --git a/utils/cubes/move_22_Dw2.txt b/utils/cubes/move_22_Dw2.txt new file mode 100644 index 0000000..51c13ad --- /dev/null +++ b/utils/cubes/move_22_Dw2.txt | |||
| @@ -0,0 +1 @@ | |||
| BACDFEGH=BACDFEGHIJKL=C | |||
diff --git a/utils/cubes/move_23_Dw3.txt b/utils/cubes/move_23_Dw3.txt new file mode 100644 index 0000000..b842e86 --- /dev/null +++ b/utils/cubes/move_23_Dw3.txt | |||
| @@ -0,0 +1 @@ | |||
| EFCDBAGH=FECDABGHIJKL=B | |||
diff --git a/utils/cubes/move_24_Rw.txt b/utils/cubes/move_24_Rw.txt new file mode 100644 index 0000000..853c85d --- /dev/null +++ b/utils/cubes/move_24_Rw.txt | |||
| @@ -0,0 +1 @@ | |||
| AXUDJFGK=ABCDEKJHIFGL=Q | |||
diff --git a/utils/cubes/move_25_Rw2.txt b/utils/cubes/move_25_Rw2.txt new file mode 100644 index 0000000..f89caca --- /dev/null +++ b/utils/cubes/move_25_Rw2.txt | |||
| @@ -0,0 +1 @@ | |||
| ACBDHFGE=ABCDEGFHIKJL=G | |||
diff --git a/utils/cubes/move_26_Rw3.txt b/utils/cubes/move_26_Rw3.txt new file mode 100644 index 0000000..38ae9a9 --- /dev/null +++ b/utils/cubes/move_26_Rw3.txt | |||
| @@ -0,0 +1 @@ | |||
| AUXDKFGJ=ABCDEJKHIGFL=W | |||
diff --git a/utils/cubes/move_27_Lw.txt b/utils/cubes/move_27_Lw.txt new file mode 100644 index 0000000..b588134 --- /dev/null +++ b/utils/cubes/move_27_Lw.txt | |||
| @@ -0,0 +1 @@ | |||
| WBCVEILH=ABCDIFGLHJKE=W | |||
diff --git a/utils/cubes/move_28_Lw2.txt b/utils/cubes/move_28_Lw2.txt new file mode 100644 index 0000000..9d468db --- /dev/null +++ b/utils/cubes/move_28_Lw2.txt | |||
| @@ -0,0 +1 @@ | |||
| DBCAEGFH=ABCDHFGELJKI=G | |||
diff --git a/utils/cubes/move_29_Lw3.txt b/utils/cubes/move_29_Lw3.txt new file mode 100644 index 0000000..d4f17bb --- /dev/null +++ b/utils/cubes/move_29_Lw3.txt | |||
| @@ -0,0 +1 @@ | |||
| VBCWELIH=ABCDLFGIEJKH=Q | |||
diff --git a/utils/cubes/move_30_Fw.txt b/utils/cubes/move_30_Fw.txt new file mode 100644 index 0000000..966f275 --- /dev/null +++ b/utils/cubes/move_30_Fw.txt | |||
| @@ -0,0 +1 @@ | |||
| ANCPETGR=AbaDEFGHIJRS=M | |||
diff --git a/utils/cubes/move_31_Fw2.txt b/utils/cubes/move_31_Fw2.txt new file mode 100644 index 0000000..06c3560 --- /dev/null +++ b/utils/cubes/move_31_Fw2.txt | |||
| @@ -0,0 +1 @@ | |||
| ADCBEHGF=ACBDEFGHIJLK=E | |||
diff --git a/utils/cubes/move_32_Fw3.txt b/utils/cubes/move_32_Fw3.txt new file mode 100644 index 0000000..659a09e --- /dev/null +++ b/utils/cubes/move_32_Fw3.txt | |||
| @@ -0,0 +1 @@ | |||
| APCNERGT=AabDEFGHIJSR=I | |||
diff --git a/utils/cubes/move_33_Bw.txt b/utils/cubes/move_33_Bw.txt new file mode 100644 index 0000000..28af170 --- /dev/null +++ b/utils/cubes/move_33_Bw.txt | |||
| @@ -0,0 +1 @@ | |||
| MBODSFQH=ZBCYEFGHQTKL=I | |||
diff --git a/utils/cubes/move_34_Bw2.txt b/utils/cubes/move_34_Bw2.txt new file mode 100644 index 0000000..43b400d --- /dev/null +++ b/utils/cubes/move_34_Bw2.txt | |||
| @@ -0,0 +1 @@ | |||
| CBADGFEH=DBCAEFGHJIKL=E | |||
diff --git a/utils/cubes/move_35_Bw3.txt b/utils/cubes/move_35_Bw3.txt new file mode 100644 index 0000000..e10aaf5 --- /dev/null +++ b/utils/cubes/move_35_Bw3.txt | |||
| @@ -0,0 +1 @@ | |||
| OBMDQFSH=YBCZEFGHTQKL=M | |||
diff --git a/utils/cubes/move_36_M.txt b/utils/cubes/move_36_M.txt new file mode 100644 index 0000000..6b28216 --- /dev/null +++ b/utils/cubes/move_36_M.txt | |||
| @@ -0,0 +1 @@ | |||
| WUXVKILJ=ABCDIJKLHGFE=W | |||
diff --git a/utils/cubes/move_37_M2.txt b/utils/cubes/move_37_M2.txt new file mode 100644 index 0000000..e28cb4e --- /dev/null +++ b/utils/cubes/move_37_M2.txt | |||
| @@ -0,0 +1 @@ | |||
| DCBAHGFE=ABCDHGFELKJI=G | |||
diff --git a/utils/cubes/move_38_M3.txt b/utils/cubes/move_38_M3.txt new file mode 100644 index 0000000..1d47a15 --- /dev/null +++ b/utils/cubes/move_38_M3.txt | |||
| @@ -0,0 +1 @@ | |||
| VXUWJLIK=ABCDLKJIEFGH=Q | |||
diff --git a/utils/cubes/move_39_S.txt b/utils/cubes/move_39_S.txt new file mode 100644 index 0000000..e405a29 --- /dev/null +++ b/utils/cubes/move_39_S.txt | |||
| @@ -0,0 +1 @@ | |||
| ONMPQTSR=YbaZEFGHTQRS=M | |||
diff --git a/utils/cubes/move_40_S2.txt b/utils/cubes/move_40_S2.txt new file mode 100644 index 0000000..85245c3 --- /dev/null +++ b/utils/cubes/move_40_S2.txt | |||
| @@ -0,0 +1 @@ | |||
| CDABGHEF=DCBAEFGHJILK=E | |||
diff --git a/utils/cubes/move_41_S3.txt b/utils/cubes/move_41_S3.txt new file mode 100644 index 0000000..ac53534 --- /dev/null +++ b/utils/cubes/move_41_S3.txt | |||
| @@ -0,0 +1 @@ | |||
| MPONSRQT=ZabYEFGHQTSR=I | |||
diff --git a/utils/cubes/move_42_E.txt b/utils/cubes/move_42_E.txt new file mode 100644 index 0000000..54fcf98 --- /dev/null +++ b/utils/cubes/move_42_E.txt | |||
| @@ -0,0 +1 @@ | |||
| FEGHABDC=EFGHBADCIJKL=D | |||
diff --git a/utils/cubes/move_43_E2.txt b/utils/cubes/move_43_E2.txt new file mode 100644 index 0000000..330a390 --- /dev/null +++ b/utils/cubes/move_43_E2.txt | |||
| @@ -0,0 +1 @@ | |||
| BADCFEHG=BADCFEHGIJKL=C | |||
diff --git a/utils/cubes/move_44_E3.txt b/utils/cubes/move_44_E3.txt new file mode 100644 index 0000000..cb55358 --- /dev/null +++ b/utils/cubes/move_44_E3.txt | |||
| @@ -0,0 +1 @@ | |||
| EFHGBACD=FEHGABCDIJKL=B | |||
diff --git a/utils/cubes/move_45_x.txt b/utils/cubes/move_45_x.txt new file mode 100644 index 0000000..29fefad --- /dev/null +++ b/utils/cubes/move_45_x.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=Q | |||
diff --git a/utils/cubes/move_46_x2.txt b/utils/cubes/move_46_x2.txt new file mode 100644 index 0000000..cebf79a --- /dev/null +++ b/utils/cubes/move_46_x2.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=G | |||
diff --git a/utils/cubes/move_47_x3.txt b/utils/cubes/move_47_x3.txt new file mode 100644 index 0000000..2449874 --- /dev/null +++ b/utils/cubes/move_47_x3.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=W | |||
diff --git a/utils/cubes/move_48_y.txt b/utils/cubes/move_48_y.txt new file mode 100644 index 0000000..4749dd6 --- /dev/null +++ b/utils/cubes/move_48_y.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=B | |||
diff --git a/utils/cubes/move_49_y2.txt b/utils/cubes/move_49_y2.txt new file mode 100644 index 0000000..c876a74 --- /dev/null +++ b/utils/cubes/move_49_y2.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=C | |||
diff --git a/utils/cubes/move_50_y3.txt b/utils/cubes/move_50_y3.txt new file mode 100644 index 0000000..3a5afc2 --- /dev/null +++ b/utils/cubes/move_50_y3.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=D | |||
diff --git a/utils/cubes/move_51_z.txt b/utils/cubes/move_51_z.txt new file mode 100644 index 0000000..9267695 --- /dev/null +++ b/utils/cubes/move_51_z.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=M | |||
diff --git a/utils/cubes/move_52_z2.txt b/utils/cubes/move_52_z2.txt new file mode 100644 index 0000000..94daec7 --- /dev/null +++ b/utils/cubes/move_52_z2.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=E | |||
diff --git a/utils/cubes/move_53_z3.txt b/utils/cubes/move_53_z3.txt new file mode 100644 index 0000000..fd02d56 --- /dev/null +++ b/utils/cubes/move_53_z3.txt | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=I | |||
diff --git a/utils/extended_trans/500_DLr_Uw.in b/utils/extended_trans/500_DLr_Uw.in new file mode 100644 index 0000000..c35f54e --- /dev/null +++ b/utils/extended_trans/500_DLr_Uw.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | rotation DL | ||
| 2 | Uw | ||
diff --git a/utils/extended_trans/500_DLr_Uw.out b/utils/extended_trans/500_DLr_Uw.out new file mode 100644 index 0000000..f554f31 --- /dev/null +++ b/utils/extended_trans/500_DLr_Uw.out | |||
| @@ -0,0 +1 @@ | |||
| FECDABGH=EFCDBAGHIJKL=D | |||
diff --git a/utils/extended_trans/501_RBr_Lw3.in b/utils/extended_trans/501_RBr_Lw3.in new file mode 100644 index 0000000..37b6387 --- /dev/null +++ b/utils/extended_trans/501_RBr_Lw3.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | rotation RB | ||
| 2 | Lw3 | ||
diff --git a/utils/extended_trans/501_RBr_Lw3.out b/utils/extended_trans/501_RBr_Lw3.out new file mode 100644 index 0000000..f554f31 --- /dev/null +++ b/utils/extended_trans/501_RBr_Lw3.out | |||
| @@ -0,0 +1 @@ | |||
| FECDABGH=EFCDBAGHIJKL=D | |||
diff --git a/utils/extended_trans/502_FLm_Fw.in b/utils/extended_trans/502_FLm_Fw.in new file mode 100644 index 0000000..a5e9490 --- /dev/null +++ b/utils/extended_trans/502_FLm_Fw.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | mirrored FL | ||
| 2 | Fw | ||
diff --git a/utils/extended_trans/502_FLm_Fw.out b/utils/extended_trans/502_FLm_Fw.out new file mode 100644 index 0000000..38ae9a9 --- /dev/null +++ b/utils/extended_trans/502_FLm_Fw.out | |||
| @@ -0,0 +1 @@ | |||
| AUXDKFGJ=ABCDEJKHIGFL=W | |||
diff --git a/utils/extended_trans/600_BDr_M3.in b/utils/extended_trans/600_BDr_M3.in new file mode 100644 index 0000000..d052bb1 --- /dev/null +++ b/utils/extended_trans/600_BDr_M3.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | rotation BD | ||
| 2 | M' | ||
diff --git a/utils/extended_trans/600_BDr_M3.out b/utils/extended_trans/600_BDr_M3.out new file mode 100644 index 0000000..6b28216 --- /dev/null +++ b/utils/extended_trans/600_BDr_M3.out | |||
| @@ -0,0 +1 @@ | |||
| WUXVKILJ=ABCDIJKLHGFE=W | |||
diff --git a/utils/extended_trans/601_LDm_E.in b/utils/extended_trans/601_LDm_E.in new file mode 100644 index 0000000..f736905 --- /dev/null +++ b/utils/extended_trans/601_LDm_E.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | mirrored LD | ||
| 2 | E | ||
diff --git a/utils/extended_trans/601_LDm_E.out b/utils/extended_trans/601_LDm_E.out new file mode 100644 index 0000000..1d47a15 --- /dev/null +++ b/utils/extended_trans/601_LDm_E.out | |||
| @@ -0,0 +1 @@ | |||
| VXUWJLIK=ABCDLKJIEFGH=Q | |||
diff --git a/utils/extended_trans/602_FDm_S.in b/utils/extended_trans/602_FDm_S.in new file mode 100644 index 0000000..b46af81 --- /dev/null +++ b/utils/extended_trans/602_FDm_S.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | mirrored FD | ||
| 2 | S | ||
diff --git a/utils/extended_trans/602_FDm_S.out b/utils/extended_trans/602_FDm_S.out new file mode 100644 index 0000000..cb55358 --- /dev/null +++ b/utils/extended_trans/602_FDm_S.out | |||
| @@ -0,0 +1 @@ | |||
| EFHGBACD=FEHGABCDIJKL=B | |||
diff --git a/utils/extended_trans/700_FRr_x.in b/utils/extended_trans/700_FRr_x.in new file mode 100644 index 0000000..03bfc14 --- /dev/null +++ b/utils/extended_trans/700_FRr_x.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | rotation FR | ||
| 2 | x | ||
diff --git a/utils/extended_trans/700_FRr_x.out b/utils/extended_trans/700_FRr_x.out new file mode 100644 index 0000000..4749dd6 --- /dev/null +++ b/utils/extended_trans/700_FRr_x.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=B | |||
diff --git a/utils/extended_trans/701_BDm_z3.in b/utils/extended_trans/701_BDm_z3.in new file mode 100644 index 0000000..2a89815 --- /dev/null +++ b/utils/extended_trans/701_BDm_z3.in | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | mirrored BD | ||
| 2 | z3 | ||
diff --git a/utils/extended_trans/701_BDm_z3.out b/utils/extended_trans/701_BDm_z3.out new file mode 100644 index 0000000..3a5afc2 --- /dev/null +++ b/utils/extended_trans/701_BDm_z3.out | |||
| @@ -0,0 +1 @@ | |||
| ABCDEFGH=ABCDEFGHIJKL=D | |||
diff --git a/utils/extended_trans/README b/utils/extended_trans/README new file mode 100644 index 0000000..79af390 --- /dev/null +++ b/utils/extended_trans/README | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | This folder contains test files for 062_transform_move. | ||
| 2 | They are not currently used. | ||
| 3 | They have not been tested, so they may be wrong. | ||
