[Freegis-list] Strange behavior in Tree::R CPAN module

Ari Jolma ari.jolma at gmail.com
Mon Aug 10 13:31:40 CEST 2009


Brandon,

Thanks, I've fixed this by explicitly removing the root node in the case 
when last object is removed from the tree. I also now check for empty 
trees in methods objects and dump. I added your tests to the test suite.

The new version 0.06 is (or will soon be) in CPAN.

Best regards,

Ari

Brandon Forehand kirjoitti:
> So, I was using the Tree::R module, and I ran into a strange problem, so
> I wrote a small unit test to test the problem, and it appears the source
> of the bug may be in Tree::R itself.  The underlying cause seems to be
> that when you remove everything from a Tree::R object and then insert
> something back into the same Tree::R object, the resulting number of
> objects in the Tree is no longer correct.  Here's a small unit test that
> reproduces the bug:
>
> use strict;
> use warnings;
>
> use Test::More tests => 5;
>
> BEGIN { use_ok('Tree::R'); }
>
> my $r_tree = Tree::R->new();
>
> isa_ok($r_tree, 'Tree::R');
>
> my $rects = {
>     1 => [0, 0, 10, 20],
>     2 => [20, 0, 10, 20],
>     3 => [0, 30, 10, 20],
>     4 => [20, 30, 10, 20],
> };
>
> for my $rect (keys %$rects) {
>     $r_tree->insert($rect, @{$rects->{$rect}});
> }
>
> {
>     my @objects;
>     $r_tree->objects(\@objects);
>
>     is(scalar(@objects), 4);
> }
>
> for my $rect (keys %$rects) {
>     $r_tree->remove($rect);
> }
>
> {
>     my @objects;
>     $r_tree->objects(\@objects);
>
>     is(scalar(@objects), 0);
> }
>
> $r_tree->insert($rects->{1}, @{$rects->{1}});
>
> {
>     my @objects;
>     $r_tree->objects(\@objects);
>
>     is(scalar(@objects), 1);
> }
>
> In this unit test, the last test fails for me.  Instead of the value 1,
> I got 2.  I don't believe that this is the intended behavior
>
>   


-- 
Prof. Ari Jolma
Environmental Management Information Technology
Teknillinen Korkeakoulu / Helsinki University of Technology
tel: +358 9 4511 address: POBox 5300, 02015 TKK, Finland
Email: ari.jolma at tkk.fi URL: http://geoinformatics.tkk.fi




More information about the Freegis-list mailing list

This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)