Kata de TDD avec Guile et Emacs (String Rotations – 5)
Objectif de cette session :
Continuer d'utiliser un peu plus d'outils que Guile (Scheme) et Emacs mettent à disposition (Paredit, Geiser, AC-Geiser, SRFIs) pour accélérer le développement de programmes.
Bon screencast !
Je place le code à la suite pour ceux que ça intéresse :
;;; A string like abc has three rotations: abc, bca, and cab.
;; -*- geiser-scheme-implementation: guile -*-
(define-module (harness-guile)
#:use-module (srfi srfi-64))
(module-define! (resolve-module '(srfi srfi-64))
'test-log-to-file #t)
(define EMPTY_STRING "")
(define DUMMY_1CHAR_STRING "a")
(define DUMMY_2CHAR_STRING "ab")
(define (rotations str)
(if (> (string-length str) 1)
`(,str ,(string-reverse str))
`(,str)))
(test-begin "test-suite")
(define (test-equal-batch triples)
(map (lambda (triple)
(let ([test-name (car triple)]
[expected (cdr triple)]
[effective (car (cddr triple))])
(test-equal test-name
`(,@(car expected))
(rotations effective))))
triples))
(test-equal-batch
`(["empty-string" (,EMPTY_STRING) ,EMPTY_STRING]
["one-char-string" (,DUMMY_1CHAR_STRING) ,DUMMY_1CHAR_STRING]
["two-char-string" ("ab" "ba") ,DUMMY_2CHAR_STRING]
["two-char-string-bis" ("bc" "cb") "bc"]
["three-char-string" ("abc" "bca" "cab") "abc"]))
(test-end "test-suite")
Merci beaucoup d'avoir regardé ce screencast !
N'hésites pas à me donner ton avis, proposer une idée d'amélioration, laisser un commentaire, ou poser une question via :
– E-mail: jeremy AT korwin-zmijowski DOT fr
– Mastodon: @jeko@framapiaf.org
– Peertube: @jeko@video.tedomum.net
– Twitter: @JeremyKorwin
Abonnes-toi pour ne pas manquer les prochains articles et épisodes:
– blog via Mastodon @jeko@write.as et RSS
– screencast via Peertube @jeko@video.tedomum.net et RSS
Et encore plus important, partages le screencast et dis à tes amis que c'est le meilleur screencast de l'histoire du logiciel libre ! Sans dec'
#kata #tdd #testdrivendevelopment #guile #scheme #emacs #screencast