DalekBaldwin / check-it

Randomized specification-based testing for Common Lisp. Available through Quicklisp.
51 stars 10 forks source link

defgenerator question #3

Closed rudolfochrist closed 9 years ago

rudolfochrist commented 9 years ago

Hi,

I was playing around and tried to define my custom generators. I came up with

(defgenerator numbers () 
  `(generate (generator (or (integer 0 10) 
                            (integer 20 30)))))

to generate integers between [0, 10) and [20, 30). Which worked.

(let ((*size* 50))
            (generate (generator (numbers))))
;;=> 22

Then, I tried to generate a list of numbers like so

(let ((*size* 50))
            (generate (generator (list (numbers)))))
;;=> (7 7 7 7 7 7 7 7 7 7 7 7 7 7)

This didn't met my assumption. What do I need to do to generate a list of random numbers (laying in one of the two intervals above).

Thanks. Sebastian

rudolfochrist commented 9 years ago

Oh,

after some macroexpansions and re-reading the manual I found my mistake. It has to be

(defgenerator numbers () 
  `(generator (or (integer 0 10) 
                      (integer 20 30))))

I'm going to close this. Thank you anyway.