Le 3 avril 2014 16:33, Arnaud Bailly <arnaud.oqube@gmail.com> a écrit :
Je ne vois pas trop la partie TDD, je trouve personnellement les tests peu expressifs.

Je pensais le faire vis-à-vis de la "distillation" des spécifications, je m'explique.
J'ai un diaporama qui va contenir les instructions que je dévoilerais au fur et à mesure :
  - Les températures sont envoyées soit en °C soit en °F, la précision est d'une décimale.
                        * T(°C) = (T(°F) - 32)/1.8
                        * T(°F) = T(°C) * 1.8 + 32

 - Les températures sont récoltées matin et soir et sont envoyées par ordre de récolte, en commençant par un matin.

 - On veut les statistiques suivantes pour toutes les valeurs reçues : Minimum / Maximum / Moyenne
    On veut le résultat en °F uniquement si toutes les valeurs sont en °F.

 - On veut ces statistiques uniquement pour les mesures du matin ou uniquement pour les mesures l'après midi.

 - On veut ces statistiques par semaine.

 - On veut ces statistiques par mois.

 - On veut ces statistiques par mois pour les lundi matin des semaines paires.

L'idée est d'instaurer un certain rythme.

IMHO illustrer le TDD en Haskell implique de partir de Quickcheck. Tes tests sur l'égalité et les propriétés des Temperatures pourraient tirer parti de cet outil par exemple.

J'ai un peu de mal à voir quelles propriétés tester.
 
Par ailleurs si tu veux utiliser HSpec alors je te suggérerai de "suivre le grain" de l'API.

describe "Both Fahrenheit" $ do
                it "same" $ do

c'est pas trés "beau", il serait plus logique d'avoir quelque chose du genre:

describe "Both Fahrenheit" $ do
                it "should be equal given same value" $ do
                it "should be different given different values" $ do


Je plaide coupable, mais j'aurais le même problème de nommage avec RSpec.
 
Dans le code principal, je ne vois pas trop le problème que tu as avec ta classe: j'arrive à compiler ce code sans problème en rajoutant les flags qui vont bien (ghc me le dit...).

Au moment de l'appel du programme via le shell ? J'utilise cabal, du coup je suppose que je dois regarder comment l'ajouter dedans.
 
Je ne suis pas sûr non plus que l'utilisation intensive d'une notation "point-free" aide à la compréhension.... Surtout avec un pipeline de 10 fonctions. Je te suggérerai de détailler chaque partie de la fonction.

ok, mais le but n'est pas qu'ils comprennent l'intégralité de la fonction, toujours est-il que ça ne me coûte rien de le faire.