[pypy-commit] lang-scheme default: Added a closure test

boemmels noreply at buildbot.pypy.org
Thu Dec 29 21:32:36 CET 2011


Author: Juergen Boemmels <boemmels at web.de>
Branch: 
Changeset: r29:b27460bc0d0d
Date: 2011-12-04 00:19 +0100
http://bitbucket.org/pypy/lang-scheme/changeset/b27460bc0d0d/

Log:	Added a closure test

diff --git a/scheme/test/test_scheme_level.py b/scheme/test/test_scheme_level.py
--- a/scheme/test/test_scheme_level.py
+++ b/scheme/test/test_scheme_level.py
@@ -159,3 +159,17 @@
 (assert (string? new-str))
 (assert (equal? new-str "*******"))
 """)
+
+def test_closures():
+    run_with_assert(r"""
+(define (make-counter start) (lambda () (set! start (+ 1 start)) start))
+(assert (procedure? make-counter))
+(define counter-a (make-counter 10))
+(define counter-b (make-counter 10))
+(assert (procedure? counter-a))
+(assert (eqv? (counter-a) 11))
+(assert (eqv? (counter-a) 12))
+(assert (eqv? (counter-a) 13))
+(assert (eqv? (counter-b) 11))
+""")
+


More information about the pypy-commit mailing list