#lang racket
(require 2htdp/universe)
(require 2htdp/image)
(define (draw-number n)
(place-image (text (number->string n) 44 'red)
50 50
(empty-scene 100 100)))
;; Nat Nat String -> Nat
;; make the clock tick n times, expected expected-n files in dir
(define (create-n-images n expected-n dir)
(unless (directory-exists? dir)
(make-directory dir))
(parameterize ([current-directory dir])
(for-each delete-file (directory-list)))
(with-output-to-file (format "./~a/index.html" dir)
(lambda ()
(displayln "
"))
#:exists 'replace)
(define final-world
(big-bang 0
(on-tick add1)
(stop-when (curry = n))
(on-draw draw-number)
(record? dir)))
(sleep 1)
(define number-of-png
(parameterize ([current-directory dir])
(define dlst (directory-list))
; (displayln dlst)
(length
(filter (lambda (f) (regexp-match "\\.png" (path->string f)))
dlst))))
(unless (= expected-n number-of-png)
(error 'record? "(~s, ~s) didn't record proper number of images: ~s" n dir
number-of-png)))
(create-n-images 3 3 "images3/")
(create-n-images 0 0 "images0/")