On Mon, Mar 21, 2011 at 16:11, Eric Merritt <ericbmerr...@gmail.com> wrote:

> I went a bit nuts over the weekend and pulled Robert Virding's rbtree
> implementation and changed it to be a native implementation of our
> dictionary. I wanted something a bit more complex then the assoc list
> stuff.
>

Walking on fire... but that is also where the fun is!!


>
> Most of us don't have much experience with quick check, proper or
> property based testing. We are using this opportunity to go through
> and figure it all out so we can start using it. Is there any chance
> you could go through this first test and give some specific
> documentation of what is going on in each case? Then I will try to add
> some tests to it myself and see how it goes.
>

I have given a bit of thought to this too, and I think that if I get get a
good explanation of how one of you guys would test the ec_dictionary:add/2
function then I could explain what the differences are when doing it with
property based testing. I think that would be a good context for
understanding how the two approaches differ and how property based testing
provides more value.

Does this make sense?


>
> More inline:
>
> On Sun, Mar 20, 2011 at 10:53:04PM +0100, Torben Hoffmann wrote:
> >    Hi,
> >
> >    I have added more properties to test/ec_dictionary_proper -
> >    [1]
> https://github.com/lehoff/erlware_commons/blob/master/test/ec_dictionary_proper.erl
> >
> >    I would encourage you all to go a and look and them and send me
> >    suggestions to new thing to be tested for a dictionary.
> >
> >    I have run into a problem where it seems that PropEr is able to create
> a
> >    dictionary based on gb_trees where the same key is present more than
> once.
> >    That is bad(tm).
> >    Unfortunately I have not been able to work well enough with PropEr to
> get
> >    a sequence of operations out that shows how it actually created such
> an
> >    instance of gb_trees, but when I do I will explain the finding in
> details.
>
> Our 'add' maps to the gb_trees enter function. According to the docs
> it should insert if the key doesn't exist or update if the key
> exists. Could this be a key equality problem. That is =:= vs ==, I
> suspect not since you are using integers for the keys but it doesn't
> hurt to ask the obvious questions.
>

Hmmm, that is actually something that I did not pay attention to. It won't
do any harm with the integers I am using now, but for others it could be an
issue, so I will think about how this is tested the best.

Cheers,
Torben


>
>
> >    The failing property is called prop_to_list_mathes_get() and it tries
> to
> >    compare the output of ec_dictionary:to_list to the output of using
> >    ec_dictionary:get/2 on all the keys in the to_list output.
> >    They are not the same in some cases due to the gb_trees thing above.
> >
> >    Most likely I am doing something extremely stupid, but it could be fun
> if
> >    there was a subtle bug in gb_trees... or maybe the right word is
> scary...
> >
> >    Cheers,
> >    Torben
> >    --
> >    [2]http://www.linkedin.com/in/torbenhoffmann
> >
> > References
> >
> >    Visible links
> >    1.
> https://github.com/lehoff/erlware_commons/blob/master/test/ec_dictionary_proper.erl
> >    2. http://www.linkedin.com/in/torbenhoffmann
>
> --
> Eric Merritt
> Erlang & OTP in Action (Manning) http://manning.com/logan
> http://twitter.com/ericbmerritt
> http://erlware.org
>
> --
> You received this message because you are subscribed to the Google Groups
> "erlware-dev" group.
> To post to this group, send email to erlware-dev@googlegroups.com.
> To unsubscribe from this group, send email to
> erlware-dev+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/erlware-dev?hl=en.
>
>


-- 
http://www.linkedin.com/in/torbenhoffmann

-- 
You received this message because you are subscribed to the Google Groups 
"erlware-dev" group.
To post to this group, send email to erlware-dev@googlegroups.com.
To unsubscribe from this group, send email to 
erlware-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/erlware-dev?hl=en.

Reply via email to