first commit
This commit is contained in:
114
perl/lib/Graph-Easy-0.76/t/nesting.t
Normal file
114
perl/lib/Graph-Easy-0.76/t/nesting.t
Normal file
@@ -0,0 +1,114 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# Test nesting of groups
|
||||
|
||||
use Test::More;
|
||||
use strict;
|
||||
|
||||
BEGIN
|
||||
{
|
||||
plan tests => 34;
|
||||
chdir 't' if -d 't';
|
||||
use lib '../lib';
|
||||
use_ok ("Graph::Easy::Group") or die($@);
|
||||
use_ok ("Graph::Easy::Group::Cell") or die($@);
|
||||
use_ok ("Graph::Easy") or die($@);
|
||||
};
|
||||
|
||||
#############################################################################
|
||||
# $group->add_member($inner);
|
||||
|
||||
my $graph = Graph::Easy->new();
|
||||
|
||||
my $group = $graph->add_group('Outer');
|
||||
|
||||
is (ref($group), 'Graph::Easy::Group');
|
||||
is ($group->error(), '', 'no error yet');
|
||||
|
||||
my $inner = $graph->add_group('Inner');
|
||||
$group->add_member($inner);
|
||||
|
||||
check_groups($group,$inner);
|
||||
|
||||
#############################################################################
|
||||
# groups_within():
|
||||
|
||||
is ($graph->groups_within(), 2, '2 groups');
|
||||
is ($graph->groups_within(-1), 2, '2 groups');
|
||||
is ($graph->groups_within(0), 1, '1 group in outer');
|
||||
is ($graph->groups_within(1), 2, '2 groups in outer+inner');
|
||||
is ($graph->groups_within(2), 2, 'no more groups');
|
||||
|
||||
#############################################################################
|
||||
# $inner->add_to_group($group);
|
||||
|
||||
$graph = Graph::Easy->new();
|
||||
|
||||
$group = $graph->add_group('Outer');
|
||||
|
||||
is (ref($group), 'Graph::Easy::Group');
|
||||
is ($group->error(), '', 'no error yet');
|
||||
|
||||
$inner = $graph->add_group('Inner');
|
||||
|
||||
$inner->add_to_group($group);
|
||||
|
||||
check_groups($group,$inner);
|
||||
|
||||
#############################################################################
|
||||
# groups_within():
|
||||
|
||||
my $inner_2 = $graph->add_group('Inner 2');
|
||||
my $inner_3 = $graph->add_group('Inner 3');
|
||||
|
||||
# Level Groups Sum
|
||||
# 0: Outer 1
|
||||
# 1: Inner Inner 3 3
|
||||
# 2: Inner 2 4
|
||||
|
||||
$inner_2->add_to_group($inner);
|
||||
$inner_3->add_to_group($group);
|
||||
|
||||
is ($graph->groups_within(), 4, '4 groups');
|
||||
is ($graph->groups_within(-1), 4, '4 groups');
|
||||
is ($graph->groups_within(0), 1, '1 group in outer');
|
||||
is ($graph->groups_within(1), 3, '3 groups in outer+inner');
|
||||
is ($graph->groups_within(2), 4, '4 groups in total');
|
||||
|
||||
# also test calling add_group() with a scalar on another group:
|
||||
my $inner_4 = $group->add_group('Inner 4');
|
||||
|
||||
# Level Groups Sum
|
||||
# 0: Outer 1
|
||||
# 1: Inner Inner 3 Inner 4 4
|
||||
# 2: Inner 2 5
|
||||
|
||||
is ($graph->groups_within(), 5, '5 groups');
|
||||
is ($graph->groups_within(-1), 5, '5 groups');
|
||||
is ($graph->groups_within(0), 1, '1 group in outer');
|
||||
is ($graph->groups_within(1), 4, '4 groups in outer+inner');
|
||||
is ($graph->groups_within(2), 5, '5 groups in total');
|
||||
|
||||
# all tests done
|
||||
1;
|
||||
|
||||
#############################################################################
|
||||
|
||||
sub check_groups
|
||||
{
|
||||
my ($group,$inner) = @_;
|
||||
|
||||
is ($inner->{group}, $group, 'inner is in outer');
|
||||
|
||||
my @groups = $group->groups();
|
||||
|
||||
is (@groups, 1, 'one group in outer');
|
||||
is ($groups[0], $inner, 'and it is "Inner"');
|
||||
|
||||
@groups = $inner->groups();
|
||||
|
||||
is (@groups, 0, 'no group in Inner');
|
||||
|
||||
is ($inner->attribute('group'), 'Outer', 'attribute("group")');
|
||||
is ($group->attribute('group'), '', 'attribute("group")');
|
||||
}
|
||||
Reference in New Issue
Block a user