mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-03-13 18:37:27 +08:00
Added a few tests to cover rank-0 tensors
This commit is contained in:
parent
ce19e38c1f
commit
31bdafac67
@ -15,6 +15,33 @@ using Eigen::Tensor;
|
||||
using Eigen::RowMajor;
|
||||
|
||||
|
||||
static void test_0d()
|
||||
{
|
||||
TensorFixedSize<float, Sizes<> > scalar1;
|
||||
TensorFixedSize<float, Sizes<>, RowMajor> scalar2;
|
||||
VERIFY_IS_EQUAL(scalar1.rank(), 0);
|
||||
|
||||
scalar1() = 7.0;
|
||||
scalar2() = 13.0;
|
||||
|
||||
// Test against shallow copy.
|
||||
TensorFixedSize<float, Sizes<> > copy = scalar1;
|
||||
VERIFY_IS_NOT_EQUAL(scalar1.data(), copy.data());
|
||||
VERIFY_IS_APPROX(scalar1(), copy());
|
||||
copy = scalar1;
|
||||
VERIFY_IS_NOT_EQUAL(scalar1.data(), copy.data());
|
||||
VERIFY_IS_APPROX(scalar1(), copy());
|
||||
|
||||
TensorFixedSize<float, Sizes<> > scalar3 = scalar1.sqrt();
|
||||
TensorFixedSize<float, Sizes<>, RowMajor> scalar4 = scalar2.sqrt();
|
||||
VERIFY_IS_EQUAL(scalar3.rank(), 0);
|
||||
VERIFY_IS_APPROX(scalar3(), sqrtf(7.0));
|
||||
VERIFY_IS_APPROX(scalar4(), sqrtf(13.0));
|
||||
|
||||
scalar3 = scalar1 + scalar2;
|
||||
VERIFY_IS_APPROX(scalar3(), 7.0f + 13.0f);
|
||||
}
|
||||
|
||||
static void test_1d()
|
||||
{
|
||||
TensorFixedSize<float, Sizes<6> > vec1;
|
||||
@ -223,6 +250,7 @@ static void test_array()
|
||||
|
||||
void test_cxx11_tensor_fixed_size()
|
||||
{
|
||||
CALL_SUBTEST(test_0d());
|
||||
CALL_SUBTEST(test_1d());
|
||||
CALL_SUBTEST(test_tensor_map());
|
||||
CALL_SUBTEST(test_2d());
|
||||
|
@ -14,6 +14,24 @@
|
||||
using Eigen::Tensor;
|
||||
using Eigen::RowMajor;
|
||||
|
||||
static void test_0d()
|
||||
{
|
||||
Tensor<int, 0> scalar1;
|
||||
Tensor<int, 0, RowMajor> scalar2;
|
||||
|
||||
TensorMap<Tensor<const int, 0>> scalar3(scalar1.data());
|
||||
TensorMap<Tensor<const int, 0, RowMajor>> scalar4(scalar2.data());
|
||||
|
||||
scalar1() = 7;
|
||||
scalar2() = 13;
|
||||
|
||||
VERIFY_IS_EQUAL(scalar1.rank(), 0);
|
||||
VERIFY_IS_EQUAL(scalar1.size(), 1);
|
||||
|
||||
VERIFY_IS_EQUAL(scalar3(), 7);
|
||||
VERIFY_IS_EQUAL(scalar4(), 13);
|
||||
}
|
||||
|
||||
static void test_1d()
|
||||
{
|
||||
Tensor<int, 1> vec1(6);
|
||||
@ -242,6 +260,7 @@ static void test_casting()
|
||||
|
||||
void test_cxx11_tensor_map()
|
||||
{
|
||||
CALL_SUBTEST(test_0d());
|
||||
CALL_SUBTEST(test_1d());
|
||||
CALL_SUBTEST(test_2d());
|
||||
CALL_SUBTEST(test_3d());
|
||||
|
@ -14,6 +14,35 @@
|
||||
using Eigen::Tensor;
|
||||
using Eigen::RowMajor;
|
||||
|
||||
static void test_0d()
|
||||
{
|
||||
Tensor<int, 0> scalar1;
|
||||
Tensor<int, 0, RowMajor> scalar2;
|
||||
Tensor<int, 0> scalar3;
|
||||
Tensor<int, 0, RowMajor> scalar4;
|
||||
|
||||
scalar3.resize();
|
||||
scalar4.resize();
|
||||
|
||||
scalar1() = 7;
|
||||
scalar2() = 13;
|
||||
scalar3.setValues(17);
|
||||
scalar4.setZero();
|
||||
|
||||
VERIFY_IS_EQUAL(scalar1.rank(), 0);
|
||||
VERIFY_IS_EQUAL(scalar1.size(), 1);
|
||||
|
||||
VERIFY_IS_EQUAL(scalar1(), 7);
|
||||
VERIFY_IS_EQUAL(scalar2(), 13);
|
||||
VERIFY_IS_EQUAL(scalar3(), 17);
|
||||
VERIFY_IS_EQUAL(scalar4(), 0);
|
||||
|
||||
Tensor<int, 0> scalar5(scalar1);
|
||||
|
||||
VERIFY_IS_EQUAL(scalar5(), 7);
|
||||
VERIFY_IS_EQUAL(scalar5.data()[0], 7);
|
||||
}
|
||||
|
||||
static void test_1d()
|
||||
{
|
||||
Tensor<int, 1> vec1(6);
|
||||
@ -287,6 +316,7 @@ static void test_resize()
|
||||
|
||||
void test_cxx11_tensor_simple()
|
||||
{
|
||||
CALL_SUBTEST(test_0d());
|
||||
CALL_SUBTEST(test_1d());
|
||||
CALL_SUBTEST(test_2d());
|
||||
CALL_SUBTEST(test_3d());
|
||||
|
Loading…
x
Reference in New Issue
Block a user