2016-04-07 11 views
1

Ich benutze PropEr, um meinen eigenschaftsbasierten Test zu schreiben. Wie kann ich sehen, welche Art von Daten mein Generator produziert?In Erlangs PropEr, wie bekommt man eine Probe eines Generators?

Lassen Sie sich sagen, ich habe den folgenden Generator:

-module(my). 
-include_lib("proper/include/proper.hrl"). 
-export([valid_type_gen/0]). 

valid_type_gen() -> non_empty(list(any())). 

Ich mag prüfen, welche Art von Daten es erzeugt, also so etwas wie:

$ erl 
1> my:valid_type_gen().sample() %??? 
[1,b,"blah"] 

Für die gleiche Frage in Triq, schauen Sie here.

Antwort

2

Die relevante Funktion ist proper_gen:pick/1. Es gibt ein Tupel {ok, V} zurück.

$ erl 
1> proper_gen:pick(my:valid_type_gen()). 
{ok,[{{},<<>>,2}, 
    [{},11.690292064109402, 
     {{}}, 
     {},18.096053885231132,u,')[\2064Wue¢±'], 
    [{},-5.041761022794527,-13, 
     {[],-0.9553811124968509}, 
     -5,'õ\232zc}:Ì'], 
    <<47,5,113,69,86,216,20,142,173,57:6>>, 
    '', 
    {2.710196163900066,0.47155396154628,{},[], 
     {[]}, 
     8.42398680461108}, 
    {[[25, 
     [-10.073999184421432,5.734631070941083, 
     {'æ\2367Ò§ü\233"',[30.925337851024143]}]], 
     '']}, 
    '\031Þ\037\'\v','\214b\236']}