def getTimes11400Cubes(): liste = [] with open(JEU_TEST) as data_file: #on parse le jeu de test JSON data = json.load(data_file) tests = data["cubes"] for test in tests: # on parcours tout les cubes tmps1=time.clock() b,c = lecture_cube(test) c,mouv = algo_cfop(c) # on fais l'algo tmps2=time.clock() liste.append(tmps2-tmps1) return liste
def getTimes11400Cubes(): liste = [] with open(JEU_TEST) as data_file: #on parse le jeu de test JSON data = json.load(data_file) tests = data["cubes"] for test in tests: # on parcours tout les cubes tmps1 = time.clock() b, c = lecture_cube(test) c, mouv = algo_cfop(c) # on fais l'algo tmps2 = time.clock() liste.append(tmps2 - tmps1) return liste
def cube_testRotation(self): # le test de la rotation rot for cube, moves in jeuTest.items(): # pour tous les cubes result = moves[rot] # le résulat attendu err, c = lecture_cube(cube) # on lit le cube self.assertFalse(err) # on applique la rotation rotation = getattr(c, "rot_" + rot) rotation() # on check si c'est bien ce qui est attendu line = c.to_line(colors=False) self.assertEqual(line, result, "rot_" + rot + " (cube " + cube + "): " + line + " != " + result)
def cube_testRotation(self): #le test de la rotation rot for cube, moves in jeuTest.items(): #pour tous les cubes result = moves[rot] #le résulat attendu err, c = lecture_cube(cube) #on lit le cube self.assertFalse(err) #on applique la rotation rotation = getattr(c, 'rot_' + rot) rotation() #on check si c'est bien ce qui est attendu line = c.to_line(colors=False) self.assertEqual( line, result, 'rot_' + rot + ' (cube ' + cube + '): ' + line + ' != ' + result)
def solve_full(cube_c54): """ solve_full :Args: cube_c54 {String} Le cube passé sous sa forme '54 facettes colorées' :Returns: ({String|None}, {None|List}, {None|Cube}) (erreur, liste des mouvements, cube en entrée) """ err, cube_lu = lecture_cube(cube_c54) if err: return err, None, None else: err, mouvements = algo_cfop(cube_lu.copy()) return (err, None, None) if err \ else (None, mouvements, cube_lu)
def runTest(self): """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 = data['cubes'] error = False bugs = [] for cube in cubes: err, c = lecture_cube(cube) if err: raise Error("Erreur lecture_cube \n" + cube) err = algo_cfop(c)[0] if err: bugs.append(cube) error = True if error: for b in bugs: print(b, "\n") self.assertFalse(error, "Certains cubes ne sont pas résolus")
from stats import moyenne from algo import * """ Génération de stats sur la longueur de la solution """ JEU_TEST = 'tests/samples/liste-sample.json' with open(JEU_TEST) as data_file: #on parse le jeu de test JSON data = json.load(data_file) tests = data["cubes"] # dictionnaire pour stocker en clé : nbMouvement et #en valeur : Occurence sur les n tests listeNbMouvements = {} for test in tests: # on parcours tout les cubes b, c = lecture_cube(test) c, mouv = algo_cfop(c) # on fais l'algo # si le nombre de mouvements est deja dans la dictionnaire, # on ajoute 1 à son occurence if len(mouv) in listeNbMouvements: listeNbMouvements[len(mouv)] += 1 else: listeNbMouvements[len(mouv)] = 1 # sinon on l'ajoute listeX = [] listeY = [] # on "separe" le dictionnaire en deux liste correspondant aux clés et aux valeurs for x, y in listeNbMouvements.items(): listeX.append(x) listeY.append(y)
from algo import * """ Génération de stats sur la longueur de la solution """ JEU_TEST = 'tests/samples/liste-sample.json' with open(JEU_TEST) as data_file: #on parse le jeu de test JSON data = json.load(data_file) tests = data["cubes"] # dictionnaire pour stocker en clé : nbMouvement et #en valeur : Occurence sur les n tests listeNbMouvements = {} for test in tests: # on parcours tout les cubes b,c = lecture_cube(test) c,mouv = algo_cfop(c) # on fais l'algo # si le nombre de mouvements est deja dans la dictionnaire, # on ajoute 1 à son occurence if len(mouv) in listeNbMouvements: listeNbMouvements[len(mouv)] += 1 else: listeNbMouvements[len(mouv)] = 1 # sinon on l'ajoute listeX = [] listeY = [] # on "separe" le dictionnaire en deux liste correspondant aux clés et aux valeurs for x,y in listeNbMouvements.items(): listeX.append(x) listeY.append(y)
for x in mouvementsRestants]) ) + '\n' ) if 'moves' not in params: print(cube) else: #L'utilisateur a demandé de voir l'aide des mouvements print(aideMouvements(cube, m)) print("Rotation : ", translate_mvt(m) +'\n\n') mouvementsDone.append(m) if 'auto' not in params: print('Press any key to continue . . .\n') newGetch() else: sleep(1 / speed) if __name__ == '__main__': from lire_entree import lecture_cube cube = 'OGRBWYBGBGYYOYOWOWGRYOOOBGBRRYRBWWWRBWYGROWGRYBRGYWBOG' error, c = lecture_cube(cube) if error: raise Error(error) c0 = c.copy() mouvements = algo_cfop(c) tuto(c0, mouvements)
def getTimeDefaultCube(): tmps1=time.clock() b,c = lecture_cube(DEFAULT_CUBE) c,mouv = algo_cfop(c) # on fais l'algo tmps2=time.clock() return tmps2-tmps1
def getTimeDefaultCube(): tmps1 = time.clock() b, c = lecture_cube(DEFAULT_CUBE) c, mouv = algo_cfop(c) # on fais l'algo tmps2 = time.clock() return tmps2 - tmps1