Commit cdd1eeae authored by Guillaume CLOCHARD's avatar Guillaume CLOCHARD
Browse files

Merge branch 'tests' into 'master'

Algo.py utilise les jeux de tests générés par cubes.js

On va pouvoir faire des stats sur plus de 150 cubes.

cc @E134636T 

See merge request !27
parents e6b7b7b5 48639386
......@@ -31,9 +31,7 @@ import re
from sys import argv
from Cube import Cube
from lire_entree import lecture_cube
from utils import croix_valide, ftl_valide, cfop_valide, replace_sublist
from test import tableaux_test
SHORTCUTS = "shortcuts.json"
......@@ -1557,76 +1555,85 @@ if __name__ == '__main__':
validiteCfop = "OK" if cfop_valide(c0, mouvements) else "KO"
'''
JEU_TEST = 'tests/samples/liste-sample.json'
import json
from utils import TermColors
tests = tableaux_test()# Fichier test
i = 0
listeMoyenne = [[],[],[],[],[]]
for test in tests:
i += 1
c = Cube()
c.scramble(test)
c0 = c.copy()
c, mouv = cross_facile(c)
validiteCroix = "croix ok" if croix_valide(c) else "CROIX INVALIDE"
c,mouv2 = ftl(c)
validiteFtl = "ftl ok" if ftl_valide(c) else "FTL INVALIDE"
c,mouv3=oll(c)
validiteOll = "oll ok" if c.face_resolue('U') else "OLL INVALIDE"
c,mouv4=pll(c)
validitePll = "pll ok" if c.resolu() else "PLL INVALIDE"
if not c.resolu():
print("Le cube est insolvable")
mouvements = mouv + mouv2 + mouv3 + mouv4
validiteCfop = TermColors.bgGreen + "OK" + TermColors.end \
if cfop_valide(c0, mouvements) \
else TermColors.bgRed + "KO" + TermColors.end
from lire_entree import lecture_cube
with open(JEU_TEST) as data_file: #on parse le jeu de test JSON
data = json.load(data_file)
tests = data['cubes']
i = 0
listeMoyenne = [[],[],[],[],[]]
for test in tests:
i += 1
err, c = lecture_cube(test)
assert(err == False)
c0 = c.copy()
c, mouv = cross_facile(c)
validiteCroix = "croix ok" if croix_valide(c) else "CROIX INVALIDE"
c,mouv2 = ftl(c)
validiteFtl = "ftl ok" if ftl_valide(c) else "FTL INVALIDE"
c,mouv3=oll(c)
validiteOll = "oll ok" if c.face_resolue('U') else "OLL INVALIDE"
c,mouv4=pll(c)
validitePll = "pll ok" if c.resolu() else "PLL INVALIDE"
if not c.resolu():
print("Le cube est insolvable")
mouvements = mouv + mouv2 + mouv3 + mouv4
validiteCfop = TermColors.bgGreen + "OK" + TermColors.end \
if cfop_valide(c0, mouvements) \
else TermColors.bgRed + "KO" + TermColors.end
print(
"{} {} ({}, {}, {}, {}) : {} mvts".format(
validiteCfop, i, validiteCroix, validiteFtl, validiteOll, validitePll,
len(mouvements)
)
)
listeMoyenne[4].append(len(mouv+mouv2+mouv3+mouv4))
listeMoyenne[0].append(len(mouv))
listeMoyenne[1].append(len(mouv2))
listeMoyenne[2].append(len(mouv3))
listeMoyenne[3].append(len(mouv4))
moyenne = lambda x: sum(x) / len(x)
print('\n' + TermColors.bold + 'Moyennes :' + TermColors.end)
print('☞ Croix :', round(moyenne(listeMoyenne[0]), 2))
print('☞ FTL :', round(moyenne(listeMoyenne[1]), 2))
print('☞ OLL :', round(moyenne(listeMoyenne[2]), 2))
print('☞ PLL :', round(moyenne(listeMoyenne[3]), 2))
print(
"{} {} ({}, {}, {}, {}) : {} mvts".format(
validiteCfop, i, validiteCroix, validiteFtl, validiteOll, validitePll,
len(mouvements)
)
'☞ ' + TermColors.bold + 'Total :',
round(moyenne(listeMoyenne[4]), 2),
TermColors.end + '\n'
)
listeMoyenne[4].append(len(mouv+mouv2+mouv3+mouv4))
listeMoyenne[0].append(len(mouv))
listeMoyenne[1].append(len(mouv2))
listeMoyenne[2].append(len(mouv3))
listeMoyenne[3].append(len(mouv4))
moyenne = lambda x: sum(x) / len(x)
print('\n' + TermColors.bold + 'Moyennes :' + TermColors.end)
print('☞ Croix :', round(moyenne(listeMoyenne[0]), 2))
print('☞ FTL :', round(moyenne(listeMoyenne[1]), 2))
print('☞ OLL :', round(moyenne(listeMoyenne[2]), 2))
print('☞ PLL :', round(moyenne(listeMoyenne[3]), 2))
print(
'☞ ' + TermColors.bold + 'Total :',
round(moyenne(listeMoyenne[4]), 2),
TermColors.end + '\n'
)
#Tests insolvabilité
#Voir http://jeays.net/rubiks.htm#unsolvable
tests = [
#One edge piece is flipped in place and all other pieces are correct.
'YYYOYYYYYOYOBBBRRRGGGOOOBBBRRRGGGOOOBBBRRRGGGWWWWWWWWW',
#Two edge pieces need to be swapped and all other pieces are correct.
'YYYYYYYYYOROBBBRORGGGOOOBBBRRRGGGOOOBBBRRRGGGWWWWWWWWW',
#One corner piece needs rotating and all other pieces are correct.
'OYYYYYYYYGOOBBBRRRGGYOOOBBBRRRGGGOOOBBBRRRGGGWWWWWWWWW',
#Two corner pieces need to be swapped and all other pieces are correct.
'YYYYYYYYYROOBBGORRGGBOOOBBBRRRGGGOOOBBBRRRGGGWWWWWWWWW'
]
for t in tests:
err, c = lecture_cube(t)
assert(not err)
err, _ = algo_cfop(c)
print(TermColors.bgGreen + "Insolvable" + TermColors.end, c.to_line())
#Tests insolvabilité
#Voir http://jeays.net/rubiks.htm#unsolvable
tests = [
#One edge piece is flipped in place and all other pieces are correct.
'YYYOYYYYYOYOBBBRRRGGGOOOBBBRRRGGGOOOBBBRRRGGGWWWWWWWWW',
#Two edge pieces need to be swapped and all other pieces are correct.
'YYYYYYYYYOROBBBRORGGGOOOBBBRRRGGGOOOBBBRRRGGGWWWWWWWWW',
#One corner piece needs rotating and all other pieces are correct.
'OYYYYYYYYGOOBBBRRRGGYOOOBBBRRRGGGOOOBBBRRRGGGWWWWWWWWW',
#Two corner pieces need to be swapped and all other pieces are correct.
'YYYYYYYYYROOBBGORRGGBOOOBBBRRRGGGOOOBBBRRRGGGWWWWWWWWW'
]
for t in tests:
err, c = lecture_cube(t)
assert(not err)
err, _ = algo_cfop(c)
print(TermColors.bgGreen + "Insolvable" + TermColors.end, c.to_line())
def tableaux_test() :
#Mouvements générés à l'aide de tnoodle
tests = [
"D B2 D' B2 U2 R2 F2 R2 B2 R2 U F' L B U2 L2 R B U B F'",
"B' D2 B' L2 B' R2 U2 L2 F L2 U F2 L F2 D2 B U L2 F' R",
"L2 F' U2 F2 D2 U2 F' R2 F U' B U2 B R2 F2 L B' R F",
"U F' L2 B2 L F' D' F2 U2 F U' F2 U F2 U F2 D2 L2 B2",
"B2 U' R L2 B L' F2 D L2 D R' B L2 U2 D2 F' D2 F' D2 R2",
"D B2 D' B2 U2 R2 F2 R2 B2 R2 U F' L B U2 L2 R B U B F'",
"B' D2 B' L2 B' R2 U2 L2 F L2 U F2 L F2 D2 B U L2 F' R",
"U F' L2 B2 L F' D' F2 U2 F U' F2 U F2 U F2 D2 L2 B2",
"L2 F' U2 F2 D2 U2 F' R2 F U' B U2 B R2 F2 L B' R F",
"B2 U' R L2 B L' F2 D L2 D R' B L2 U2 D2 F' D2 F' D2 R2",
"D2 B L2 D2 L U' R D2 B D L2 B2 R' F2 R' D2 L F2 L2",
"B2 L2 D B2 D F2 U' B2 U L2 D' F' R D2 L' B' U' L F R2",
"D2 L2 U2 B F D2 F U2 F2 D F R' U R2 U' F' L' R2 F' R",
"L2 D2 F2 R U2 R2 D2 U2 F2 R' F2 U' B D2 L F2 U B R2 B'",
"B' F' U2 B D2 F' L2 D2 U' R B2 F' L D' R2 F' L U B",
"B R2 D2 U2 B2 L2 F' U2 R2 U R B' F2 U' B' U L2 F' U",
"U2 B2 L2 B F2 L2 U2 R' D2 B2 R F' L R' B' F2 R",
"B2 R2 B2 L U2 L2 B2 D2 B' L2 B F2 L' U B2 U2 L D' B",
"L B' U2 B' L' D R' D2 R2 U' F R2 F2 U B2 D2 F2 L2 F2 D'",
"L2 U' R' B' U2 R' D2 B' D' L2 B' L2 F' U2 F2 B2 L2 U2 R2 D2",
"U2 B2 F2 U F2 U2 R2 F D R' U L R D2 L' D' R' B F",
"D R' B U2 R' B' U B U' D' B' L' U2 L2 D2 L' F2 L' U2",
"U2 F2 U' F2 U B2 F2 D' L' U' F2 D2 L2 U2 F' D L F' R2 F",
"D2 F R F B L2 D R' D2 F D F2 R2 F2 U2 B2 R2 D2 R'",
"R' B2 D2 B2 R' D2 R' B2 L2 F' U' L' F L2 U2 F D R2 U B2",
"D2 F2 D L2 R2 B2 U R2 F2 R2 U2 L D' U' L R' B' L B2 D' U'",
"U2 R' F U B R2 U B' L' U2 B2 U B2 U B2 L2 B2 D' F2",
"F2 R F2 L D2 F2 D2 F2 D L R' U2 B2 F' R' U L B",
"D F R2 D' B2 U2 D2 L B D2 F U2 D L2 U2 B2 L2 B2",
"F2 U2 R2 L' B D' L2 U' F' R L U' D2 L2 F2 B2 D2 F2 R2",
"B2 L B2 L' D2 L' F2 D L2 B F' R U' F L2 D' F' U",
"R B' U' B D2 R2 F L2 F2 B' R B2 D L2 B2 U2 B2 U2 R2",
"U' D2 R U2 B D R L' U2 L' F' R' D2 R' U2 R' B2 R' D2 R",
"U' D L2 U' D2 F U L' F2 U R' B2 D L2 B2 U R2 U2 R2",
"R D2 B2 R' F2 D2 R F2 D2 L2 F' U' R U2 B F2 R U R2 D2",
"R' B' R' L F' U2 R' D2 R' U' F' R2 B R2 B2 D2 L2 D2 F' U2",
"D2 F2 D L2 U' R2 U2 F2 L2 B' U L D' B F U' L' R2 F2",
"B2 U2 F2 L2 U2 B D2 U2 B L' F' D L2 B D' B2 F L' R U'",
"R F2 D F' B' D R U' L U2 D L2 F' L2 U2 B R2 B' D2 B2",
"D' R2 D' L2 B2 U' L2 D2 L' B D2 L2 F R2 D L2 B R' B",
"B' R B D F2 R D2 L B2 D' R' D2 R' F2 D2 F2 U2 R' B2 R",
"B2 L U2 R U2 B2 L' B2 F2 R D B R' U B' L2 F' U' F2 R2",
"F2 L' B2 F2 D2 B2 R' F2 R2 U2 F2 U' B' L B2 D' R B D F'",
"F2 R2 D' L' D2 F' L F' U2 B2 D' B2 L B2 L' F2 R",
"D' B2 L2 R2 U' B2 U2 F' L B2 L U' B U2 F2 L2 U' L' U",
"R B2 L' R' D2 B2 R2 B2 R' B' D F2 D' R2 B2 F2 R U B2",
"B2 R2 L2 U D F2 D F L' F2 U2 D2 F2 D' R2 U' F2",
"B' U R L' D2 L U2 D' B' U L' D2 R B2 R2 U2 D2 L F2",
"R2 B' L2 B' U2 F L2 D2 U2 B2 R' D' F D' R' B' L' D' U' L2",
"R2 F2 L2 B' R2 F' U2 B' F' D2 L B2 R' D F R F' L B L'",
"F2 L2 D' L2 U' R2 D2 F' L2 B' F D2 R B2 U B2 U2 L U",
"B2 L2 U L2 D R2 U' R2 B2 L' D2 U2 R' U F L2 F2 U' L U2",
"F2 L2 U2 R' F2 R F2 U2 B2 R' B L2 B' D2 B2 L' D F R2",
"R2 F2 L2 B2 R2 B D2 R2 B' D' L' D' B F L U2 L B' F2",
"F' U' D2 F2 L U' D2 R2 D2 R D' L2 B L2 F U2 F' R2 U2",
"D2 F2 U' R2 D' U2 F2 U2 R U' R2 F2 R B' R2 U' F D'",
"R L2 U B2 D' F2 B' R2 D' R L2 D F2 R2 L2 U' B2 D2 F2 L2",
"R2 D B2 D F2 D L2 F R B' F R2 U' F' L R2 D2",
"B2 L2 D2 L2 F' R2 F2 L U L2 D' U B' L' R2 U B'",
"B' D2 L2 B2 R2 B R2 U2 B2 U R' D' U L U L2 U2 L' U2 F",
"L2 U' B2 U B2 D2 L2 U' R U L F L2 D' L R U F",
"B L2 R2 F2 D2 B' D2 U2 L' R' F D U' R2 D2 F D2 U2",
"F' L' F2 B' R F' U2 R L2 U' F2 B2 D2 R D2 R L2 U2 B2 U2 B2",
"R L U D2 F U D' B U D L' U2 L2 U' B2 U D R2 D' R2 U2",
"R' B' U2 F' R U' F2 R2 B' D L2 U' L2 U' F2 B2 U R2 U B2",
"L' F D' F2 R2 U D' R B D R2 F2 D B2 U2 L2 U' L2",
"U2 B F' U2 F R2 U2 B D2 L D' B F R B L R' U R B2",
"L B2 R F2 L D2 L B2 D B' R2 F L' R' U B R2 F",
"F2 B2 U' B2 U' F' B' D R U' R F2 D2 R' D2 B2 D2 L U2 R'",
"L F L2 U' R2 B' U L2 D R U2 F U2 F D2 B2 U2 L2 F R2",
"L2 U' R2 B2 D' R2 U' L2 B2 U2 L F' L' B' L' B' R' B D' U2",
"D2 L' D2 F2 R2 U2 R2 U2 R D2 B R' U' R' F' L D' U' R' B'",
"F2 D L2 U2 B2 L2 D' B2 U' L2 U' F' L' F D R U B' L2 F2 R",
"B2 L' U' F D B U' B U' B' L F' L2 F2 B L2 D2 F' L2",
"F2 D2 B2 U B2 U2 R2 B2 D' L' U' L' B' F' L' U2 L R2 U2",
"B2 U2 R2 L2 B2 D' L' F' R' U' F U2 L2 B2 L2 F' U2 B2 D2 R2",
"B2 F2 L' U2 R2 D2 R U2 L' F' D L' F U' B2 L B2",
"F2 L' B2 R2 D2 R' B2 L2 R2 B' L R2 B2 U R2 F' L' D' U' L2",
"D2 L' F' U2 F D' F2 U' B' R' D2 R2 U2 L F2 B2 U2 B2 R2",
"B2 D' B2 U' B2 U' B2 D B2 L2 U' L D L2 F' U2 R' F R2 F'",
"U2 R' L' D' R' F R D2 F R F2 R2 F2 L2 B2 D2 L2 U' B2 L2",
"F2 U2 B2 D B2 U' B2 L2 U' B2 F' R' B F U R2 F L' D B' F'",
"B D2 F L' U' F2 R L F' R D2 B2 U2 F L2 F R2 F L2 F",
"F' U2 L' B R2 U R2 U' F' L U2 F' L2 F L2 F2 L2 B2 D2 L2",
"U R L' F' D' R2 D2 B L2 F' U' L2 B2 D R2 D' B2 U2 B2 D2",
"D2 L2 D R2 L' F R' B L U F2 R D2 F2 U2 R2 F2 R' L2 B2",
"D' F L' D' L2 U L D' L F' U' L U2 F2 U2 R2 U2 D2 F2",
"D2 R2 F2 R2 F2 R2 D2 U B' U2 F2 L' F D L2 U' B F' L'",
"U2 L2 B D2 B D2 F' D U L' B' F' L' R2 F2 L U2 B2",
"U2 R2 U2 B' R2 B F' R2 D' B R D U2 B2 L' R D' R2 U",
"R' U' R' D R2 F' U' B' D F2 L' B' R2 L2 B L2 D2 B L2 F",
"U2 F' U' R D' B L U' L F' R F2 D2 L' B2 L2 U2 B2 L' F2",
"F' U2 B' L2 B F2 R2 F2 L' D' F L B R' U B L2 D R",
"L B2 L2 D F2 L2 F' D2 L' U' F L2 B U2 D2 F D2 F2",
"R' U' B2 D F2 R L2 U' F' U2 B U2 R2 D R2 D B2 L2 F2 L2 U2",
"U2 D2 R' D2 R' U F' B' U R F U2 R B2 U2 R L2 U2 R'",
"U2 R2 D' R2 L' B L U2 L2 F2 R' F2 D L2 U' L2 B2 U2",
"L' B U2 D' L U R2 L2 D L D F2 U R2 D' B2 L2 D B2",
"D2 B' L2 D2 F2 U2 R2 F' L' B' U' R2 U2 F' U L R2 B' U",
"F2 B U D2 F' U2 B D2 L F2 D' R2 F2 U' B2 U B2 D",
"U' L' F R' U F2 R2 L' U B D2 B D2 R2 U2 R2 B' U2 B'",
"L2 F2 L2 D R2 D' U B2 L B' L' F' L R2 D' F' L' U' L F'",
"D' R2 U L2 F2 D F2 U R B2 F' R2 B U F2 D2 R D' U' L",
"F' D F' U' F2 L B D F' L' D2 L2 B L2 B R2 F' U2 D2",
"B2 R B2 R D2 L R' D B F L2 D U2 R' F' U' L2 U2",
"D L D L2 F R2 B L D R U' L2 F2 R2 U' R2 L2 F2 U D'",
"L2 U2 D F2 D' F' U R' L U R B2 D2 L2 U B2 U R2 F2",
"L2 D2 F2 U2 R F2 R' D2 L' R D B D' F L R2 D' R' U' B'",
"U2 R' D2 U2 L' R U2 B2 R U2 F D2 R' B L' U L R' D2",
"L B2 L2 U2 R B2 L' F2 U2 R2 B U2 L' U' B D R B L2 B2",
"B' L' B' U' D2 R D' L D2 L B' L' B2 R2 B2 U2 B2 R' D2 R",
"B R' U' B2 L B2 D F2 B U B2 L' F2 B2 U2 R2 U2 D2",
"D2 R F' D R L2 F D2 F' R B L2 B2 U2 D2 R2 U' D2 L2",
"U2 L2 F' U2 B F' D2 R2 B L D L2 R F U' L' B' D' L R'",
"L2 U' L2 R2 F2 U' B2 D2 L2 F2 L R2 U2 F' R U B D F2 R'",
"F D2 L2 D2 F R2 B2 F2 R2 F' L U L2 F D2 R' D2 L2",
"U' R2 U' R2 D F2 R2 B2 F2 D B F' D R F' R B2 R' B D2",
"U' B2 D' L2 R2 D B2 U2 L' F D' L2 F R D2 L D' U' L' F'",
"R2 F2 L2 D U2 F2 L2 D2 L2 U' B2 R D' F D U2 B2 D' R' B' D'",
"U2 B U2 F B U' D F' L D' F2 D' B2 D L2 F2 D' F2 D F2",
"B2 D' F' D2 R' F R' B2 D' L F' R2 F R2 B' R2 F2 B' L2 F",
"B2 U2 B' R2 B' L2 B2 R2 B' R B' D' U2 L2 F2 R2 F R2 U",
"F' L2 R2 D2 B R2 B' F2 R2 U' B L' B D F2 R2 U R' B' U2",
"U B' D2 B' D2 L' B' R' D2 B2 L' B2 U2 R2 D' B2 L2 U' R2 U'",
"B D2 L' D R2 B' D L D' F B2 D2 L B2 R B2 R2 F2 U2 L",
"U2 F D2 B' F2 D2 F U2 L2 R' U F' R2 D' B L U2 F2 U2",
"L' F L' D R2 U' R F' R' B2 L D F2 U2 F2 D R2 D' F2 L2",
"F2 U' F2 R2 U' R' L D2 L D' F2 R2 D2 R2 L' D2 L' F2",
"U2 D' F L' B U' F2 R' U2 F' D' B2 D2 F D2 R2 L2 B L2 B'",
"L2 U2 R2 B' L2 B U2 B2 F D L B2 L2 U2 B' L D2 L D F' U",
"R2 B L2 D2 B' U2 B' R2 F2 L2 D' L' U L R D2 U R D' U",
"D2 B R2 U L2 B L' F' U' R D2 R' F2 D2 R' F2 L B2 U2",
"B2 F U2 L2 B2 D2 R2 B' L' R' B U' L2 R F2 D' B' L2 F",
"L2 U2 R2 D' U2 B2 D' L2 D B R2 U L' D' L B R2 U2 F L",
"D F2 L' U2 B2 U2 F2 R F' D F2 D2 F2 R2 U2 L' U2 R' F2",
"D2 U' F2 D' F2 L2 D2 L2 R' U B2 D2 L D2 L B' L2 R D2",
"B' L2 B2 F' U2 L2 B' F2 U2 R2 D L B' R' F R D F U",
"B R2 B L2 F L2 R2 D2 B D B L' F2 L2 D' R' D2 B2 R2 B'",
"U' D' L2 U2 D2 R' B' U R L2 F L2 D' L2 D2 F2 L2 F2 D",
"R2 D2 F2 R' B2 D2 F2 R2 D2 F' D' B2 L' D2 B2 U' L2 D2 R D'",
"U2 R2 B2 L U2 R F2 R2 B L D' R D' F2 D' B2 D L B'",
"R D2 F2 L R2 D2 B2 L2 U B2 R' D2 B' F2 R2 B' L B2",
"L R' F2 L2 B2 D2 F L' B' L U F2 R' B2 L U L2",
"L' D2 R D2 R B2 R B2 F' U B' D' F L B2 U R' D2 U2",
"D2 R2 F2 D' B2 U' B2 R2 F L' R2 U2 R' D' R2 F' U F2 L'",
"D' L' U2 D' B' U R' F R' D R' U' F2 D' B2 D2 F2 L2 U'",
"D2 B2 D2 U2 B' L2 B' R2 U2 B2 D' L' R' D' F' U F' R' F'",
"U2 B2 D F2 D' L2 B' F' D' F D R F2 D' F L' F' R2",
"U2 F2 U2 F2 U F2 L2 D B2 L' B2 D L R D B2 F' R2",
"R U F' R' U' B2 L2 D' R F' D' F2 R D2 B2 U2 D2 R' L2",
"D2 L R F2 L R' U2 L B2 D' B' F D R' B2 D F' L R2 D'",
"R2 D2 F2 D' U2 B2 U2 L2 U R2 F R2 B' D' B' U' L U R D' L'",
"F' R F' B' L F' R2 U' L' F' U' B2 U2 F2 U' R2 U L2 F2 B2",
"D' B2 R F L F2 D' L U2 F2 D' R2 D2 L2 U L2 D B2 L2",
"R L U2 F U’ D F2 R2 B2 L U2 F’ B’ U R2 D F2 U R2 U" # SUPERFLIP
]
return tests
......@@ -24,12 +24,15 @@ green -vvv -r #avec coverage d'installé sur la machine
# Le jeu de test
Par déaut, un jeu de test est présent dans `samples/sample.json`.
Par déaut, les deux jeux de test sont présents dans
`samples/rotations-sample.json` et `samples/list-sample.json`.
Il contient 60 cubes sur lesquels ont a appliqué les 18 mouvements
Le premier fichier contient 60 cubes sur lesquels ont a appliqué les 18 mouvements
`{(X, X', X2) | X = (U, R, F, L, B, D)}` avec la librairie nodejs
[cube.js](https://github.com/akheron/cubejs) et sauvegardé le résulat de chacun.
Il a été généré par `samples/build.js`. On peut lancer la création d'un autre
jeu de test avec `node samples/build.js -o sample_bis.js`.
Le second est la liste des `60*18=1080` cubes générés.
Ils ont été générés par `samples/build.js`. On peut lancer la création d'un autre
jeu de test avec `node samples/build.js -o sample.js`.
......@@ -238,11 +238,28 @@
//le nom du fichier
var file = argv.length > 2 && argv[2] == '-o' ? argv[3] : DEFAULT_FILE;
fs.writeFile(path.join(__dirname, file), content, function (err) {
fs.writeFile(path.join(__dirname, 'rotations-' + file), content, function (err) {
if (err) {
return console.error(err);
}
console.log("Jeu sample sauvé dans", file);
console.log("Jeu sample de rotations sauvé dans", 'rotations-' + file);
});
//il peut être utile de n'avoir qu'une bête liste de cube
var cubes = { cubes : [] };
Object.keys(result).forEach(function (origin) {
cubes.cubes.push(origin);
Object.keys(result[origin]).forEach(function (m) {
cubes.cubes.push(result[origin][m]);
});
});
content = JSON.stringify(cubes);
fs.writeFile(path.join(__dirname, 'liste-' + file), content, function (err) {
if (err) {
return console.error(err);
}
console.log("Liste sauvée dans", 'liste-' + file);
});
});
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -10,8 +10,7 @@ from Cube import Cube
from lire_entree import lecture_cube
from algo import algo_cfop
JEU_TEST = './tests/samples/sample.json'
JEU_TEST = './tests/samples/liste-sample.json'
def extract_cubes(data):
result = []
......@@ -26,7 +25,7 @@ class TestAlgo(unittest.TestCase):
"""Test de l'algo CFOP"""
with open(JEU_TEST) as data_file: #on parse le jeu de test JSON
data = json.load(data_file)
cubes = extract_cubes(data) #1140 cubes
cubes = data['cubes']
error = False
bugs = []
......
......@@ -9,7 +9,7 @@ import json
from Cube import *
from lire_entree import lecture_cube
JEU_TEST = './tests/samples/sample.json'
JEU_TEST = './tests/samples/rotations-sample.json'
ROTATIONS = [
"U", "Ui", "U2", "L", "Li", "L2",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment