[plt-dev] Stepper tests for DeinProgramm language levels?

From: Ryan Culpepper (ryanc at ccs.neu.edu)
Date: Wed Mar 18 18:28:57 EDT 2009

On Mar 18, 2009, at 5:08 PM, John Clements wrote:

> As part of pre-release testing, I run the tests in plt/collects/ 
> tests/stepper/through-tests... which don't cover any of the  
> deinprogramm language levels.  You clearly have a stake in making  
> sure that the stepper still works for these language levels, so I'm  
> wondering if you'd like to contribute some tests.  Currently, the  
> tests are all in one place--though that could easily change--and  
> they're in one of two formats: my straightforward if somewhat  
> verbose style, and Eli's compact but non-sexp-y flavor.  Here are a  
> couple of examples:
>
> ;; my verbose style
>
> (t1 let2
>     (test-both-ints "(let ([a (+ 4 5)] [b (+ 9 20)]) (+ a b))"
>                     `((before-after ((hilite (let ([a (+ 4 5)] [b (+  
> 9 20)]) (+ a b))))
>                                     ((hilite (define a_0 (+ 4 5)))  
> (hilite (define b_0 (+ 9 20))) (hilite (+ a_0 b_0))))
>                       (before-after ((define a_0 (hilite (+ 4 5)))  
> (define b_0 (+ 9 20)) (+ a_0 b_0))
>                                     ((define a_0 (hilite 9)) (define  
> b_0 (+ 9 20)) (+ a_0 b_0)))
>                       (before-after ((define a_0 9) (define b_0  
> (hilite (+ 9 20))) (+ a_0 b_0))
>                                     ((define a_0 9) (define b_0  
> (hilite 29)) (+ a_0 b_0)))
>                       (before-after ((define a_0 9) (define b_0 29)  
> (+ (hilite a_0) b_0))
>                                     ((define a_0 9) (define b_0 29)  
> (+ (hilite 9) b_0)))
>                       (before-after ((define a_0 9) (define b_0 29)  
> (+ 9 (hilite b_0)))
>                                     ((define a_0 9) (define b_0 29)  
> (+ 9 (hilite 29))))
>                       (before-after ((define a_0 9) (define b_0 29)  
> (hilite (+ 9 29)))
>                                     ((define a_0 9) (define b_0 29)  
> (hilite 38)))
>                       (finished-stepping))))
>
>
> ;; eli's compact style:
>
> (let ([def `(define a5 (lambda (a5) (+ a5 13)))])
>    (t lam-def test-upto-int
>       ,def (a5 23)
>       :: ,def {(a5 23)}
>       -> ,def {(+ 23 13)}
>       -> ,def {36}))
>
>
> Looking at this more closely, the lowest-hanging fruit here would  
> simply be identifying existing tests where the expected result in  
> some DeinProgramm language level is the same as the existing  
> expected result for some test.
>
> I took a quick crack at running a beginner programm in the lowest  
> DeinProgramm level, but the error message suggested that I couldn't  
> define new operations in this language level, so I just gave up :).

I think the DeinProgramm teaching languages just require the explicit  
lambda style of function definition.

Ryan


> Anyhow, if you find time to do this at some point, it would probably  
> increase the reliability of the stepper w.r.t. DeinProgramm.
>
> cc'ing plt-dev, in case anyone else has good suggestions.
>
> John
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-dev



Posted on the dev mailing list.