package tests::ReportTableInfoTest;
use strict;
use base qw/Lire::Test::TestCase/;
use Lire::Config::Index;
use Lire::Report::TableInfo;
sub new {
my $self = shift->SUPER::new( @_ );
return $self;
}
sub set_up {
my $self = $_[0];
$self->SUPER::set_up();
$self->{'table_info'} = new Lire::Report::TableInfo();
$self->{'_old_reg'} = \%Lire::Config::Index::REGISTRY;
%Lire::Config::Index::REGISTRY = ();
return;
}
sub tear_down {
my $self = $_[0];
$self->SUPER::tear_down();
*Lire::Config::Index::REGISTRY = $self->{'_old_reg'};
return;
}
sub test_set_variables_indices {
my $self = $_[0];
$self->{'table_info'}->set_variables_indices();
$self->assert( Lire::Config::Index->has_index( 'variables' ) ? 1 : 0,
'variables' );
$self->assert_str_equals( $self->{'table_info'},
Lire::Config::Index->get_index( 'variables' )->table_info() );
$self->assert_str_equals( 'both',
Lire::Config::Index->get_index( 'variables' )->type() );
$self->assert( Lire::Config::Index->has_index( 'categorical_variables' ) ? 1 : 0,
'categorical_variables' );
$self->assert_str_equals( $self->{'table_info'},
Lire::Config::Index->get_index( 'categorical_variables' )->table_info() );
$self->assert_str_equals( 'categorical',
Lire::Config::Index->get_index( 'categorical_variables' )->type() );
$self->assert( Lire::Config::Index->has_index( 'variables' ) ? 1 : 0,
'variables' );
$self->assert_str_equals( $self->{'table_info'},
Lire::Config::Index->get_index( 'numerical_variables' )->table_info() );
$self->assert_str_equals( 'numerical',
Lire::Config::Index->get_index( 'numerical_variables' )->type() );
$self->{'table_info'}->reset_variables_indices();
$self->assert( !Lire::Config::Index->has_index( 'variables' ) ? 1 : 0,
'variables' );
$self->assert( !Lire::Config::Index->has_index( 'categorical_variables' ) ? 1 : 0,
'categorical_variables' );
$self->assert( !Lire::Config::Index->has_index( 'numerical_variables' ) ? 1 : 0,
'numerical_variables' );
}
sub test_header_rows {
my $self = $_[0];
my $table_info = new Lire::Report::TableInfo();
my $name1 = $table_info->create_column_info( 'name1', 'categorical',
'string' );
my $group1 = $table_info->create_group_info( 'group1' );
my $name2 = $group1->create_column_info( 'name2', 'categorical',
'string' );
my $group2 = $group1->create_group_info( 'group2' );
my $name3 = $group2->create_column_info( 'name3', 'categorical',
'string' );
my $value1 = $group2->create_column_info( 'value1', 'numerical', 'int' );
my $group3 = $table_info->create_group_info( 'group3' );
my $name4 = $group3->create_column_info( 'name4', 'categorical',
'string' );
my $value2 = $group3->create_column_info( 'value2', 'numerical', 'int' );
$table_info->compute_group_layout();
$self->assert_deep_equals( [ [ $name1, undef, undef,$value1,undef,$value2],
[ undef, $name2, undef, undef, $name4, undef],
[ undef, undef, $name3, undef, undef, undef] ],
$table_info->header_rows() );
}
1;
syntax highlighted by Code2HTML, v. 0.9.1