pfff encore une fois les tests ne sont pas là pour prouver (au sens math/logique) qu'un code fonctionne ... Si tu faisais cette preuve pour chaque fonction tu n'aurais pas besoin de tests mais tu n'aurais pas de clients non plus. Les tests permettent de valider une spec, de documenter du code et enfin de tester rapidement une implémentation. Les tests sont subjectifs, il sont écrits par un humain qui sait ce qu'une API doit faire. L'implémentation est faite pour répondre à un besoin et pas seulement pour valider le test. Mais quand les tests sont bien conçus, les satisfaire satisfait aussi le besoin.
Pour mon code, ta preuve n'est pas recevable .. il peut se passer des trucs entre 'set()' et 'plus()' vu que this est mutable. Mon exemple est pas terrible car prouver plus() revient à prouver (+) ... Bon et tu as raison, si le langage est bien implémenté, que this ne peut pas être appellé par autre chose que le thread courant tu peux prouver qu'un appel à set() suivi d'un appel à plus() peut être atomique mais ça sembe bien relou
En PHP quand tu fais "$a = 3; 3 + 5;" $a ne vaut pas 8 par exemple. un langage qui ferait ça serait ultra chiant
Ter Rowan : Un exemple de preuve pour un algorithme de tri (insertion sort ou insert sort je sais plus comment il s'appelle) : http://www.cs.cornell.edu/courses/cs3110.../rec12.htm
Pour mon code, ta preuve n'est pas recevable .. il peut se passer des trucs entre 'set()' et 'plus()' vu que this est mutable. Mon exemple est pas terrible car prouver plus() revient à prouver (+) ... Bon et tu as raison, si le langage est bien implémenté, que this ne peut pas être appellé par autre chose que le thread courant tu peux prouver qu'un appel à set() suivi d'un appel à plus() peut être atomique mais ça sembe bien relou
Citation :mais la fonction plus() ne réalise pas ce que la spécification lui demandait (ajouter deux entiers).Ah bon !?! de quelle spec tu parles Óò
En PHP quand tu fais "$a = 3; 3 + 5;" $a ne vaut pas 8 par exemple. un langage qui ferait ça serait ultra chiant
Ter Rowan : Un exemple de preuve pour un algorithme de tri (insertion sort ou insert sort je sais plus comment il s'appelle) : http://www.cs.cornell.edu/courses/cs3110.../rec12.htm