#!perl
my
$min_math_complex_ver
= 1.57;
eval
"use Math::Complex $min_math_complex_ver"
;
plan
skip_all
=>
"Math::Complex $min_math_complex_ver required"
if
$@;
plan
tests
=> 26;
{
my
$x
= Math::Matrix::Complex -> new([[1, 2],
[3, 4]]);
my
$y
= Math::Matrix::Complex -> new([[5, 6]]);
my
$z
=
$x
-> catrow(
$y
);
is(
ref
(
$z
),
'Math::Matrix::Complex'
,
'$z is a Math::Matrix::Complex'
);
is_deeply([
@$z
], [[1, 2],
[3, 4],
[5, 6]],
'$z has the right values'
);
my
(
$nrowz
,
$ncolz
) =
$z
-> size();
for
my
$i
(0 ..
$nrowz
- 1) {
for
my
$j
(0 ..
$ncolz
- 1) {
$z
-> [
$i
][
$j
] += 100;
}
}
is_deeply([
@$x
], [[1, 2],
[3, 4]],
'$x is unmodified'
);
is_deeply([
@$y
], [[5, 6]],
'$y is unmodified'
);
}
{
my
$x
= Math::Matrix::Complex -> new([[0, 1],
[2, 3],
[4, 5]]);
my
$y
= Math::Matrix::Complex -> new([[6, 7],
[8, 9]]);
my
$z
=
$x
-> catrow(
$y
);
is(
ref
(
$z
),
'Math::Matrix::Complex'
,
'$z is a Math::Matrix::Complex'
);
is_deeply([
@$z
], [[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]],
'$z has the right values'
);
my
(
$nrowz
,
$ncolz
) =
$z
-> size();
for
my
$i
(0 ..
$nrowz
- 1) {
for
my
$j
(0 ..
$ncolz
- 1) {
$z
-> [
$i
][
$j
] += 100;
}
}
is_deeply([
@$x
], [[0, 1],
[2, 3],
[4, 5]],
'$x is unmodified'
);
is_deeply([
@$y
], [[6, 7],
[8, 9]],
'$y is unmodified'
);
}
{
my
$x
= Math::Matrix::Complex -> new([[0, 1],
[2, 3],
[4, 5]]);
my
$y
= Math::Matrix::Complex -> new([]);
my
$z
=
$x
-> catrow(
$y
);
is(
ref
(
$z
),
'Math::Matrix::Complex'
,
'$z is a Math::Matrix::Complex'
);
is_deeply([
@$z
], [[0, 1],
[2, 3],
[4, 5]],
'$z has the right values'
);
my
(
$nrowz
,
$ncolz
) =
$z
-> size();
for
my
$i
(0 ..
$nrowz
- 1) {
for
my
$j
(0 ..
$ncolz
- 1) {
$z
-> [
$i
][
$j
] += 100;
}
}
is_deeply([
@$x
], [[0, 1],
[2, 3],
[4, 5]],
'$x is unmodified'
);
is_deeply([
@$y
], [],
'$y is unmodified'
);
}
{
my
$x
= Math::Matrix::Complex -> new([]);
my
$y
= Math::Matrix::Complex -> new([[6, 7],
[8, 9]]);
my
$z
=
$x
-> catrow(
$y
);
is(
ref
(
$z
),
'Math::Matrix::Complex'
,
'$z is a Math::Matrix::Complex'
);
is_deeply([
@$z
], [[6, 7],
[8, 9]],
'$z has the right values'
);
my
(
$nrowz
,
$ncolz
) =
$z
-> size();
for
my
$i
(0 ..
$nrowz
- 1) {
for
my
$j
(0 ..
$ncolz
- 1) {
$z
-> [
$i
][
$j
] += 100;
}
}
is_deeply([
@$x
], [],
'$x is unmodified'
);
is_deeply([
@$y
], [[6, 7],
[8, 9]],
'$y is unmodified'
);
}
{
my
$x
= Math::Matrix::Complex -> new([]);
my
$y
= Math::Matrix::Complex -> new([]);
my
$z
=
$x
-> catrow(
$y
);
is(
ref
(
$z
),
'Math::Matrix::Complex'
,
'$z is a Math::Matrix::Complex'
);
is_deeply([
@$z
], [],
'$z has the right values'
);
is_deeply([
@$x
], [],
'$x is unmodified'
);
is_deeply([
@$y
], [],
'$y is unmodified'
);
}
{
my
$x
= Math::Matrix::Complex -> new([[3]]);
my
$z
=
$x
-> catrow(
$x
,
$x
,
$x
);
is(
ref
(
$z
),
'Math::Matrix::Complex'
,
'$z is a Math::Matrix::Complex'
);
is_deeply([
@$z
], [[3], [3], [3], [3]],
'$z has the right values'
);
is_deeply([
@$x
], [[3]],
'$x is unmodified'
);
}
{
my
$x
= Math::Matrix::Complex -> new([[3]]);
my
$z
=
$x
-> catrow();
is(
ref
(
$z
),
'Math::Matrix::Complex'
,
'$z is a Math::Matrix::Complex'
);
is_deeply([
@$z
], [[3]],
'$z has the right values'
);
is_deeply([
@$x
], [[3]],
'$x is unmodified'
);
}