cube-state-engine 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,649 +0,0 @@
1
- import { CubeEngine, COLOR } from "../src/index.js";
2
-
3
- test("spawn a cube", () => {
4
- const virtualization = new CubeEngine();
5
- const state = virtualization.state();
6
- const result = {
7
- UPPER: [
8
- [COLOR.W[0], COLOR.W[1], COLOR.W[2]],
9
- [COLOR.W[3], COLOR.W[4], COLOR.W[5]],
10
- [COLOR.W[6], COLOR.W[7], COLOR.W[8]],
11
- ],
12
- LEFT: [
13
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
14
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
15
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
16
- ],
17
- FRONT: [
18
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
19
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
20
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
21
- ],
22
- RIGHT: [
23
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
24
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
25
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
26
- ],
27
- BACK: [
28
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
29
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
30
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
31
- ],
32
- DOWN: [
33
- [COLOR.Y[0], COLOR.Y[1], COLOR.Y[2]],
34
- [COLOR.Y[3], COLOR.Y[4], COLOR.Y[5]],
35
- [COLOR.Y[6], COLOR.Y[7], COLOR.Y[8]],
36
- ],
37
- };
38
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
39
- });
40
-
41
- test("ROTATE U", () => {
42
- const virtualization = new CubeEngine();
43
- virtualization.rotateU();
44
- const state = virtualization.state();
45
- const result = {
46
- UPPER: [
47
- [COLOR.W[6], COLOR.W[3], COLOR.W[0]],
48
- [COLOR.W[7], COLOR.W[4], COLOR.W[1]],
49
- [COLOR.W[8], COLOR.W[5], COLOR.W[2]],
50
- ],
51
- LEFT: [
52
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
53
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
54
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
55
- ],
56
- FRONT: [
57
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
58
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
59
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
60
- ],
61
- RIGHT: [
62
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
63
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
64
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
65
- ],
66
- BACK: [
67
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
68
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
69
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
70
- ],
71
- DOWN: [
72
- [COLOR.Y[0], COLOR.Y[1], COLOR.Y[2]],
73
- [COLOR.Y[3], COLOR.Y[4], COLOR.Y[5]],
74
- [COLOR.Y[6], COLOR.Y[7], COLOR.Y[8]],
75
- ],
76
- };
77
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
78
- });
79
-
80
- test("ROTATE U'", () => {
81
- const virtualization = new CubeEngine();
82
- virtualization.rotateU(false);
83
- const state = virtualization.state();
84
- const result = {
85
- UPPER: [
86
- [COLOR.W[2], COLOR.W[5], COLOR.W[8]],
87
- [COLOR.W[1], COLOR.W[4], COLOR.W[7]],
88
- [COLOR.W[0], COLOR.W[3], COLOR.W[6]],
89
- ],
90
- LEFT: [
91
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
92
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
93
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
94
- ],
95
- FRONT: [
96
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
97
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
98
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
99
- ],
100
- RIGHT: [
101
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
102
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
103
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
104
- ],
105
- BACK: [
106
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
107
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
108
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
109
- ],
110
- DOWN: [
111
- [COLOR.Y[0], COLOR.Y[1], COLOR.Y[2]],
112
- [COLOR.Y[3], COLOR.Y[4], COLOR.Y[5]],
113
- [COLOR.Y[6], COLOR.Y[7], COLOR.Y[8]],
114
- ],
115
- };
116
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
117
- });
118
-
119
- test("ROTATE F", () => {
120
- const virtualization = new CubeEngine();
121
- virtualization.rotateF(true);
122
- const state = virtualization.state();
123
- const result = {
124
- UPPER: [
125
- [COLOR.W[0], COLOR.W[1], COLOR.W[2]],
126
- [COLOR.W[3], COLOR.W[4], COLOR.W[5]],
127
- [COLOR.O[8], COLOR.O[5], COLOR.O[2]],
128
- ],
129
- LEFT: [
130
- [COLOR.O[0], COLOR.O[1], COLOR.Y[0]],
131
- [COLOR.O[3], COLOR.O[4], COLOR.Y[1]],
132
- [COLOR.O[6], COLOR.O[7], COLOR.Y[2]],
133
- ],
134
- FRONT: [
135
- [COLOR.G[6], COLOR.G[3], COLOR.G[0]],
136
- [COLOR.G[7], COLOR.G[4], COLOR.G[1]],
137
- [COLOR.G[8], COLOR.G[5], COLOR.G[2]],
138
- ],
139
- RIGHT: [
140
- [COLOR.W[6], COLOR.R[1], COLOR.R[2]],
141
- [COLOR.W[7], COLOR.R[4], COLOR.R[5]],
142
- [COLOR.W[8], COLOR.R[7], COLOR.R[8]],
143
- ],
144
- BACK: [
145
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
146
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
147
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
148
- ],
149
- DOWN: [
150
- [COLOR.R[2], COLOR.R[1], COLOR.R[0]],
151
- [COLOR.Y[3], COLOR.Y[4], COLOR.Y[5]],
152
- [COLOR.Y[6], COLOR.Y[7], COLOR.Y[8]],
153
- ],
154
- };
155
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
156
- });
157
-
158
- test("ROTATE F'", () => {
159
- const virtualization = new CubeEngine();
160
- virtualization.rotateF(false);
161
- const state = virtualization.state();
162
- const result = {
163
- UPPER: [
164
- [COLOR.W[0], COLOR.W[1], COLOR.W[2]],
165
- [COLOR.W[3], COLOR.W[4], COLOR.W[5]],
166
- [COLOR.R[8], COLOR.R[5], COLOR.R[2]],
167
- ],
168
- LEFT: [
169
- [COLOR.O[0], COLOR.O[1], COLOR.W[0]],
170
- [COLOR.O[3], COLOR.O[4], COLOR.W[1]],
171
- [COLOR.O[6], COLOR.O[7], COLOR.W[2]],
172
- ],
173
- FRONT: [
174
- [COLOR.G[6], COLOR.G[3], COLOR.G[0]],
175
- [COLOR.G[7], COLOR.G[4], COLOR.G[1]],
176
- [COLOR.G[8], COLOR.G[5], COLOR.G[2]],
177
- ],
178
- RIGHT: [
179
- [COLOR.Y[6], COLOR.R[1], COLOR.R[2]],
180
- [COLOR.Y[7], COLOR.R[4], COLOR.R[5]],
181
- [COLOR.Y[8], COLOR.R[7], COLOR.R[8]],
182
- ],
183
- BACK: [
184
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
185
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
186
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
187
- ],
188
- DOWN: [
189
- [COLOR.O[2], COLOR.O[1], COLOR.O[0]],
190
- [COLOR.Y[3], COLOR.Y[4], COLOR.Y[5]],
191
- [COLOR.Y[6], COLOR.Y[7], COLOR.Y[8]],
192
- ],
193
- };
194
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
195
- });
196
-
197
- test("ROTATE x", () => {
198
- const virtualization = new CubeEngine();
199
- virtualization.rotateX();
200
- const state = virtualization.state();
201
- const result = {
202
- UPPER: [
203
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
204
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
205
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
206
- ],
207
- LEFT: [
208
- [COLOR.O[2], COLOR.O[5], COLOR.O[8]],
209
- [COLOR.O[1], COLOR.O[4], COLOR.O[7]],
210
- [COLOR.O[0], COLOR.O[3], COLOR.O[6]],
211
- ],
212
- FRONT: [
213
- [COLOR.Y[0], COLOR.Y[1], COLOR.Y[2]],
214
- [COLOR.Y[3], COLOR.Y[4], COLOR.Y[5]],
215
- [COLOR.Y[6], COLOR.Y[7], COLOR.Y[8]],
216
- ],
217
- RIGHT: [
218
- [COLOR.R[6], COLOR.R[3], COLOR.R[0]],
219
- [COLOR.R[7], COLOR.R[4], COLOR.R[1]],
220
- [COLOR.R[8], COLOR.R[5], COLOR.R[2]],
221
- ],
222
- BACK: [
223
- [COLOR.W[8], COLOR.W[7], COLOR.W[6]],
224
- [COLOR.W[5], COLOR.W[4], COLOR.W[3]],
225
- [COLOR.W[2], COLOR.W[1], COLOR.W[0]],
226
- ],
227
- DOWN: [
228
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
229
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
230
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
231
- ],
232
- };
233
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
234
- });
235
-
236
- test("ROTATE x'", () => {
237
- const virtualization = new CubeEngine();
238
- virtualization.rotateX(false);
239
- const state = virtualization.state();
240
- const result = {
241
- UPPER: [
242
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
243
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
244
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
245
- ],
246
- LEFT: [
247
- [COLOR.O[6], COLOR.O[3], COLOR.O[0]],
248
- [COLOR.O[7], COLOR.O[4], COLOR.O[1]],
249
- [COLOR.O[8], COLOR.O[5], COLOR.O[2]],
250
- ],
251
- FRONT: [
252
- [COLOR.W[0], COLOR.W[1], COLOR.W[2]],
253
- [COLOR.W[3], COLOR.W[4], COLOR.W[5]],
254
- [COLOR.W[6], COLOR.W[7], COLOR.W[8]],
255
- ],
256
- RIGHT: [
257
- [COLOR.R[2], COLOR.R[5], COLOR.R[8]],
258
- [COLOR.R[1], COLOR.R[4], COLOR.R[7]],
259
- [COLOR.R[0], COLOR.R[3], COLOR.R[6]],
260
- ],
261
- BACK: [
262
- [COLOR.Y[8], COLOR.Y[7], COLOR.Y[6]],
263
- [COLOR.Y[5], COLOR.Y[4], COLOR.Y[3]],
264
- [COLOR.Y[2], COLOR.Y[1], COLOR.Y[0]],
265
- ],
266
- DOWN: [
267
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
268
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
269
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
270
- ],
271
- };
272
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
273
- });
274
-
275
- test("ROTATE y", () => {
276
- const virtualization = new CubeEngine();
277
- virtualization.rotateY();
278
- const state = virtualization.state();
279
- const result = {
280
- UPPER: [
281
- [COLOR.W[6], COLOR.W[3], COLOR.W[0]],
282
- [COLOR.W[7], COLOR.W[4], COLOR.W[1]],
283
- [COLOR.W[8], COLOR.W[5], COLOR.W[2]],
284
- ],
285
- LEFT: [
286
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
287
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
288
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
289
- ],
290
- FRONT: [
291
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
292
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
293
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
294
- ],
295
- RIGHT: [
296
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
297
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
298
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
299
- ],
300
- BACK: [
301
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
302
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
303
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
304
- ],
305
- DOWN: [
306
- [COLOR.Y[2], COLOR.Y[5], COLOR.Y[8]],
307
- [COLOR.Y[1], COLOR.Y[4], COLOR.Y[7]],
308
- [COLOR.Y[0], COLOR.Y[3], COLOR.Y[6]],
309
- ],
310
- };
311
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
312
- });
313
-
314
- test("ROTATE y'", () => {
315
- const virtualization = new CubeEngine();
316
- virtualization.rotateY(false);
317
- const state = virtualization.state();
318
- const result = {
319
- UPPER: [
320
- [COLOR.W[2], COLOR.W[5], COLOR.W[8]],
321
- [COLOR.W[1], COLOR.W[4], COLOR.W[7]],
322
- [COLOR.W[0], COLOR.W[3], COLOR.W[6]],
323
- ],
324
- LEFT: [
325
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
326
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
327
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
328
- ],
329
- FRONT: [
330
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
331
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
332
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
333
- ],
334
- RIGHT: [
335
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
336
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
337
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
338
- ],
339
- BACK: [
340
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
341
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
342
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
343
- ],
344
- DOWN: [
345
- [COLOR.Y[6], COLOR.Y[3], COLOR.Y[0]],
346
- [COLOR.Y[7], COLOR.Y[4], COLOR.Y[1]],
347
- [COLOR.Y[8], COLOR.Y[5], COLOR.Y[2]],
348
- ],
349
- };
350
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
351
- });
352
-
353
- test("ROTATE R", () => {
354
- const virtualization = new CubeEngine();
355
- virtualization.rotateR(true);
356
- const state = virtualization.state();
357
- const result = {
358
- UPPER: [
359
- [COLOR.W[0], COLOR.W[1], COLOR.G[2]],
360
- [COLOR.W[3], COLOR.W[4], COLOR.G[5]],
361
- [COLOR.W[6], COLOR.W[7], COLOR.G[8]],
362
- ],
363
- LEFT: [
364
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
365
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
366
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
367
- ],
368
- FRONT: [
369
- [COLOR.G[0], COLOR.G[1], COLOR.Y[2]],
370
- [COLOR.G[3], COLOR.G[4], COLOR.Y[5]],
371
- [COLOR.G[6], COLOR.G[7], COLOR.Y[8]],
372
- ],
373
- RIGHT: [
374
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
375
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
376
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
377
- ],
378
- BACK: [
379
- [COLOR.W[0], COLOR.B[1], COLOR.B[2]],
380
- [COLOR.W[3], COLOR.B[4], COLOR.B[5]],
381
- [COLOR.W[6], COLOR.B[7], COLOR.B[8]],
382
- ],
383
- DOWN: [
384
- [COLOR.Y[0], COLOR.Y[1], COLOR.B[2]],
385
- [COLOR.Y[3], COLOR.Y[4], COLOR.B[5]],
386
- [COLOR.Y[6], COLOR.Y[7], COLOR.B[8]],
387
- ],
388
- };
389
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
390
- });
391
-
392
- test("ROTATE R'", () => {
393
- const virtualization = new CubeEngine();
394
- virtualization.rotateR(false);
395
- const state = virtualization.state();
396
- const result = {
397
- UPPER: [
398
- [COLOR.W[0], COLOR.W[1], COLOR.B[2]],
399
- [COLOR.W[3], COLOR.W[4], COLOR.B[5]],
400
- [COLOR.W[6], COLOR.W[7], COLOR.B[8]],
401
- ],
402
- LEFT: [
403
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
404
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
405
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
406
- ],
407
- FRONT: [
408
- [COLOR.G[0], COLOR.G[1], COLOR.W[2]],
409
- [COLOR.G[3], COLOR.G[4], COLOR.W[5]],
410
- [COLOR.G[6], COLOR.G[7], COLOR.W[8]],
411
- ],
412
- RIGHT: [
413
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
414
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
415
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
416
- ],
417
- BACK: [
418
- [COLOR.Y[0], COLOR.B[1], COLOR.B[2]],
419
- [COLOR.Y[3], COLOR.B[4], COLOR.B[5]],
420
- [COLOR.Y[6], COLOR.B[7], COLOR.B[8]],
421
- ],
422
- DOWN: [
423
- [COLOR.Y[0], COLOR.Y[1], COLOR.G[2]],
424
- [COLOR.Y[3], COLOR.Y[4], COLOR.G[5]],
425
- [COLOR.Y[6], COLOR.Y[7], COLOR.G[8]],
426
- ],
427
- };
428
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
429
- });
430
-
431
- test("ROTATE L", () => {
432
- const virtualization = new CubeEngine();
433
- virtualization.rotateL(true);
434
- const state = virtualization.state();
435
- const result = {
436
- UPPER: [
437
- [COLOR.B[0], COLOR.W[1], COLOR.W[2]],
438
- [COLOR.B[3], COLOR.W[4], COLOR.W[5]],
439
- [COLOR.B[6], COLOR.W[7], COLOR.W[8]],
440
- ],
441
- LEFT: [
442
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
443
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
444
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
445
- ],
446
- FRONT: [
447
- [COLOR.W[0], COLOR.G[1], COLOR.G[2]],
448
- [COLOR.W[3], COLOR.G[4], COLOR.G[5]],
449
- [COLOR.W[6], COLOR.G[7], COLOR.G[8]],
450
- ],
451
- RIGHT: [
452
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
453
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
454
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
455
- ],
456
- BACK: [
457
- [COLOR.B[0], COLOR.B[1], COLOR.Y[2]],
458
- [COLOR.B[3], COLOR.B[4], COLOR.Y[5]],
459
- [COLOR.B[6], COLOR.B[7], COLOR.Y[8]],
460
- ],
461
- DOWN: [
462
- [COLOR.G[0], COLOR.Y[1], COLOR.Y[2]],
463
- [COLOR.G[3], COLOR.Y[4], COLOR.Y[5]],
464
- [COLOR.G[6], COLOR.Y[7], COLOR.Y[8]],
465
- ],
466
- };
467
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
468
- });
469
-
470
- test("ROTATE L'", () => {
471
- const virtualization = new CubeEngine();
472
- virtualization.rotateL(false);
473
- const state = virtualization.state();
474
- const result = {
475
- UPPER: [
476
- [COLOR.G[0], COLOR.W[1], COLOR.W[2]],
477
- [COLOR.G[3], COLOR.W[4], COLOR.W[5]],
478
- [COLOR.G[6], COLOR.W[7], COLOR.W[8]],
479
- ],
480
- LEFT: [
481
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
482
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
483
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
484
- ],
485
- FRONT: [
486
- [COLOR.Y[0], COLOR.G[1], COLOR.G[2]],
487
- [COLOR.Y[3], COLOR.G[4], COLOR.G[5]],
488
- [COLOR.Y[6], COLOR.G[7], COLOR.G[8]],
489
- ],
490
- RIGHT: [
491
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
492
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
493
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
494
- ],
495
- BACK: [
496
- [COLOR.B[0], COLOR.B[1], COLOR.W[2]],
497
- [COLOR.B[3], COLOR.B[4], COLOR.W[5]],
498
- [COLOR.B[6], COLOR.B[7], COLOR.W[8]],
499
- ],
500
- DOWN: [
501
- [COLOR.B[0], COLOR.Y[1], COLOR.Y[2]],
502
- [COLOR.B[3], COLOR.Y[4], COLOR.Y[5]],
503
- [COLOR.B[6], COLOR.Y[7], COLOR.Y[8]],
504
- ],
505
- };
506
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
507
- });
508
-
509
- test("ROTATE D", () => {
510
- const virtualization = new CubeEngine();
511
- virtualization.rotateD(true);
512
- const state = virtualization.state();
513
- const result = {
514
- UPPER: [
515
- [COLOR.W[0], COLOR.W[1], COLOR.W[2]],
516
- [COLOR.W[3], COLOR.W[4], COLOR.W[5]],
517
- [COLOR.W[6], COLOR.W[7], COLOR.W[8]],
518
- ],
519
- LEFT: [
520
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
521
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
522
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
523
- ],
524
- FRONT: [
525
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
526
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
527
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
528
- ],
529
- RIGHT: [
530
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
531
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
532
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
533
- ],
534
- BACK: [
535
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
536
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
537
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
538
- ],
539
- DOWN: [
540
- [COLOR.Y[0], COLOR.Y[1], COLOR.Y[2]],
541
- [COLOR.Y[3], COLOR.Y[4], COLOR.Y[5]],
542
- [COLOR.Y[6], COLOR.Y[7], COLOR.Y[8]],
543
- ],
544
- };
545
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
546
- });
547
-
548
- test("ROTATE D'", () => {
549
- const virtualization = new CubeEngine();
550
- virtualization.rotateD(false);
551
- const state = virtualization.state();
552
- const result = {
553
- UPPER: [
554
- [COLOR.W[0], COLOR.W[1], COLOR.W[2]],
555
- [COLOR.W[3], COLOR.W[4], COLOR.W[5]],
556
- [COLOR.W[6], COLOR.W[7], COLOR.W[8]],
557
- ],
558
- LEFT: [
559
- [COLOR.O[0], COLOR.O[1], COLOR.O[2]],
560
- [COLOR.O[3], COLOR.O[4], COLOR.O[5]],
561
- [COLOR.G[6], COLOR.G[7], COLOR.G[8]],
562
- ],
563
- FRONT: [
564
- [COLOR.G[0], COLOR.G[1], COLOR.G[2]],
565
- [COLOR.G[3], COLOR.G[4], COLOR.G[5]],
566
- [COLOR.R[6], COLOR.R[7], COLOR.R[8]],
567
- ],
568
- RIGHT: [
569
- [COLOR.R[0], COLOR.R[1], COLOR.R[2]],
570
- [COLOR.R[3], COLOR.R[4], COLOR.R[5]],
571
- [COLOR.B[6], COLOR.B[7], COLOR.B[8]],
572
- ],
573
- BACK: [
574
- [COLOR.B[0], COLOR.B[1], COLOR.B[2]],
575
- [COLOR.B[3], COLOR.B[4], COLOR.B[5]],
576
- [COLOR.O[6], COLOR.O[7], COLOR.O[8]],
577
- ],
578
- DOWN: [
579
- [COLOR.Y[0], COLOR.Y[1], COLOR.Y[2]],
580
- [COLOR.Y[3], COLOR.Y[4], COLOR.Y[5]],
581
- [COLOR.Y[6], COLOR.Y[7], COLOR.Y[8]],
582
- ],
583
- };
584
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
585
- });
586
-
587
- test("U' U L R D' F L F' x' L D y' U' L D y' R D y' L x L D y' L F", () => {
588
- const virtualization = new CubeEngine();
589
- virtualization.rotateU(false);
590
- virtualization.rotateU();
591
- virtualization.rotateL();
592
- virtualization.rotateR();
593
- virtualization.rotateD(false);
594
- virtualization.rotateF();
595
- virtualization.rotateL();
596
- virtualization.rotateF(false);
597
- virtualization.rotateX(false);
598
- virtualization.rotateL();
599
- virtualization.rotateD();
600
- virtualization.rotateY(false);
601
- virtualization.rotateU(false);
602
- virtualization.rotateL();
603
- virtualization.rotateD();
604
- virtualization.rotateY(false);
605
- virtualization.rotateR();
606
- virtualization.rotateD();
607
- virtualization.rotateY(false);
608
- virtualization.rotateL();
609
- virtualization.rotateX();
610
- virtualization.rotateL();
611
- virtualization.rotateD();
612
- virtualization.rotateY(false);
613
- virtualization.rotateL();
614
- virtualization.rotateF();
615
- const state = virtualization.state();
616
- const result = {
617
- UPPER: [
618
- [COLOR.O[0], COLOR.Y[1], COLOR.W[2]],
619
- [COLOR.Y[3], COLOR.R[4], COLOR.O[5]],
620
- [COLOR.O[6], COLOR.B[7], COLOR.G[8]],
621
- ],
622
- LEFT: [
623
- [COLOR.W[0], COLOR.B[1], COLOR.Y[2]],
624
- [COLOR.O[3], COLOR.B[4], COLOR.W[5]],
625
- [COLOR.B[6], COLOR.Y[7], COLOR.O[8]],
626
- ],
627
- FRONT: [
628
- [COLOR.G[0], COLOR.W[1], COLOR.Y[2]],
629
- [COLOR.R[3], COLOR.W[4], COLOR.O[5]],
630
- [COLOR.Y[6], COLOR.B[7], COLOR.G[8]],
631
- ],
632
- RIGHT: [
633
- [COLOR.R[0], COLOR.B[1], COLOR.B[2]],
634
- [COLOR.G[3], COLOR.G[4], COLOR.Y[5]],
635
- [COLOR.W[6], COLOR.G[7], COLOR.B[8]],
636
- ],
637
- BACK: [
638
- [COLOR.O[0], COLOR.R[1], COLOR.G[2]],
639
- [COLOR.O[3], COLOR.Y[4], COLOR.W[5]],
640
- [COLOR.R[6], COLOR.G[7], COLOR.R[8]],
641
- ],
642
- DOWN: [
643
- [COLOR.B[0], COLOR.R[1], COLOR.R[2]],
644
- [COLOR.G[3], COLOR.O[4], COLOR.R[5]],
645
- [COLOR.Y[6], COLOR.W[7], COLOR.W[8]],
646
- ],
647
- };
648
- expect(JSON.stringify(state)).toBe(JSON.stringify(result));
649
- });