[erlang-questions] proper char() type

Ryan Maclear ryanm@REDACTED
Thu May 17 12:14:10 CEST 2018


Ah ok, that makes perfect sense. So manually calling the pick/1 function
with just the type will always start with the Size parameter set to 10, but
over time the internals would increase this for repeated calls, and thus
stretching the sample space to the max range.

Thanks for clearing that up.

Kind Regards,
Ryan Maclear


On 17 May 2018 at 12:02, Jesper Louis Andersen <
jesper.louis.andersen@REDACTED> wrote:

> Most QuickCheck systems have an internal size parameter which is slowly
> increased over the course of testing. If you manually bump it by a lot, you
> get a better range:
>
> 16> proper_gen:pick(proper_types:resize(8000, proper_types:integer(0,
> 16#10ffff))).
> {ok,5050}
>
> However, I feel most of propers generators are botched and don't really
> check what they should. EQC Mini for instance:
>
> 5> eqc_gen:sample(eqc_gen:choose(0, 16#10ffff)).
> 482145
> 1062500
> 211296
> 269049
> 863625
> 4346
> 441921
> 719972
> 62442
> 703915
> 944194
> ok
>
> which is far more the range you would expect. Also note that the pick/1
> function is kind of dangerous since it leads people down a path where their
> generators have less randomness than they should have. The right solution
> often involves ?LET(X, generator(), <[X] E x>) and friends.
>
>
>
> On Thu, May 17, 2018 at 11:34 AM Ryan Maclear <ryanm@REDACTED>
> wrote:
>
>> Appologies, I hit send before finisinh the email. Here is the complete
>> mail:
>>
>> I'm busy learning to use proper and have the following issue. When
>> calling the function
>>
>> From the API docs, the char() type has a range of 0 to (1114111)
>> 16#10ffff.
>>
>> When calling the function
>>
>> proper_gen:pick(proper_types:term()).
>>
>> manually many times (I've tried in around 3000 times) and on different
>> VMs, the function always seems to return only one of the following values:
>>
>> {ok,0},
>> {ok,2},
>> {ok,3},
>> {ok,6}
>> {ok,12} and
>> {ok,13}
>>
>> I see the same behaviour for
>>
>> proper_gen:pick(proper_types:range(0,16#10ffff)).
>>
>> which I believe is equivalent.
>>
>> I have tried on erlang 19.3.6.9, erlang 20.3.6 on a Mac as well as on a
>> ubuntu trusty docker image with erlang 19.3.
>>
>> In all three vms I see the same set of results being returned.
>>
>> Is there something else I need to do before calling this function?
>>
>> Thanks,
>> Ryan
>>
>>
>> On 17 May 2018 at 11:07, Ryan Maclear <ryanm@REDACTED> wrote:
>>
>>> Good Day,
>>>
>>> I'm busy learning to use proper and have the following issue. When
>>> calling the function
>>>
>>> From the API docs, the char() type has a range of 0 to (1114111)
>>> 16#10ffff.
>>>
>>> When calling the function
>>>
>>> proper_gen:pick(proper_types:term()).
>>>
>>> manually many times (I've tried in around 3000 times) and on different
>>> VMs, the function always seems to return only one of the following values:
>>>
>>> {ok,0},
>>> {ok,2},
>>> {ok,3},
>>> {ok,6}
>>> {ok,12} and
>>> {ok,13}
>>>
>>> I see the same behaviour for
>>>
>>>
>>> I have tried on erlang 19.3.6.9, erlang 20.3.6 on a Mac as well as on a
>>> ubuntu trusty docker image with erlang 19.3.
>>>
>>> In all three vms I see the same set of results being returned.
>>>
>>> Is there something else I need to do before calling this function?
>>>
>>> Thanks,
>>> Ryan
>>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20180517/75c00766/attachment.htm>


More information about the erlang-questions mailing list