The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

class TestCase::R {
use R;
use R::NDArray;
use R::NDArray::Int;
use R::NDArray::Long;
use R::NDArray::Float;
use R::NDArray::Double;
use R::NDArray::FloatComplex;
use R::NDArray::DoubleComplex;
use R::NDArray::AnyObject;
use R::NDArray::Byte;
use R::NDArray::Short;
use R::NDArray::String;
use R::NDArray::StringBuffer;
use R::NDArray::Time::Piece;
use R::OP;
use R::OP::Int as IOP;
use R::OP::Long as LOP;
use R::OP::Float as FOP;
use R::OP::Double as DOP;
use R::OP::FloatComplex as FCOP;
use R::OP::DoubleComplex as DCOP;
use R::OP::Byte as BOP;
use R::OP::Short as SOP;
use R::OP::String as STROP;
use R::OP::StringBuffer as STRBOP;
use R::OP::Time::Piece as TPOP;
use R::DataFrame;
use R::OP::Matrix;
use R::OP::DataFrame;
use R::OP::Matrix::Double as MDOP;
use R::OP::AnyObject;
use R::OP::DataFrame as DFOP;
use Math;
static method extra : int () {
return 1;
}
static method extra_old : int () {
# R::DataFrame
{
# set_col, insert_col, remove_col, exists_col, colnames
{
my $data_frame = R::DataFrame->new;
$data_frame->set_col("Name1", IOP->c([1, 2, 3]));
$data_frame->set_col("Name2", IOP->c([1, 2, 3]));
$data_frame->set_col("Name3", IOP->c([1, 2, 3]));
unless (Array->equals_string($data_frame->colnames, ["Name1", "Name2", "Name3"])) {
return 0;
}
unless (Array->equals_string($data_frame->colnames, ["Name1", "Name2", "Name3"])) {
return 0;
}
unless ($data_frame->exists_col("Name1")) {
return 0;
}
unless ($data_frame->exists_col("Name2")) {
return 0;
}
unless ($data_frame->exists_col("Name3")) {
return 0;
}
unless (Array->equals_string($data_frame->colnames, ["Name1", "Name2", "Name3"])) {
return 0;
}
$data_frame->insert_col("Name4", IOP->c([1, 2, 3]));
unless (Array->equals_string($data_frame->colnames, ["Name1", "Name2", "Name3", "Name4"])) {
return 0;
}
$data_frame->insert_col("Name0", IOP->c([1, 2, 3]), "Name1");
unless (Array->equals_string($data_frame->colnames, ["Name0", "Name1", "Name2", "Name3", "Name4"])) {
return 0;
}
$data_frame->remove_col("Name0");
unless (Array->equals_string($data_frame->colnames, ["Name1", "Name2", "Name3", "Name4"])) {
return 0;
}
$data_frame->remove_col("Name4");
unless (Array->equals_string($data_frame->colnames, ["Name1", "Name2", "Name3"])) {
return 0;
}
$data_frame->set_col("Name2", IOP->c([1, 2, 3]));
unless (Array->equals_string($data_frame->colnames, ["Name1", "Name2", "Name3"])) {
return 0;
}
}
}
# R::OP::Int
{
# R::OP::Int#eq
{
my $x_ndarray = IOP->c([1, 2, 3]);
my $y_ndarray = IOP->c([1, 2, 4]);
my $ret_ndarray = IOP->eq($x_ndarray, $y_ndarray);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [1, 1, 0])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [3])) {
return 0;
}
}
# R::OP::Int#rep
{
{
my $x_ndarray = IOP->c([1, 2, 3]);
my $times = 3;
my $ret_ndarray = IOP->rep($x_ndarray, $times);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [1, 2, 3, 1, 2, 3, 1, 2, 3])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [9])) {
return 0;
}
}
}
# R::OP::Int#rep_length
{
{
my $x_ndarray = IOP->c([1, 2, 3]);
my $length = 9;
my $ret_ndarray = IOP->rep_length($x_ndarray, $length);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [1, 2, 3, 1, 2, 3, 1, 2, 3])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [9])) {
return 0;
}
}
{
my $x_ndarray = IOP->c(1);
my $length = 9;
my $ret_ndarray = IOP->rep_length($x_ndarray, $length);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [1, 1, 1, 1, 1, 1, 1, 1, 1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [9])) {
return 0;
}
}
}
}
# R
{
# R#byte method
{
{
my $data = [(byte)1, 2, 3, 4, 5, 6];
my $dim = [2, 3];
my $ret_ndarray = BOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::Byte) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(byte)1, 2, 3, 4, 5, 6];
my $data_length = @$data;
my $ret_ndarray = BOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Byte) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
{
my $data = (byte)1;
my $ret_ndarray = BOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Byte) {
return 0;
}
unless (Array->equals_byte($ret_ndarray->data, [(byte)1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(byte)1, 2, 3, 4, 5, 6];
my $ret_ndarray = BOP->c(R::OP::Byte->c($data));
unless ($ret_ndarray is_type R::NDArray::Byte) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
}
# R#short method
{
{
my $data = [(short)1, 2, 3, 4, 5, 6];
my $dim = [2, 3];
my $ret_ndarray = SOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::Short) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(short)1, 2, 3, 4, 5, 6];
my $data_length = @$data;
my $ret_ndarray = SOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Short) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
{
my $data = (short)1;
my $ret_ndarray = SOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Short) {
return 0;
}
unless (Array->equals_short($ret_ndarray->data, [(short)1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(short)1, 2, 3, 4, 5, 6];
my $ret_ndarray = SOP->c(R::OP::Short->c($data));
unless ($ret_ndarray is_type R::NDArray::Short) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
}
# R#int method
{
{
my $data = [(int)1, 2, 3, 4, 5, 6];
my $dim = [2, 3];
my $ret_ndarray = IOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(int)1, 2, 3, 4, 5, 6];
my $data_length = @$data;
my $ret_ndarray = IOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
{
my $data = (int)1;
my $ret_ndarray = IOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [(int)1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(int)1, 2, 3, 4, 5, 6];
my $ret_ndarray = IOP->c(R::OP::Int->c($data));
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
}
# R#long method
{
{
my $data = [(long)1, 2, 3, 4, 5, 6];
my $dim = [2, 3];
my $ret_ndarray = LOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::Long) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(long)1, 2, 3, 4, 5, 6];
my $data_length = @$data;
my $ret_ndarray = LOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Long) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
{
my $data = (long)1;
my $ret_ndarray = LOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Long) {
return 0;
}
unless (Array->equals_long($ret_ndarray->data, [(long)1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(long)1, 2, 3, 4, 5, 6];
my $ret_ndarray = LOP->c(R::OP::Long->c($data));
unless ($ret_ndarray is_type R::NDArray::Long) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
}
# R#float method
{
{
my $data = [(float)1, 2, 3, 4, 5, 6];
my $dim = [2, 3];
my $ret_ndarray = FOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::Float) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(float)1, 2, 3, 4, 5, 6];
my $data_length = @$data;
my $ret_ndarray = FOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Float) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
{
my $data = (float)1;
my $ret_ndarray = FOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Float) {
return 0;
}
unless (Array->equals_float($ret_ndarray->data, [(float)1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(float)1, 2, 3, 4, 5, 6];
my $ret_ndarray = FOP->c(R::OP::Float->c($data));
unless ($ret_ndarray is_type R::NDArray::Float) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
}
# R#double method
{
{
my $data = [(double)1, 2, 3, 4, 5, 6];
my $dim = [2, 3];
my $ret_ndarray = DOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::Double) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(double)1, 2, 3, 4, 5, 6];
my $data_length = @$data;
my $ret_ndarray = DOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Double) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
{
my $data = (double)1;
my $ret_ndarray = DOP->c($data);
unless ($ret_ndarray is_type R::NDArray::Double) {
return 0;
}
unless (Array->equals_double($ret_ndarray->data, [(double)1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(double)1, 2, 3, 4, 5, 6];
my $ret_ndarray = DOP->c(R::OP::Double->c($data));
unless ($ret_ndarray is_type R::NDArray::Double) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
}
# R#float_complex method
{
{
my $data = [(Complex_2f)Math->complexf(1, 1), Math->complexf(2, 1), Math->complexf(3, 1), Math->complexf(4, 1), Math->complexf(5, 1), Math->complexf(6, 1)];
my $dim = [2, 3];
my $ret_ndarray = FCOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::FloatComplex) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(Complex_2f)Math->complexf(1, 1), Math->complexf(2, 1), Math->complexf(3, 1), Math->complexf(4, 1), Math->complexf(5, 1), Math->complexf(6, 1)];
my $data_length = @$data;
my $ret_ndarray = FCOP->c($data);
unless ($ret_ndarray is_type R::NDArray::FloatComplex) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
}
# R#double_complex method
{
{
my $data = [(Complex_2d)Math->complex(1, 1), Math->complex(2, 1), Math->complex(3, 1), Math->complex(4, 1), Math->complex(5, 1), Math->complex(6, 1)];
my $dim = [2, 3];
my $ret_ndarray = DCOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::DoubleComplex) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(Complex_2d)Math->complex(1, 1), Math->complex(2, 1), Math->complex(3, 1), Math->complex(4, 1), Math->complex(5, 1), Math->complex(6, 1)];
my $data_length = @$data;
my $ret_ndarray = DCOP->c($data);
unless ($ret_ndarray is_type R::NDArray::DoubleComplex) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
}
# R#float_complex method
{
{
my $data = [(float)1,1, 2,1, 3,1, 4,1, 5,1, 6,1];
my $dim = [2, 3];
my $ret_ndarray = FCOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::FloatComplex) {
return 0;
}
my $ret_data = new float[2 * 6];
Fn->memcpy($ret_data, 0, $ret_ndarray->data, 0, 4 * 2 * 6);
unless (Array->equals_float($ret_data, $data)) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(float)1,1, 2,1, 3,1, 4,1, 5,1, 6,1];
my $data_length = @$data / 2;
my $ret_ndarray = FCOP->c($data);
unless ($ret_ndarray is_type R::NDArray::FloatComplex) {
return 0;
}
my $ret_data = new float[2 * 6];
Fn->memcpy($ret_data, 0, $ret_ndarray->data, 0, 4 * 2 * 6);
unless (Array->equals_float($ret_data, $data)) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
}
# R#double_complex method
{
{
my $data = [(double)1,1, 2,1, 3,1, 4,1, 5,1, 6,1];
my $dim = [2, 3];
my $ret_ndarray = DCOP->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::DoubleComplex) {
return 0;
}
my $ret_data = new double[2 * 6];
Fn->memcpy($ret_data, 0, $ret_ndarray->data, 0, 8 * 2 * 6);
unless (Array->equals_double($ret_data, $data)) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(double)1,1, 2,1, 3,1, 4,1, 5,1, 6,1];
my $data_length = @$data / 2;
my $ret_ndarray = DCOP->c($data);
unless ($ret_ndarray is_type R::NDArray::DoubleComplex) {
return 0;
}
my $ret_data = new double[2 * 6];
Fn->memcpy($ret_data, 0, $ret_ndarray->data, 0, 8 * 2 * 6);
unless (Array->equals_double($ret_data, $data)) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
}
# R#i method
{
{
my $ret_ndarray = DCOP->i;
unless ($ret_ndarray is_type R::NDArray::DoubleComplex) {
return 0;
}
unless ($ret_ndarray->data->[0]{re} == 0) {
return 0;
}
unless ($ret_ndarray->data->[0]{im} == 1) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [1])) {
return 0;
}
}
}
# R::OP::AnyObject#c method
{
{
my $data = [(object)"1", "2", "3", "4", "5", "6"];
my $dim = [2, 3];
my $ret_ndarray = R::OP::AnyObject->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::AnyObject) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(object)"1", "2", "3", "4", "5", "6"];
my $data_length = @$data;
my $ret_ndarray = R::OP::AnyObject->c($data);
unless ($ret_ndarray is_type R::NDArray::AnyObject) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
}
# R::OP::String#c method
{
{
my $data = [(string)"1", "2", "3", "4", "5", "6"];
my $dim = [2, 3];
my $ret_ndarray = R::OP::String->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::String) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(string)"1", "2", "3", "4", "5", "6"];
my $data_length = @$data;
my $ret_ndarray = R::OP::String->c($data);
unless ($ret_ndarray is_type R::NDArray::String) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
}
# R::OP::StringBuffer#c
{
{
my $data = [(StringBuffer)StringBuffer->new("1"), StringBuffer->new("2"), StringBuffer->new("3"), StringBuffer->new("4"), StringBuffer->new("5"), StringBuffer->new("6")];
my $dim = [2, 3];
my $ret_ndarray = R::OP::StringBuffer->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::StringBuffer) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(StringBuffer)StringBuffer->new("1"), StringBuffer->new("2"), StringBuffer->new("3"), StringBuffer->new("4"), StringBuffer->new("5"), StringBuffer->new("6")];
my $data_length = @$data;
my $ret_ndarray = R::OP::StringBuffer->c($data);
unless ($ret_ndarray is_type R::NDArray::StringBuffer) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
}
# R::OP::Time::Piece#c method
{
{
my $data = [(Time::Piece)Time::Piece->localtime, Time::Piece->localtime, Time::Piece->localtime, Time::Piece->localtime, Time::Piece->localtime, Time::Piece->localtime];
my $dim = [2, 3];
my $ret_ndarray = R::OP::Time::Piece->c($data, $dim);
unless ($ret_ndarray is_type R::NDArray::Time::Piece) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, $ret_ndarray->dim)) {
return 0;
}
}
{
my $data = [(Time::Piece)Time::Piece->localtime, Time::Piece->localtime, Time::Piece->localtime, Time::Piece->localtime, Time::Piece->localtime, Time::Piece->localtime];
my $data_length = @$data;
my $ret_ndarray = R::OP::Time::Piece->c($data);
unless ($ret_ndarray is_type R::NDArray::Time::Piece) {
return 0;
}
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [$data_length])) {
return 0;
}
}
}
# R::OP::Int#seq method
{
{
my $begin = 1;
my $end = 5;
my $ret_ndarray = IOP->seq($begin, $end);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [1, 2, 3, 4, 5])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [5])) {
return 0;
}
}
{
my $begin = 1;
my $end = 5;
my $by = 2;
my $ret_ndarray = IOP->seq($begin, $end, $by);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [1, 3, 5])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [3])) {
return 0;
}
}
{
my $begin = 5;
my $end = 1;
my $by = -1;
my $ret_ndarray = IOP->seq($begin, $end, $by);
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [5, 4, 3, 2, 1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [5])) {
return 0;
}
}
}
# R::OP::Int#undef method
{
my $undef = IOP->undef;
unless ($undef is_compile_type R::NDArray::Int) {
return 0;
}
if ($undef) {
return 0;
}
}
}
{
# R::NDArray#set_order method
{
{
my $data = [1, 2, 3];
my $ret_ndarray = IOP->c($data);
$ret_ndarray->set_order(IOP->c([2, 0, 1]));
unless (Array->equals_int($ret_ndarray->data, [3, 1, 2])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [3])){
return 0;
}
}
}
# R::NDArray#order method
{
{
my $data = [1, 2, 3, 4, 5];
my $ndarray = IOP->c($data);
my $ret_ndarray = $ndarray->order;
unless (Array->equals_int($ret_ndarray->data, [0, 1, 2, 3, 4])) {
return 0;
}
}
{
my $data = [5, 4, 3, 2, 1];
my $ndarray = IOP->c($data);
my $ret_ndarray = $ndarray->order;
unless (Array->equals_int($ret_ndarray->data, [4, 3, 2, 1, 0])) {
return 0;
}
}
{
my $data = [2, 1, 3, 4, 5];
my $ndarray = IOP->c($data);
my $ret_ndarray = $ndarray->order;
unless (Array->equals_int($ret_ndarray->data, [1, 0, 2, 3, 4])) {
return 0;
}
}
{
my $data = [3, 1, 2];
my $ndarray = IOP->c($data);
my $ret_ndarray = $ndarray->order;
unless (Array->equals_int($ret_ndarray->data, [1, 2, 0])) {
return 0;
}
}
{
my $data = [3, 1, 2];
my $ndarray = IOP->c($data);
my $ret_ndarray = $ndarray->order;
unless (Array->equals_int($ret_ndarray->data, [1, 2, 0])) {
return 0;
}
}
{
my $data = [2, 1, 3];
my $ndarray = IOP->c($data);
my $ret_ndarray = $ndarray->order;
unless (Array->equals_int($ret_ndarray->data, [1, 0, 2])) {
return 0;
}
}
{
my $data = [30, 10, 20];
my $ndarray = IOP->c($data);
my $ret_ndarray = $ndarray->order;
unless (Array->equals_int($ret_ndarray->data, [1, 2, 0])) {
return 0;
}
$ndarray->set_order($ret_ndarray);
unless (Array->equals_int($ndarray->data, [10, 20, 30])) {
return 0;
}
}
{
my $data = [30, 10, 20];
my $ret_ndarray = IOP->c($data);
$ret_ndarray->sort_asc;
unless (Array->equals_int($ret_ndarray->data, [10, 20, 30])) {
return 0;
}
}
{
my $data = [30, 10, 20];
my $ret_ndarray = IOP->c($data);
$ret_ndarray->sort_desc;
unless (Array->equals_int($ret_ndarray->data, [30, 20, 10])) {
return 0;
}
}
}
}
# R::NDArray::Int
{
# R::NDArray::Int#new method
{
{
my $ret_ndarray = R::NDArray::Int->new;
unless (Array->equals_int($ret_ndarray->data, new int[0])) {
return 0;
}
unless ($ret_ndarray->elem_size == 4) {
return 0;
}
unless ($ret_ndarray->is_numeric_ndarray == 1) {
return 0;
}
unless ($ret_ndarray->is_any_numeric_ndarray == 1) {
return 0;
}
unless ($ret_ndarray->is_mulnum_ndarray == 0) {
return 0;
}
unless ($ret_ndarray->is_object_ndarray == 0) {
return 0;
}
unless ($ret_ndarray->elem_type_name eq "int") {
return 0;
}
unless ($ret_ndarray->is_dim_read_only == 0) {
return 0;
}
}
{
my $data = [1, 2, 3];
my $ret_ndarray = R::NDArray::Int->new({data => $data});
unless ($ret_ndarray->data == $data) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [1, 2, 3])) {
return 0;
}
}
{
my $dim = [1];
my $ret_ndarray = R::NDArray::Int->new({dim => $dim});
unless (Array->equals_int($ret_ndarray->dim, [1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [0])) {
return 0;
}
}
{
my $dim = new int[0];
my $ret_ndarray = R::NDArray::Int->new({dim => $dim});
unless (Array->equals_int($ret_ndarray->dim, new int [0])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, new int[0])) {
return 0;
}
}
{
my $dim = [2, 3];
my $ret_ndarray = R::NDArray::Int->new({dim => $dim});
unless (Array->equals_int($ret_ndarray->dim, [2, 3])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [0, 0, 0, 0, 0, 0])) {
return 0;
}
}
{
my $dim = [2, 1];
my $ret_ndarray = R::NDArray::Int->new({dim => $dim});
unless (Array->equals_int($ret_ndarray->dim, [2, 1])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [0, 0])) {
return 0;
}
}
# Normalization
{
my $dim = [0];
my $ret_ndarray = R::NDArray::Int->new({dim => $dim});
unless (Array->equals_int($ret_ndarray->dim, new int [0])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, new int[0])) {
return 0;
}
}
# Normalization
{
my $dim = [2, 3, 0];
my $ret_ndarray = R::NDArray::Int->new({dim => $dim});
unless (Array->equals_int($ret_ndarray->dim, [2, 3])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [0, 0, 0, 0, 0, 0])) {
return 0;
}
}
{
my $dim = [2, 3];
my $data = [0, 1, 2, 3, 4, 5];
my $ret_ndarray = R::NDArray::Int->new({data => $data, dim => $dim});
unless (Array->equals_int($ret_ndarray->dim, [2, 3])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [0, 1, 2, 3, 4, 5])) {
return 0;
}
}
# Exceptions
{
{
my $dim = [2, 3];
my $data = [0, 1, 2, 3, 4, 5, 6];
eval { R::NDArray::Int->new({data => $data, dim => $dim}); }
unless ($@) {
return 0;
}
}
}
}
# R::NDArray::Int#to_indexes
{
{
my $ndarray = IOP->c([0, 1, 0, 1]);
my $ret_ndarray = $ndarray->to_indexes;
unless ($ret_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($ret_ndarray->data, [1, 3])) {
return 0;
}
unless (Array->equals_int($ret_ndarray->dim, [2])) {
return 0;
}
}
{
my $x_ndarray = IOP->c([1, 2, 3, 4]);
my $gt_ndarray = IOP->gt($x_ndarray, IOP->rep_length(IOP->c(2), $x_ndarray->length));
my $indexes_ndarray = $gt_ndarray->to_indexes;
unless ($indexes_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($indexes_ndarray->data, [2, 3])) {
return 0;
}
unless (Array->equals_int($indexes_ndarray->dim, [2])) {
return 0;
}
my $slice_ndarray = $x_ndarray->slice([$indexes_ndarray]);
unless ($slice_ndarray is_type R::NDArray::Int) {
return 0;
}
unless (Array->equals_int($slice_ndarray->data, [3, 4])) {
return 0;
}
unless (Array->equals_int($slice_ndarray->dim, [2])) {
return 0;
}
}
}
}
return 1;
}
}