class TestCase::Dump {
use TestCase::DumpTest1;
use Fn;
use TestCase::Point_3b;
use TestCase::Point_3s;
use TestCase::Point_3i;
use TestCase::Point_3l;
use TestCase::Point_3f;
use TestCase::Point_3d;
static method dump_string : string () {
# dump string
my $string = "Hello";
my $dump = dump $string;
return $dump;
}
static method dump_undef : string () {
# dump undef
my $string = (string)undef;
my $dump = dump $string;
return $dump;
}
static method dump_byte_array : string () {
# dump byte array
my $array = [(byte)1, 2];
my $dump = dump $array;
return $dump;
}
static method dump_short_array : string () {
# dump short array
my $array = [(short)1, 2];
my $dump = dump $array;
return $dump;
}
static method dump_int_array : string () {
# dump int array
my $array = [(int)1, 2];
my $dump = dump $array;
return $dump;
}
static method dump_long_array : string () {
# dump long array
my $array = [(long)1, 2];
my $dump = dump $array;
return $dump;
}
static method dump_float_array : string () {
# dump float array
my $array = [(float)1.2f, 2.4f];
my $dump = dump $array;
return $dump;
}
static method dump_double_array : string () {
# dump double array
my $array = [(double)1.2, 2.4];
my $dump = dump $array;
return $dump;
}
static method dump_multi_numeric_byte_array : string () {
# dump numeric byte array
my $array = new TestCase::Point_3b[2];
$array->[0]{x} = 1;
$array->[0]{y} = 2;
$array->[0]{z} = 3;
$array->[1]{x} = 4;
$array->[1]{y} = 5;
$array->[1]{z} = 6;
my $dump = dump $array;
return $dump;
}
static method dump_multi_numeric_short_array : string () {
# dump numeric short array
my $array = new TestCase::Point_3s[2];
$array->[0]{x} = 1;
$array->[0]{y} = 2;
$array->[0]{z} = 3;
$array->[1]{x} = 4;
$array->[1]{y} = 5;
$array->[1]{z} = 6;
my $dump = dump $array;
return $dump;
}
static method dump_multi_numeric_int_array : string () {
# dump numeric int array
my $array = new TestCase::Point_3i[2];
$array->[0]{x} = 1;
$array->[0]{y} = 2;
$array->[0]{z} = 3;
$array->[1]{x} = 4;
$array->[1]{y} = 5;
$array->[1]{z} = 6;
my $dump = dump $array;
return $dump;
}
static method dump_multi_numeric_long_array : string () {
# dump numeric long array
my $array = new TestCase::Point_3l[2];
$array->[0]{x} = 1;
$array->[0]{y} = 2;
$array->[0]{z} = 3;
$array->[1]{x} = 4;
$array->[1]{y} = 5;
$array->[1]{z} = 6;
my $dump = dump $array;
return $dump;
}
static method dump_multi_numeric_float_array : string () {
# dump numeric float array
my $array = new TestCase::Point_3f[2];
$array->[0]{x} = 1.1f;
$array->[0]{y} = 2.1f;
$array->[0]{z} = 3.1f;
$array->[1]{x} = 4.1f;
$array->[1]{y} = 5.1f;
$array->[1]{z} = 6.1f;
my $dump = dump $array;
return $dump;
}
static method dump_multi_numeric_double_array : string () {
# dump numeric double array
my $array = new TestCase::Point_3d[2];
$array->[0]{x} = 1.1;
$array->[0]{y} = 2.1;
$array->[0]{z} = 3.1;
$array->[1]{x} = 4.1;
$array->[1]{y} = 5.1;
$array->[1]{z} = 6.1;
my $dump = dump $array;
return $dump;
}
static method dump_string_array : string () {
# dump numeric double array
my $array = ["abc", "def", undef];
my $dump = dump $array;
return $dump;
}
static method dump_string_array_of_array : string () {
# dump numeric double array
my $array = [["abc", "def", undef], ["a", "b"]];
my $dump = dump $array;
return $dump;
}
static method dump_object : string () {
my $object = new TestCase::DumpTest1;
$object->{byte_value} = 1;
$object->{short_value} = 2;
$object->{int_value} = 3;
$object->{long_value} = 4;
$object->{float_value} = 1.1f;
$object->{double_value} = 1.2;
$object->{string_value} = "a";
$object->{int_array} = [1, 2, 3];
$object->{object_value} = new TestCase::DumpTest1;
my $dump = dump $object;
return $dump;
}
static method dump_object_reuse : string () {
my $object = new TestCase::DumpTest1;
$object->{object_value} = $object;
my $array = [(object)$object, $object, $object];
my $dump = dump $array;
$object->{object_value} = undef;
return $dump;
}
static method dump_object_reuse_weaken : string () {
my $object = new TestCase::DumpTest1;
$object->{object_value} = $object;
weaken $object->{object_value};
my $array = [(object)$object, $object, $object];
my $dump = dump $array;
$object->{object_value} = undef;
return $dump;
}
}