Sto iniziando a passare attraverso le domande nel progetto Euler, e mi piacerebbe avvicinarlo con uno stile TDD, ma ho difficoltà a trovare la risposta numerica alla domanda che non includere il codice C'è qualche risorsa con quei dati in modo che io possa fare test case che mi diranno se ho risolto il problema correttamente?Test di unità per progetto Euler
La mia motivazione è che mi sento come se l'algoritmo fosse la risposta, non il numero. Se guardo l'esempio di codice di qualcun altro, rovina la sfida di capire come per risolvere il problema.
Modifica: sto cercando in particolare il numero della risposta senza contesto o algoritmo con esso in modo che io possa fare qualcosa di simile al seguente. So che è più dettagliato, ma mi piacerebbe essere in grado di avere un risultato pass/fail per dirmi se il mio algoritmo è corretto o meno, piuttosto che guardare l'esempio di codice di qualcun altro per sapere se l'ho fatto correttamente.
import unittest
class ProblemOneTest(unittest.TestCase):
def test_me(self):
self.assertEquals(solve_problem_one(),233168)
if __name__ == '__main__':
print "Problem 1 possible answer: %d" % solve_problem_one()
sys.exit(unittest.main())
Avere delle risposte rovinerebbe la sfida in parte. Quello che potresti fare è eseguire più "soluzioni" e confrontare il loro output. –
Per me provo il contrario. Il numero non ha senso senza l'algoritmo. Sento che il codice stesso è la risposta e vedere come qualcun altro ha rovinato la sfida di capire * come * risolverlo. – Daenyth
Non sta inserendo il numero nella pagina del contex e ottenendo il "lo hai risolto!" schermo sufficiente? Non vedo davvero come i test unitari possano dare qualche aiuto lì. Prova invece a scrivere algoritmi diversi, modificali per renderli più veloci o semplicemente più eleganti. – nico