The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use warnings;
use autodie;

use Statistics::RserveClient::REXP::Double;

use Test::More tests => 8;

my $dbl = new Statistics::RserveClient::REXP::Double;
isa_ok( $dbl, 'Statistics::RserveClient::REXP::Double', 'new returns an object that' );
ok( $dbl->isDouble(), 'Double is a double' );
ok( $dbl->isVector(), 'Double is a vector' );

is( $dbl->length(), 0, 'empty vector has length 0' );
ok( !defined $dbl->getValues(), 'empty vector has no values' );

my @val = ( 1.0, 2.0, 3.0 );
$dbl->setValues( \@val );

is( $dbl->length(), 3, 'length 3 when set to 3 values' );

is( $dbl->getValues(), @val, 'values is [1, 2, 3]' );

my $expected_html = << 'END_HTML';
<div class='rexp vector xt_33'>
<span class="typename">real*</span>
<span class='length'>3</span>
<div class='values'>
<div class='value'>1</div>
<div class='value'>2</div>
<div class='value'>3</div>
</div>
</div>
END_HTML

chomp($expected_html);
     
is( $dbl->toHTML(), $expected_html, 'convert to HTML' );

done_testing();