class TestCase::MulnumArray {
use TestCase::Point_3b;
use TestCase::Point_3s;
use TestCase::Point_3i;
use TestCase::Point_3l;
use TestCase::Point_3f;
use TestCase::Point_3d;
use TestCase::Matrix4_16b;
use TestCase::Matrix4_16s;
use TestCase::Matrix4_16i;
use TestCase::Matrix4_16l;
use TestCase::Matrix4_16f;
use TestCase::Matrix4_16d;
use Fn;
use Array;
static method mulnum_array_max_fields_byte : int () {
my $mat = new TestCase::Matrix4_16b[3];
$mat->[0]{x11} = (byte)Fn->INT8_MIN;
$mat->[0]{x21} = 21;
$mat->[0]{x31} = 31;
$mat->[0]{x41} = 41;
$mat->[0]{x12} = 12;
$mat->[0]{x22} = 22;
$mat->[0]{x32} = 32;
$mat->[0]{x42} = 42;
$mat->[0]{x13} = 13;
$mat->[0]{x23} = 23;
$mat->[0]{x33} = 33;
$mat->[0]{x43} = 43;
$mat->[0]{x14} = 14;
$mat->[0]{x24} = 24;
$mat->[0]{x34} = 34;
$mat->[0]{x44} = 44;
$mat->[1]{x11} = 21;
$mat->[1]{x21} = 31;
$mat->[1]{x31} = 41;
$mat->[1]{x41} = 51;
$mat->[1]{x12} = 22;
$mat->[1]{x22} = 32;
$mat->[1]{x32} = 42;
$mat->[1]{x42} = 52;
$mat->[1]{x13} = 23;
$mat->[1]{x23} = 33;
$mat->[1]{x33} = 43;
$mat->[1]{x43} = 53;
$mat->[1]{x14} = 24;
$mat->[1]{x24} = 34;
$mat->[1]{x34} = 44;
$mat->[1]{x44} = 54;
$mat->[2]{x11} = (byte)($mat->[0]{x11} + $mat->[1]{x11});
$mat->[2]{x21} = (byte)($mat->[0]{x21} + $mat->[1]{x21});
$mat->[2]{x31} = (byte)($mat->[0]{x31} + $mat->[1]{x31});
$mat->[2]{x41} = (byte)($mat->[0]{x41} + $mat->[1]{x41});
$mat->[2]{x12} = (byte)($mat->[0]{x12} + $mat->[1]{x12});
$mat->[2]{x22} = (byte)($mat->[0]{x22} + $mat->[1]{x22});
$mat->[2]{x32} = (byte)($mat->[0]{x32} + $mat->[1]{x32});
$mat->[2]{x42} = (byte)($mat->[0]{x42} + $mat->[1]{x42});
$mat->[2]{x13} = (byte)($mat->[0]{x13} + $mat->[1]{x13});
$mat->[2]{x23} = (byte)($mat->[0]{x23} + $mat->[1]{x23});
$mat->[2]{x33} = (byte)($mat->[0]{x33} + $mat->[1]{x33});
$mat->[2]{x43} = (byte)($mat->[0]{x43} + $mat->[1]{x43});
$mat->[2]{x14} = (byte)($mat->[0]{x14} + $mat->[1]{x14});
$mat->[2]{x24} = (byte)($mat->[0]{x24} + $mat->[1]{x24});
$mat->[2]{x34} = (byte)($mat->[0]{x34} + $mat->[1]{x34});
$mat->[2]{x44} = (byte)($mat->[0]{x44} + $mat->[1]{x44});
unless ($mat->[2]{x11} == Fn->INT8_MIN + 21) {
return 0;
}
unless ($mat->[2]{x21} == 52) {
return 0;
}
unless ($mat->[2]{x31} == 72) {
return 0;
}
unless ($mat->[2]{x41} == 92) {
return 0;
}
unless ($mat->[2]{x12} == 34) {
return 0;
}
unless ($mat->[2]{x22} == 54) {
return 0;
}
unless ($mat->[2]{x32} == 74) {
return 0;
}
unless ($mat->[2]{x42} == 94) {
return 0;
}
unless ($mat->[2]{x13} == 36) {
return 0;
}
unless ($mat->[2]{x23} == 56) {
return 0;
}
unless ($mat->[2]{x33} == 76) {
return 0;
}
unless ($mat->[2]{x43} == 96) {
return 0;
}
unless ($mat->[2]{x41} == 92) {
return 0;
}
unless ($mat->[2]{x42} == 94) {
return 0;
}
unless ($mat->[2]{x43} == 96) {
return 0;
}
unless ($mat->[2]{x44} == 98) {
return 0;
}
return 1;
}
static method mulnum_array_max_fields_short : int () {
my $mat = new TestCase::Matrix4_16s[3];
$mat->[0]{x11} = (short)Fn->INT16_MIN;
$mat->[0]{x21} = 21;
$mat->[0]{x31} = 31;
$mat->[0]{x41} = 41;
$mat->[0]{x12} = 12;
$mat->[0]{x22} = 22;
$mat->[0]{x32} = 32;
$mat->[0]{x42} = 42;
$mat->[0]{x13} = 13;
$mat->[0]{x23} = 23;
$mat->[0]{x33} = 33;
$mat->[0]{x43} = 43;
$mat->[0]{x14} = 14;
$mat->[0]{x24} = 24;
$mat->[0]{x34} = 34;
$mat->[0]{x44} = 44;
$mat->[1]{x11} = 111;
$mat->[1]{x21} = 121;
$mat->[1]{x31} = 131;
$mat->[1]{x41} = 141;
$mat->[1]{x12} = 112;
$mat->[1]{x22} = 122;
$mat->[1]{x32} = 132;
$mat->[1]{x42} = 142;
$mat->[1]{x13} = 113;
$mat->[1]{x23} = 123;
$mat->[1]{x33} = 133;
$mat->[1]{x43} = 143;
$mat->[1]{x14} = 114;
$mat->[1]{x24} = 124;
$mat->[1]{x34} = 134;
$mat->[1]{x44} = 144;
$mat->[2]{x11} = (short)($mat->[0]{x11} + $mat->[1]{x11});
$mat->[2]{x21} = (short)($mat->[0]{x21} + $mat->[1]{x21});
$mat->[2]{x31} = (short)($mat->[0]{x31} + $mat->[1]{x31});
$mat->[2]{x41} = (short)($mat->[0]{x41} + $mat->[1]{x41});
$mat->[2]{x12} = (short)($mat->[0]{x12} + $mat->[1]{x12});
$mat->[2]{x22} = (short)($mat->[0]{x22} + $mat->[1]{x22});
$mat->[2]{x32} = (short)($mat->[0]{x32} + $mat->[1]{x32});
$mat->[2]{x42} = (short)($mat->[0]{x42} + $mat->[1]{x42});
$mat->[2]{x13} = (short)($mat->[0]{x13} + $mat->[1]{x13});
$mat->[2]{x23} = (short)($mat->[0]{x23} + $mat->[1]{x23});
$mat->[2]{x33} = (short)($mat->[0]{x33} + $mat->[1]{x33});
$mat->[2]{x43} = (short)($mat->[0]{x43} + $mat->[1]{x43});
$mat->[2]{x14} = (short)($mat->[0]{x14} + $mat->[1]{x14});
$mat->[2]{x24} = (short)($mat->[0]{x24} + $mat->[1]{x24});
$mat->[2]{x34} = (short)($mat->[0]{x34} + $mat->[1]{x34});
$mat->[2]{x44} = (short)($mat->[0]{x44} + $mat->[1]{x44});
unless ($mat->[2]{x11} == Fn->INT16_MIN + 111) {
return 0;
}
unless ($mat->[2]{x21} == 142) {
return 0;
}
unless ($mat->[2]{x31} == 162) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x12} == 124) {
return 0;
}
unless ($mat->[2]{x22} == 144) {
return 0;
}
unless ($mat->[2]{x32} == 164) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x13} == 126) {
return 0;
}
unless ($mat->[2]{x23} == 146) {
return 0;
}
unless ($mat->[2]{x33} == 166) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x44} == 188) {
return 0;
}
return 1;
}
static method mulnum_array_max_fields_int : int () {
my $mat = new TestCase::Matrix4_16i[3];
$mat->[0]{x11} = Fn->INT32_MIN;
$mat->[0]{x21} = 21;
$mat->[0]{x31} = 31;
$mat->[0]{x41} = 41;
$mat->[0]{x12} = 12;
$mat->[0]{x22} = 22;
$mat->[0]{x32} = 32;
$mat->[0]{x42} = 42;
$mat->[0]{x13} = 13;
$mat->[0]{x23} = 23;
$mat->[0]{x33} = 33;
$mat->[0]{x43} = 43;
$mat->[0]{x14} = 14;
$mat->[0]{x24} = 24;
$mat->[0]{x34} = 34;
$mat->[0]{x44} = 44;
$mat->[1]{x11} = 111;
$mat->[1]{x21} = 121;
$mat->[1]{x31} = 131;
$mat->[1]{x41} = 141;
$mat->[1]{x12} = 112;
$mat->[1]{x22} = 122;
$mat->[1]{x32} = 132;
$mat->[1]{x42} = 142;
$mat->[1]{x13} = 113;
$mat->[1]{x23} = 123;
$mat->[1]{x33} = 133;
$mat->[1]{x43} = 143;
$mat->[1]{x14} = 114;
$mat->[1]{x24} = 124;
$mat->[1]{x34} = 134;
$mat->[1]{x44} = 144;
$mat->[2]{x11} = $mat->[0]{x11} + $mat->[1]{x11};
$mat->[2]{x21} = $mat->[0]{x21} + $mat->[1]{x21};
$mat->[2]{x31} = $mat->[0]{x31} + $mat->[1]{x31};
$mat->[2]{x41} = $mat->[0]{x41} + $mat->[1]{x41};
$mat->[2]{x12} = $mat->[0]{x12} + $mat->[1]{x12};
$mat->[2]{x22} = $mat->[0]{x22} + $mat->[1]{x22};
$mat->[2]{x32} = $mat->[0]{x32} + $mat->[1]{x32};
$mat->[2]{x42} = $mat->[0]{x42} + $mat->[1]{x42};
$mat->[2]{x13} = $mat->[0]{x13} + $mat->[1]{x13};
$mat->[2]{x23} = $mat->[0]{x23} + $mat->[1]{x23};
$mat->[2]{x33} = $mat->[0]{x33} + $mat->[1]{x33};
$mat->[2]{x43} = $mat->[0]{x43} + $mat->[1]{x43};
$mat->[2]{x14} = $mat->[0]{x14} + $mat->[1]{x14};
$mat->[2]{x24} = $mat->[0]{x24} + $mat->[1]{x24};
$mat->[2]{x34} = $mat->[0]{x34} + $mat->[1]{x34};
$mat->[2]{x44} = $mat->[0]{x44} + $mat->[1]{x44};
unless ($mat->[2]{x11} == Fn->INT32_MIN + 111) {
return 0;
}
unless ($mat->[2]{x21} == 142) {
return 0;
}
unless ($mat->[2]{x31} == 162) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x12} == 124) {
return 0;
}
unless ($mat->[2]{x22} == 144) {
return 0;
}
unless ($mat->[2]{x32} == 164) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x13} == 126) {
return 0;
}
unless ($mat->[2]{x23} == 146) {
return 0;
}
unless ($mat->[2]{x33} == 166) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x44} == 188) {
return 0;
}
return 1;
}
static method mulnum_array_max_fields_long : int () {
my $mat = new TestCase::Matrix4_16l[3];
$mat->[0]{x11} = Fn->INT64_MIN;
$mat->[0]{x21} = 21;
$mat->[0]{x31} = 31;
$mat->[0]{x41} = 41;
$mat->[0]{x12} = 12;
$mat->[0]{x22} = 22;
$mat->[0]{x32} = 32;
$mat->[0]{x42} = 42;
$mat->[0]{x13} = 13;
$mat->[0]{x23} = 23;
$mat->[0]{x33} = 33;
$mat->[0]{x43} = 43;
$mat->[0]{x14} = 14;
$mat->[0]{x24} = 24;
$mat->[0]{x34} = 34;
$mat->[0]{x44} = 44;
$mat->[1]{x11} = 111;
$mat->[1]{x21} = 121;
$mat->[1]{x31} = 131;
$mat->[1]{x41} = 141;
$mat->[1]{x12} = 112;
$mat->[1]{x22} = 122;
$mat->[1]{x32} = 132;
$mat->[1]{x42} = 142;
$mat->[1]{x13} = 113;
$mat->[1]{x23} = 123;
$mat->[1]{x33} = 133;
$mat->[1]{x43} = 143;
$mat->[1]{x14} = 114;
$mat->[1]{x24} = 124;
$mat->[1]{x34} = 134;
$mat->[1]{x44} = 144;
$mat->[2]{x11} = $mat->[0]{x11} + $mat->[1]{x11};
$mat->[2]{x21} = $mat->[0]{x21} + $mat->[1]{x21};
$mat->[2]{x31} = $mat->[0]{x31} + $mat->[1]{x31};
$mat->[2]{x41} = $mat->[0]{x41} + $mat->[1]{x41};
$mat->[2]{x12} = $mat->[0]{x12} + $mat->[1]{x12};
$mat->[2]{x22} = $mat->[0]{x22} + $mat->[1]{x22};
$mat->[2]{x32} = $mat->[0]{x32} + $mat->[1]{x32};
$mat->[2]{x42} = $mat->[0]{x42} + $mat->[1]{x42};
$mat->[2]{x13} = $mat->[0]{x13} + $mat->[1]{x13};
$mat->[2]{x23} = $mat->[0]{x23} + $mat->[1]{x23};
$mat->[2]{x33} = $mat->[0]{x33} + $mat->[1]{x33};
$mat->[2]{x43} = $mat->[0]{x43} + $mat->[1]{x43};
$mat->[2]{x14} = $mat->[0]{x14} + $mat->[1]{x14};
$mat->[2]{x24} = $mat->[0]{x24} + $mat->[1]{x24};
$mat->[2]{x34} = $mat->[0]{x34} + $mat->[1]{x34};
$mat->[2]{x44} = $mat->[0]{x44} + $mat->[1]{x44};
unless ($mat->[2]{x11} == Fn->INT64_MIN + 111) {
return 0;
}
unless ($mat->[2]{x21} == 142) {
return 0;
}
unless ($mat->[2]{x31} == 162) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x12} == 124) {
return 0;
}
unless ($mat->[2]{x22} == 144) {
return 0;
}
unless ($mat->[2]{x32} == 164) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x13} == 126) {
return 0;
}
unless ($mat->[2]{x23} == 146) {
return 0;
}
unless ($mat->[2]{x33} == 166) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x44} == 188) {
return 0;
}
return 1;
}
static method mulnum_array_max_fields_float : int () {
my $mat = new TestCase::Matrix4_16f[3];
$mat->[0]{x11} = Fn->FLT_MIN;
$mat->[0]{x21} = 21;
$mat->[0]{x31} = 31;
$mat->[0]{x41} = 41;
$mat->[0]{x12} = 12;
$mat->[0]{x22} = 22;
$mat->[0]{x32} = 32;
$mat->[0]{x42} = 42;
$mat->[0]{x13} = 13;
$mat->[0]{x23} = 23;
$mat->[0]{x33} = 33;
$mat->[0]{x43} = 43;
$mat->[0]{x14} = 14;
$mat->[0]{x24} = 24;
$mat->[0]{x34} = 34;
$mat->[0]{x44} = 44;
$mat->[1]{x11} = 111;
$mat->[1]{x21} = 121;
$mat->[1]{x31} = 131;
$mat->[1]{x41} = 141;
$mat->[1]{x12} = 112;
$mat->[1]{x22} = 122;
$mat->[1]{x32} = 132;
$mat->[1]{x42} = 142;
$mat->[1]{x13} = 113;
$mat->[1]{x23} = 123;
$mat->[1]{x33} = 133;
$mat->[1]{x43} = 143;
$mat->[1]{x14} = 114;
$mat->[1]{x24} = 124;
$mat->[1]{x34} = 134;
$mat->[1]{x44} = 144;
$mat->[2]{x11} = $mat->[0]{x11} + $mat->[1]{x11};
$mat->[2]{x21} = $mat->[0]{x21} + $mat->[1]{x21};
$mat->[2]{x31} = $mat->[0]{x31} + $mat->[1]{x31};
$mat->[2]{x41} = $mat->[0]{x41} + $mat->[1]{x41};
$mat->[2]{x12} = $mat->[0]{x12} + $mat->[1]{x12};
$mat->[2]{x22} = $mat->[0]{x22} + $mat->[1]{x22};
$mat->[2]{x32} = $mat->[0]{x32} + $mat->[1]{x32};
$mat->[2]{x42} = $mat->[0]{x42} + $mat->[1]{x42};
$mat->[2]{x13} = $mat->[0]{x13} + $mat->[1]{x13};
$mat->[2]{x23} = $mat->[0]{x23} + $mat->[1]{x23};
$mat->[2]{x33} = $mat->[0]{x33} + $mat->[1]{x33};
$mat->[2]{x43} = $mat->[0]{x43} + $mat->[1]{x43};
$mat->[2]{x14} = $mat->[0]{x14} + $mat->[1]{x14};
$mat->[2]{x24} = $mat->[0]{x24} + $mat->[1]{x24};
$mat->[2]{x34} = $mat->[0]{x34} + $mat->[1]{x34};
$mat->[2]{x44} = $mat->[0]{x44} + $mat->[1]{x44};
unless ($mat->[2]{x11} == Fn->FLT_MIN + 111) {
return 0;
}
unless ($mat->[2]{x21} == 142) {
return 0;
}
unless ($mat->[2]{x31} == 162) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x12} == 124) {
return 0;
}
unless ($mat->[2]{x22} == 144) {
return 0;
}
unless ($mat->[2]{x32} == 164) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x13} == 126) {
return 0;
}
unless ($mat->[2]{x23} == 146) {
return 0;
}
unless ($mat->[2]{x33} == 166) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x44} == 188) {
return 0;
}
return 1;
}
static method mulnum_array_max_fields_double : int () {
my $mat = new TestCase::Matrix4_16d[3];
$mat->[0]{x11} = Fn->DBL_MIN;
$mat->[0]{x21} = 21;
$mat->[0]{x31} = 31;
$mat->[0]{x41} = 41;
$mat->[0]{x12} = 12;
$mat->[0]{x22} = 22;
$mat->[0]{x32} = 32;
$mat->[0]{x42} = 42;
$mat->[0]{x13} = 13;
$mat->[0]{x23} = 23;
$mat->[0]{x33} = 33;
$mat->[0]{x43} = 43;
$mat->[0]{x14} = 14;
$mat->[0]{x24} = 24;
$mat->[0]{x34} = 34;
$mat->[0]{x44} = 44;
$mat->[1]{x11} = 111;
$mat->[1]{x21} = 121;
$mat->[1]{x31} = 131;
$mat->[1]{x41} = 141;
$mat->[1]{x12} = 112;
$mat->[1]{x22} = 122;
$mat->[1]{x32} = 132;
$mat->[1]{x42} = 142;
$mat->[1]{x13} = 113;
$mat->[1]{x23} = 123;
$mat->[1]{x33} = 133;
$mat->[1]{x43} = 143;
$mat->[1]{x14} = 114;
$mat->[1]{x24} = 124;
$mat->[1]{x34} = 134;
$mat->[1]{x44} = 144;
$mat->[2]{x11} = $mat->[0]{x11} + $mat->[1]{x11};
$mat->[2]{x21} = $mat->[0]{x21} + $mat->[1]{x21};
$mat->[2]{x31} = $mat->[0]{x31} + $mat->[1]{x31};
$mat->[2]{x41} = $mat->[0]{x41} + $mat->[1]{x41};
$mat->[2]{x12} = $mat->[0]{x12} + $mat->[1]{x12};
$mat->[2]{x22} = $mat->[0]{x22} + $mat->[1]{x22};
$mat->[2]{x32} = $mat->[0]{x32} + $mat->[1]{x32};
$mat->[2]{x42} = $mat->[0]{x42} + $mat->[1]{x42};
$mat->[2]{x13} = $mat->[0]{x13} + $mat->[1]{x13};
$mat->[2]{x23} = $mat->[0]{x23} + $mat->[1]{x23};
$mat->[2]{x33} = $mat->[0]{x33} + $mat->[1]{x33};
$mat->[2]{x43} = $mat->[0]{x43} + $mat->[1]{x43};
$mat->[2]{x14} = $mat->[0]{x14} + $mat->[1]{x14};
$mat->[2]{x24} = $mat->[0]{x24} + $mat->[1]{x24};
$mat->[2]{x34} = $mat->[0]{x34} + $mat->[1]{x34};
$mat->[2]{x44} = $mat->[0]{x44} + $mat->[1]{x44};
unless ($mat->[2]{x11} == Fn->DBL_MIN + 111) {
return 0;
}
unless ($mat->[2]{x21} == 142) {
return 0;
}
unless ($mat->[2]{x31} == 162) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x12} == 124) {
return 0;
}
unless ($mat->[2]{x22} == 144) {
return 0;
}
unless ($mat->[2]{x32} == 164) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x13} == 126) {
return 0;
}
unless ($mat->[2]{x23} == 146) {
return 0;
}
unless ($mat->[2]{x33} == 166) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x41} == 182) {
return 0;
}
unless ($mat->[2]{x42} == 184) {
return 0;
}
unless ($mat->[2]{x43} == 186) {
return 0;
}
unless ($mat->[2]{x44} == 188) {
return 0;
}
return 1;
}
static method array_byte : int () {
my $nums1 = new TestCase::Point_3b[10];
$nums1->[9]{x} = (byte)Fn->INT8_MIN;
$nums1->[9]{y} = (byte)(Fn->INT8_MIN + 1);
$nums1->[9]{z} = (byte)(Fn->INT8_MIN + 2);
my $nums2 = new TestCase::Point_3b[10];
$nums2->[3] = $nums1->[9];
my $x = $nums2->[3]{x};
my $y = $nums2->[3]{y};
my $z = $nums2->[3]{z};
if ($x == Fn->INT8_MIN && $y == (Fn->INT8_MIN + 1) && $z == (Fn->INT8_MIN + 2)) {
return 1;
}
return 0;
}
static method array_short : int () {
my $nums1 = new TestCase::Point_3s[10];
$nums1->[9]{x} = (short)Fn->INT16_MIN;
$nums1->[9]{y} = (short)(Fn->INT16_MIN + 1);
$nums1->[9]{z} = (short)(Fn->INT16_MIN + 2);
my $nums2 = new TestCase::Point_3s[10];
$nums2->[3] = $nums1->[9];
my $x = $nums2->[3]{x};
my $y = $nums2->[3]{y};
my $z = $nums2->[3]{z};
if ($x == Fn->INT16_MIN && $y == (Fn->INT16_MIN + 1) && $z == (Fn->INT16_MIN + 2)) {
return 1;
}
return 0;
}
static method array_int : int () {
my $nums1 = new TestCase::Point_3i[10];
$nums1->[9]{x} = Fn->INT32_MIN;
$nums1->[9]{y} = Fn->INT32_MIN + 1;
$nums1->[9]{z} = Fn->INT32_MIN + 2;
my $nums2 = new TestCase::Point_3i[10];
$nums2->[3] = $nums1->[9];
my $x = $nums2->[3]{x};
my $y = $nums2->[3]{y};
my $z = $nums2->[3]{z};
if ($x == Fn->INT32_MIN && $y == (Fn->INT32_MIN + 1) && $z == (Fn->INT32_MIN + 2)) {
return 1;
}
return 0;
}
static method array_long : int () {
my $nums1 = new TestCase::Point_3l[10];
$nums1->[9]{x} = Fn->INT64_MIN;
$nums1->[9]{y} = Fn->INT64_MIN + 1;
$nums1->[9]{z} = Fn->INT64_MIN + 2;
my $nums2 = new TestCase::Point_3l[10];
$nums2->[3] = $nums1->[9];
my $x = $nums2->[3]{x};
my $y = $nums2->[3]{y};
my $z = $nums2->[3]{z};
if ($x == Fn->INT64_MIN && $y == (Fn->INT64_MIN + 1) && $z == (Fn->INT64_MIN + 2)) {
return 1;
}
return 0;
}
static method array_float : int () {
my $nums1 = new TestCase::Point_3f[10];
$nums1->[9]{x} = Fn->FLT_MIN;
$nums1->[9]{y} = Fn->FLT_MIN + 0.25f;
$nums1->[9]{z} = Fn->FLT_MIN + 0.5f;
my $nums2 = new TestCase::Point_3f[10];
$nums2->[3] = $nums1->[9];
my $x = $nums2->[3]{x};
my $y = $nums2->[3]{y};
my $z = $nums2->[3]{z};
if ($x == Fn->FLT_MIN && $y == (Fn->FLT_MIN + 0.25) && $z == (Fn->FLT_MIN + 0.5)) {
return 1;
}
return 0;
}
static method array_double : int () {
my $nums1 = new TestCase::Point_3d[10];
$nums1->[9]{x} = Fn->DBL_MIN;
$nums1->[9]{y} = Fn->DBL_MIN + 0.25;
$nums1->[9]{z} = Fn->DBL_MIN + 0.5;
my $nums2 = new TestCase::Point_3d[10];
$nums2->[3] = $nums1->[9];
my $x = $nums2->[3]{x};
my $y = $nums2->[3]{y};
my $z = $nums2->[3]{z};
if ($x == Fn->DBL_MIN && $y == (Fn->DBL_MIN + 0.25) && $z == (Fn->DBL_MIN + 0.5)) {
return 1;
}
return 0;
}
static method array_field_byte : int () {
my $nums = new TestCase::Point_3b[10];
$nums->[9]{x} = (byte)Fn->INT8_MIN;
$nums->[9]{y} = (byte)(Fn->INT8_MIN + 1);
$nums->[9]{z} = (byte)(Fn->INT8_MIN + 2);
my $x = $nums->[9]{x};
my $y = $nums->[9]{y};
my $z = $nums->[9]{z};
if ($x == Fn->INT8_MIN && $y == (Fn->INT8_MIN + 1) && $z == (Fn->INT8_MIN + 2)) {
return 1;
}
return 0;
}
static method array_field_short : int () {
my $nums = new TestCase::Point_3s[10];
$nums->[9]{x} = (short)Fn->INT16_MIN;
$nums->[9]{y} = (short)(Fn->INT16_MIN + 1);
$nums->[9]{z} = (short)(Fn->INT16_MIN + 2);
my $x = $nums->[9]{x};
my $y = $nums->[9]{y};
my $z = $nums->[9]{z};
if ($x == Fn->INT16_MIN && $y == (Fn->INT16_MIN + 1) && $z == (Fn->INT16_MIN + 2)) {
return 1;
}
return 0;
}
static method array_field_int : int () {
my $nums = new TestCase::Point_3i[10];
$nums->[9]{x} = Fn->INT32_MIN;
$nums->[9]{y} = Fn->INT32_MIN + 1;
$nums->[9]{z} = Fn->INT32_MIN + 2;
my $x = $nums->[9]{x};
my $y = $nums->[9]{y};
my $z = $nums->[9]{z};
if ($x == Fn->INT32_MIN && $y == (Fn->INT32_MIN + 1) && $z == (Fn->INT32_MIN + 2)) {
return 1;
}
return 0;
}
static method array_field_long : int () {
my $nums = new TestCase::Point_3l[10];
$nums->[9]{x} = Fn->INT64_MIN;
$nums->[9]{y} = Fn->INT64_MIN + 1;
$nums->[9]{z} = Fn->INT64_MIN + 2;
my $x = $nums->[9]{x};
my $y = $nums->[9]{y};
my $z = $nums->[9]{z};
if ($x == Fn->INT64_MIN && $y == (Fn->INT64_MIN + 1) && $z == (Fn->INT64_MIN + 2)) {
return 1;
}
return 0;
}
static method array_field_float : int () {
my $nums = new TestCase::Point_3f[10];
$nums->[9]{x} = Fn->FLT_MIN;
$nums->[9]{y} = Fn->FLT_MIN + 0.25f;
$nums->[9]{z} = Fn->FLT_MIN + 0.5f;
my $x = $nums->[9]{x};
my $y = $nums->[9]{y};
my $z = $nums->[9]{z};
if ($x == Fn->FLT_MIN && $y == (Fn->FLT_MIN + 0.25) && $z == (Fn->FLT_MIN + 0.5)) {
return 1;
}
return 0;
}
static method array_field_double : int () {
my $nums = new TestCase::Point_3d[10];
$nums->[9]{x} = Fn->DBL_MIN;
$nums->[9]{y} = Fn->DBL_MIN + 0.25;
$nums->[9]{z} = Fn->DBL_MIN + 0.5;
my $x = $nums->[9]{x};
my $y = $nums->[9]{y};
my $z = $nums->[9]{z};
if ($x == Fn->DBL_MIN && $y == (Fn->DBL_MIN + 0.25) && $z == (Fn->DBL_MIN + 0.5)) {
return 1;
}
return 0;
}
static method move_byte : int () {
my $nums1 = new TestCase::Point_3b[10];
$nums1->[9]{x} = (byte)Fn->INT8_MIN;
$nums1->[9]{y} = (byte)(Fn->INT8_MIN + 1);
$nums1->[9]{z} = (byte)(Fn->INT8_MIN + 2);
my $nums2 = $nums1;
my $x = $nums2->[9]{x};
my $y = $nums2->[9]{y};
my $z = $nums2->[9]{z};
if ($x == Fn->INT8_MIN && $y == (Fn->INT8_MIN + 1) && $z == (Fn->INT8_MIN + 2)) {
return 1;
}
return 0;
}
static method move_short : int () {
my $nums1 = new TestCase::Point_3s[10];
$nums1->[9]{x} = (short)Fn->INT16_MIN;
$nums1->[9]{y} = (short)(Fn->INT16_MIN + 1);
$nums1->[9]{z} = (short)(Fn->INT16_MIN + 2);
my $nums2 = $nums1;
my $x = $nums2->[9]{x};
my $y = $nums2->[9]{y};
my $z = $nums2->[9]{z};
if ($x == Fn->INT16_MIN && $y == (Fn->INT16_MIN + 1) && $z == (Fn->INT16_MIN + 2)) {
return 1;
}
return 0;
}
static method move_int : int () {
my $nums1 = new TestCase::Point_3i[10];
$nums1->[9]{x} = Fn->INT32_MIN;
$nums1->[9]{y} = Fn->INT32_MIN + 1;
$nums1->[9]{z} = Fn->INT32_MIN + 2;
my $nums2 = $nums1;
my $x = $nums2->[9]{x};
my $y = $nums2->[9]{y};
my $z = $nums2->[9]{z};
if ($x == Fn->INT32_MIN && $y == (Fn->INT32_MIN + 1) && $z == (Fn->INT32_MIN + 2)) {
return 1;
}
return 0;
}
static method move_long : int () {
my $nums1 = new TestCase::Point_3l[10];
$nums1->[9]{x} = Fn->INT64_MIN;
$nums1->[9]{y} = Fn->INT64_MIN + 1;
$nums1->[9]{z} = Fn->INT64_MIN + 2;
my $nums2 = $nums1;
my $x = $nums2->[9]{x};
my $y = $nums2->[9]{y};
my $z = $nums2->[9]{z};
if ($x == Fn->INT64_MIN && $y == (Fn->INT64_MIN + 1) && $z == (Fn->INT64_MIN + 2)) {
return 1;
}
return 0;
}
static method move_float : int () {
my $nums1 = new TestCase::Point_3f[10];
$nums1->[9]{x} = Fn->FLT_MIN;
$nums1->[9]{y} = Fn->FLT_MIN + 0.25f;
$nums1->[9]{z} = Fn->FLT_MIN + 0.5f;
my $nums2 = $nums1;
my $x = $nums2->[9]{x};
my $y = $nums2->[9]{y};
my $z = $nums2->[9]{z};
if ($x == Fn->FLT_MIN && $y == (Fn->FLT_MIN + 0.25) && $z == (Fn->FLT_MIN + 0.5)) {
return 1;
}
return 0;
}
static method move_double : int () {
my $nums1 = new TestCase::Point_3d[10];
$nums1->[9]{x} = Fn->DBL_MIN;
$nums1->[9]{y} = Fn->DBL_MIN + 0.25;
$nums1->[9]{z} = Fn->DBL_MIN + 0.5;
my $nums2 = $nums1;
my $x = $nums2->[9]{x};
my $y = $nums2->[9]{y};
my $z = $nums2->[9]{z};
if ($x == Fn->DBL_MIN && $y == (Fn->DBL_MIN + 0.25) && $z == (Fn->DBL_MIN + 0.5)) {
return 1;
}
return 0;
}
}