mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-11 19:29:02 +08:00
Created a test for tensor type casting
This commit is contained in:
parent
4928ea1212
commit
3bd2b41b2e
41
unsupported/test/cxx11_tensor_casts.cpp
Normal file
41
unsupported/test/cxx11_tensor_casts.cpp
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// This file is part of Eigen, a lightweight C++ template library
|
||||||
|
// for linear algebra.
|
||||||
|
//
|
||||||
|
// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla
|
||||||
|
// Public License v. 2.0. If a copy of the MPL was not distributed
|
||||||
|
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
|
#include <Eigen/CXX11/Tensor>
|
||||||
|
|
||||||
|
using Eigen::Tensor;
|
||||||
|
using Eigen::array;
|
||||||
|
|
||||||
|
static void test_simple_cast()
|
||||||
|
{
|
||||||
|
Tensor<float, 2> ftensor(20,30);
|
||||||
|
ftensor.setRandom();
|
||||||
|
Tensor<char, 2> chartensor(20,30);
|
||||||
|
chartensor.setRandom();
|
||||||
|
Tensor<std::complex<float>, 2> cplextensor(20,30);
|
||||||
|
cplextensor.setRandom();
|
||||||
|
|
||||||
|
chartensor = ftensor.cast<char>();
|
||||||
|
cplextensor = ftensor.cast<std::complex<float>>();
|
||||||
|
|
||||||
|
for (int i = 0; i < 20; ++i) {
|
||||||
|
for (int j = 0; j < 30; ++j) {
|
||||||
|
VERIFY_IS_EQUAL(chartensor(i,j), static_cast<char>(ftensor(i,j)));
|
||||||
|
VERIFY_IS_EQUAL(cplextensor(i,j), static_cast<std::complex<float>>(ftensor(i,j)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void test_cxx11_tensor_casts()
|
||||||
|
{
|
||||||
|
CALL_SUBTEST(test_simple_cast());
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user