chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
//
|
||||
// TensorUtilsTest.cpp
|
||||
// MNNTests
|
||||
//
|
||||
// Created by MNN on 2019/01/16.
|
||||
// Copyright © 2018, Alibaba Group Holding Limited
|
||||
//
|
||||
|
||||
#include "MNNTestSuite.h"
|
||||
#include "core/TensorUtils.hpp"
|
||||
|
||||
using namespace MNN;
|
||||
|
||||
class TensorUtilsTest : public MNNTestCase {
|
||||
public:
|
||||
virtual ~TensorUtilsTest() = default;
|
||||
virtual bool run(int precision) {
|
||||
// copy
|
||||
{
|
||||
Tensor src(3, Tensor::TENSORFLOW);
|
||||
src.setLength(0, 1);
|
||||
src.setLength(1, 2);
|
||||
src.setLength(2, 3);
|
||||
src.setStride(0, 4);
|
||||
src.setStride(1, 5);
|
||||
src.setStride(2, 6);
|
||||
|
||||
Tensor dst1(4, Tensor::CAFFE);
|
||||
TensorUtils::copyShape(&src, &dst1);
|
||||
MNNTEST_ASSERT(dst1.dimensions() == 3);
|
||||
MNNTEST_ASSERT(dst1.length(0) == 1);
|
||||
MNNTEST_ASSERT(dst1.length(1) == 2);
|
||||
MNNTEST_ASSERT(dst1.length(2) == 3);
|
||||
MNNTEST_ASSERT(dst1.stride(0) == 4);
|
||||
MNNTEST_ASSERT(dst1.stride(1) == 5);
|
||||
MNNTEST_ASSERT(dst1.stride(2) == 6);
|
||||
MNNTEST_ASSERT(dst1.getDimensionType() == Tensor::CAFFE);
|
||||
|
||||
Tensor dst2(4, Tensor::CAFFE);
|
||||
TensorUtils::copyShape(&src, &dst2, true);
|
||||
MNNTEST_ASSERT(dst2.dimensions() == 3);
|
||||
MNNTEST_ASSERT(dst2.length(0) == 1);
|
||||
MNNTEST_ASSERT(dst2.length(1) == 2);
|
||||
MNNTEST_ASSERT(dst2.length(2) == 3);
|
||||
MNNTEST_ASSERT(dst2.stride(0) == 4);
|
||||
MNNTEST_ASSERT(dst2.stride(1) == 5);
|
||||
MNNTEST_ASSERT(dst2.stride(2) == 6);
|
||||
MNNTEST_ASSERT(dst2.getDimensionType() == Tensor::TENSORFLOW);
|
||||
}
|
||||
|
||||
// layout
|
||||
{
|
||||
Tensor tensor(3, Tensor::TENSORFLOW);
|
||||
tensor.setLength(0, 1);
|
||||
tensor.setLength(1, 2);
|
||||
tensor.setLength(2, 3);
|
||||
tensor.setStride(0, 4);
|
||||
tensor.setStride(1, 5);
|
||||
tensor.setStride(2, 6);
|
||||
TensorUtils::setLinearLayout(&tensor);
|
||||
MNNTEST_ASSERT(tensor.stride(0) == 2 * 3);
|
||||
MNNTEST_ASSERT(tensor.stride(1) == 3);
|
||||
MNNTEST_ASSERT(tensor.stride(2) == 1);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
MNNTestSuiteRegister(TensorUtilsTest, "core/tensor_utils");
|
||||
Reference in New Issue
Block a user