#include "kernels/ResizeNearestNeighbor.h"
#include "kernels/TestUtils.h"
+#include "luci_interpreter/TestMemoryManager.h"
namespace luci_interpreter
{
std::initializer_list<int32_t> size_data, std::initializer_list<float> output_data,
bool align_corners, bool half_pixel_centers)
{
- Tensor input_tensor = makeInputTensor<DataType::FLOAT32>(input_shape, input_data);
- Tensor size_tensor = makeInputTensor<DataType::S32>(size_shape, size_data);
+ std::unique_ptr<IMemoryManager> memory_manager = std::make_unique<TestMemoryManager>();
+
+ Tensor input_tensor =
+ makeInputTensor<DataType::FLOAT32>(input_shape, input_data, memory_manager.get());
+ Tensor size_tensor = makeInputTensor<DataType::S32>(size_shape, size_data, memory_manager.get());
Tensor output_tensor = makeOutputTensor(DataType::FLOAT32);
ResizeNearestNeighborParams params{};
ResizeNearestNeighbor kernel(&input_tensor, &size_tensor, &output_tensor, params);
kernel.configure();
+ memory_manager->allocate_memory(output_tensor);
kernel.execute();
EXPECT_THAT(extractTensorShape(output_tensor), ::testing::ElementsAreArray(output_shape));
std::initializer_list<float> output_data, bool align_corners,
bool half_pixel_centers)
{
+ std::unique_ptr<IMemoryManager> memory_manager = std::make_unique<TestMemoryManager>();
+
std::pair<float, int32_t> quant_param =
quantizationParams<uint8_t>(std::min(input_data) < 0 ? std::min(input_data) : 0.f,
std::max(input_data) > 0 ? std::max(input_data) : 0.f);
- Tensor input_tensor =
- makeInputTensor<DataType::U8>(input_shape, quant_param.first, quant_param.second, input_data);
- Tensor size_tensor = makeInputTensor<DataType::S32>(size_shape, size_data);
+ Tensor input_tensor = makeInputTensor<DataType::U8>(
+ input_shape, quant_param.first, quant_param.second, input_data, memory_manager.get());
+ Tensor size_tensor = makeInputTensor<DataType::S32>(size_shape, size_data, memory_manager.get());
Tensor output_tensor = makeOutputTensor(DataType::U8, quant_param.first, quant_param.first);
ResizeNearestNeighborParams params{};
ResizeNearestNeighbor kernel(&input_tensor, &size_tensor, &output_tensor, params);
kernel.configure();
+ memory_manager->allocate_memory(output_tensor);
kernel.execute();
EXPECT_THAT(extractTensorShape(output_tensor), ::testing::ElementsAreArray(output_shape));
TEST(ResizeNearestNeighborTest, InputShapeInvalid_NEG)
{
- Tensor input_tensor = makeInputTensor<DataType::FLOAT32>({2, 2, 2}, {
- 3, 6, //
- 9, 12, //
- 4, 10, //
- 10, 16 //
- });
- Tensor size_tensor = makeInputTensor<DataType::S32>({2}, {3, 3});
+ std::unique_ptr<IMemoryManager> memory_manager = std::make_unique<TestMemoryManager>();
+
+ Tensor input_tensor = makeInputTensor<DataType::FLOAT32>({2, 2, 2},
+ {
+ 3, 6, //
+ 9, 12, //
+ 4, 10, //
+ 10, 16 //
+ },
+ memory_manager.get());
+ Tensor size_tensor = makeInputTensor<DataType::S32>({2}, {3, 3}, memory_manager.get());
Tensor output_tensor = makeOutputTensor(DataType::FLOAT32);
ResizeNearestNeighborParams params{};
TEST(ResizeNearestNeighborTest, SizeShapeInvalid_NEG)
{
- Tensor input_tensor = makeInputTensor<DataType::FLOAT32>({2, 2, 2, 1}, {
- 3, 6, //
- 9, 12, //
- 4, 10, //
- 10, 16 //
- });
- Tensor size_tensor = makeInputTensor<DataType::S32>({2, 1}, {3, 3});
+ std::unique_ptr<IMemoryManager> memory_manager = std::make_unique<TestMemoryManager>();
+
+ Tensor input_tensor = makeInputTensor<DataType::FLOAT32>({2, 2, 2, 1},
+ {
+ 3, 6, //
+ 9, 12, //
+ 4, 10, //
+ 10, 16 //
+ },
+ memory_manager.get());
+ Tensor size_tensor = makeInputTensor<DataType::S32>({2, 1}, {3, 3}, memory_manager.get());
Tensor output_tensor = makeOutputTensor(DataType::FLOAT32);
ResizeNearestNeighborParams params{};
TEST(ResizeNearestNeighborTest, SizeDimInvalid_NEG)
{
- Tensor input_tensor = makeInputTensor<DataType::FLOAT32>({2, 2, 2, 1}, {
- 3, 6, //
- 9, 12, //
- 4, 10, //
- 10, 16 //
- });
- Tensor size_tensor = makeInputTensor<DataType::S32>({3}, {3, 3, 1});
+ std::unique_ptr<IMemoryManager> memory_manager = std::make_unique<TestMemoryManager>();
+
+ Tensor input_tensor = makeInputTensor<DataType::FLOAT32>({2, 2, 2, 1},
+ {
+ 3, 6, //
+ 9, 12, //
+ 4, 10, //
+ 10, 16 //
+ },
+ memory_manager.get());
+ Tensor size_tensor = makeInputTensor<DataType::S32>({3}, {3, 3, 1}, memory_manager.get());
Tensor output_tensor = makeOutputTensor(DataType::FLOAT32);
ResizeNearestNeighborParams params{};