/tutorial/iterator/iterator_on_random_generator.e

http://github.com/tybor/Liberty · Specman e · 52 lines · 38 code · 13 blank · 1 comment · 0 complexity · a3e42fa64823c523310058cac93a4650 MD5 · raw file

  1. class ITERATOR_ON_RANDOM_GENERATOR
  2. inherit
  3. ITERATOR[INTEGER]
  4. creation {ANY}
  5. make
  6. feature {ANY}
  7. count: INTEGER
  8. -- Of the sequence.
  9. item: INTEGER
  10. start is
  11. do
  12. random_number_generator.with_seed(seed)
  13. random_number_generator.next
  14. left := count
  15. item := random_number_generator.last_integer(range)
  16. end
  17. next is
  18. do
  19. random_number_generator.next
  20. left := left - 1
  21. item := random_number_generator.last_integer(range)
  22. end
  23. is_off: BOOLEAN is
  24. do
  25. Result := left = 0
  26. end
  27. feature {}
  28. seed: INTEGER is 5555
  29. range: INTEGER is 256
  30. left: INTEGER
  31. random_number_generator: MINIMAL_RANDOM_NUMBER_GENERATOR
  32. make (c: like count) is
  33. require
  34. count >= 0
  35. do
  36. count := c
  37. create random_number_generator.with_seed(seed)
  38. end
  39. end -- class ITERATOR_ON_RANDOM_GENERATOR