2013-11-21 2 views
1

При запуске нижеуказанного теста Gen() распечатывается как для println операторов.Выход генератора Gen.choose() и .oneOf()

Основываясь на ScalaCheck docs, я бы ожидал, что выход будет:

(номер, номер)

"Привет" или "Мир"

class TestScalaCheck extends FlatSpec { 

    @author first test - https://github.com/rickynils/scalacheck/wiki/User-Guide 
    "a test" should "print out Gen.choose(1, 100)" in { 
     val myGen = for { 
      n <- Gen.choose(10,20) 
      m <- Gen.choose(2*n, 500) 
     } yield (n,m) 

     println(myGen) 

     val c = Gen.oneOf("Hello", "World") 
     println(c) 
    } 
} 
+0

Спасибо, Эш. –

ответ

5

Gen[T] является генератором значений (типа T), и это тип как myGen, так и c abov е. Если вы хотите распечатать примерные значения того, что могут генерировать генераторы (завернутые как опция), попробуйте println(myGen.sample) и println(c.sample).

+0

Спасибо. Должны ли документы включать функцию 'sample'? Http: //scalacheck.googlecode.com/svn/artifacts/1.9/doc/api/org/scalacheck/Gen$.html –

+1

Это' объект', посмотрите на 'trait 'http://scalacheck.googlecode.com/svn/artifacts/1.9/doc/api/org/scalacheck/Gen.html – Noah

+1

Обратите внимание, что ScalaCheck 1.9 немного устарел. Для текущей версии см. Http://www.scalacheck.org/download.html. Ссылки на текущую документацию см. На странице http://www.scalacheck.org/documentation.html –

Смежные вопросы