summaryrefslogtreecommitdiff
path: root/compiler/locomotiv/src/Node
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/locomotiv/src/Node')
-rw-r--r--compiler/locomotiv/src/Node/AvgPool2D.cpp16
-rw-r--r--compiler/locomotiv/src/Node/AvgPool2D.test.cpp4
-rw-r--r--compiler/locomotiv/src/Node/BiasAdd.cpp4
-rw-r--r--compiler/locomotiv/src/Node/BiasAdd.test.cpp16
-rw-r--r--compiler/locomotiv/src/Node/BiasEncode.test.cpp8
-rw-r--r--compiler/locomotiv/src/Node/ConstGen.test.cpp40
-rw-r--r--compiler/locomotiv/src/Node/Conv2D.test.cpp4
-rw-r--r--compiler/locomotiv/src/Node/DepthwiseConv2D.test.cpp4
-rw-r--r--compiler/locomotiv/src/Node/DepthwiseFilterEncode.test.cpp8
-rw-r--r--compiler/locomotiv/src/Node/EltwiseAdd.test.cpp8
-rw-r--r--compiler/locomotiv/src/Node/EltwiseDiv.test.cpp8
-rw-r--r--compiler/locomotiv/src/Node/EltwiseMax.test.cpp8
-rw-r--r--compiler/locomotiv/src/Node/EltwiseMul.test.cpp8
-rw-r--r--compiler/locomotiv/src/Node/EltwiseSqrt.test.cpp12
-rw-r--r--compiler/locomotiv/src/Node/EltwiseSub.test.cpp8
-rw-r--r--compiler/locomotiv/src/Node/FeatureCodec.test.cpp32
-rw-r--r--compiler/locomotiv/src/Node/FilterEncode.test.cpp16
-rw-r--r--compiler/locomotiv/src/Node/Forward.test.cpp16
-rw-r--r--compiler/locomotiv/src/Node/MatMul.test.cpp6
-rw-r--r--compiler/locomotiv/src/Node/MatrixCodec.test.cpp32
-rw-r--r--compiler/locomotiv/src/Node/MaxPool2D.test.cpp4
-rw-r--r--compiler/locomotiv/src/Node/Push.test.cpp16
-rw-r--r--compiler/locomotiv/src/Node/ReLU.test.cpp10
-rw-r--r--compiler/locomotiv/src/Node/ReLU6.test.cpp14
-rw-r--r--compiler/locomotiv/src/Node/Reshape.test.cpp14
-rw-r--r--compiler/locomotiv/src/Node/Softmax.test.cpp14
-rw-r--r--compiler/locomotiv/src/Node/Tanh.test.cpp12
-rw-r--r--compiler/locomotiv/src/Node/TensorBroadcast.test.cpp10
-rw-r--r--compiler/locomotiv/src/Node/TensorConcat.cpp2
-rw-r--r--compiler/locomotiv/src/Node/TensorConcat.test.cpp40
-rw-r--r--compiler/locomotiv/src/Node/TensorConstantPad.cpp2
-rw-r--r--compiler/locomotiv/src/Node/TensorConstantPad.test.cpp64
-rw-r--r--compiler/locomotiv/src/Node/TensorReduce.cpp3
-rw-r--r--compiler/locomotiv/src/Node/TensorReduce.test.cpp18
-rw-r--r--compiler/locomotiv/src/Node/TransposedConv2D.test.cpp4
35 files changed, 251 insertions, 234 deletions
diff --git a/compiler/locomotiv/src/Node/AvgPool2D.cpp b/compiler/locomotiv/src/Node/AvgPool2D.cpp
index ad603badf..5fdf1e725 100644
--- a/compiler/locomotiv/src/Node/AvgPool2D.cpp
+++ b/compiler/locomotiv/src/Node/AvgPool2D.cpp
@@ -129,7 +129,8 @@ nncc::core::ADT::tensor::Buffer<T> avgPool2D(const loco::AvgPool2D *avgpool2d,
}
}
- assert(filter_ele_count > 0);
+ if (filter_ele_count <= 0)
+ throw std::runtime_error("The number of filter element must be greater than zero.");
output_buf.at(Index({batch, out_y, out_x, channel})) = total / filter_ele_count;
}
}
@@ -141,10 +142,12 @@ nncc::core::ADT::tensor::Buffer<T> avgPool2D(const loco::AvgPool2D *avgpool2d,
} // namespace
-namespace locomotiv
+namespace
{
-void NodeExecution::execute(loco::AvgPool2D *avgpool2d)
+using namespace locomotiv;
+
+void exectute_node(loco::AvgPool2D *avgpool2d)
{
auto ifm_data = annot_data(avgpool2d->ifm());
@@ -176,4 +179,11 @@ void NodeExecution::execute(loco::AvgPool2D *avgpool2d)
annot_domain(avgpool2d, loco::Domain::Feature);
}
+} // namespace
+
+namespace locomotiv
+{
+
+void NodeExecution::execute(loco::AvgPool2D *avgpool2d) { exectute_node(avgpool2d); }
+
} // namespace locomotiv
diff --git a/compiler/locomotiv/src/Node/AvgPool2D.test.cpp b/compiler/locomotiv/src/Node/AvgPool2D.test.cpp
index 89e10a35e..f9863b47d 100644
--- a/compiler/locomotiv/src/Node/AvgPool2D.test.cpp
+++ b/compiler/locomotiv/src/Node/AvgPool2D.test.cpp
@@ -88,10 +88,10 @@ void run_test(const float *ifm, const float *expected_ofm, const Shape &ifm_shap
for (nncc::core::ADT::tensor::IndexEnumerator e{ofm_shape}; e.valid(); e.advance())
{
const auto &ind = e.current();
- ASSERT_FLOAT_EQ(avgpool2d_data->as_f32_bufptr()->at(ind), ofm_overlay.at(ind));
+ ASSERT_FLOAT_EQ(ofm_overlay.at(ind), avgpool2d_data->as_f32_bufptr()->at(ind));
}
- ASSERT_EQ(locomotiv::annot_domain(avgpool2d), loco::Domain::Feature);
+ ASSERT_EQ(loco::Domain::Feature, locomotiv::annot_domain(avgpool2d));
}
} // namespace
diff --git a/compiler/locomotiv/src/Node/BiasAdd.cpp b/compiler/locomotiv/src/Node/BiasAdd.cpp
index 0724fb728..dfe32ca92 100644
--- a/compiler/locomotiv/src/Node/BiasAdd.cpp
+++ b/compiler/locomotiv/src/Node/BiasAdd.cpp
@@ -46,6 +46,8 @@ namespace locomotiv
void NodeExecution::execute(loco::BiasAdd<loco::Domain::Tensor> *bias_add)
{
+ validate(bias_add, "BiasAdd is nullptr");
+
auto input_data = locomotiv::annot_data(bias_add->value());
auto bias_data = locomotiv::annot_data(bias_add->bias());
@@ -63,6 +65,8 @@ void NodeExecution::execute(loco::BiasAdd<loco::Domain::Tensor> *bias_add)
void NodeExecution::execute(loco::BiasAdd<loco::Domain::Feature> *bias_add)
{
+ validate(bias_add, "BiasAdd is nullptr");
+
auto input_data = locomotiv::annot_data(bias_add->value());
auto bias_data = locomotiv::annot_data(bias_add->bias());
diff --git a/compiler/locomotiv/src/Node/BiasAdd.test.cpp b/compiler/locomotiv/src/Node/BiasAdd.test.cpp
index 0ca826673..cba2d414a 100644
--- a/compiler/locomotiv/src/Node/BiasAdd.test.cpp
+++ b/compiler/locomotiv/src/Node/BiasAdd.test.cpp
@@ -107,16 +107,16 @@ TEST(NodeExecution_TensorBiasAdd, f32)
// comparing the result
ASSERT_NE(bias_add_data, nullptr);
- ASSERT_EQ(bias_add_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(bias_add_data->shape()), Shape({1, 3, 3, 2}));
+ ASSERT_EQ(loco::DataType::FLOAT32, bias_add_data->dtype());
+ ASSERT_EQ(Shape({1, 3, 3, 2}), *(bias_add_data->shape()));
uint32_t n = 0;
for (IndexEnumerator e{*(bias_add_data->shape())}; e.valid(); e.advance())
{
- ASSERT_FLOAT_EQ(bias_add_data->as_f32_bufptr()->at(e.current()), out_val[n++]);
+ ASSERT_FLOAT_EQ(out_val[n++], bias_add_data->as_f32_bufptr()->at(e.current()));
}
- ASSERT_EQ(locomotiv::annot_domain(bias_add), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(bias_add));
}
/*
@@ -191,14 +191,14 @@ TEST(NodeExecution_FeatureBiasAdd, f32)
// comparing the result
ASSERT_NE(bias_add_data, nullptr);
- ASSERT_EQ(bias_add_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(bias_add_data->shape()), Shape({1, 3, 3, 2}));
+ ASSERT_EQ(loco::DataType::FLOAT32, bias_add_data->dtype());
+ ASSERT_EQ(Shape({1, 3, 3, 2}), *(bias_add_data->shape()));
uint32_t n = 0;
for (IndexEnumerator e{*(bias_add_data->shape())}; e.valid(); e.advance())
{
- ASSERT_FLOAT_EQ(bias_add_data->as_f32_bufptr()->at(e.current()), out_val[n++]);
+ ASSERT_FLOAT_EQ(out_val[n++], bias_add_data->as_f32_bufptr()->at(e.current()));
}
- ASSERT_EQ(locomotiv::annot_domain(feature_bias_add), loco::Domain::Feature);
+ ASSERT_EQ(loco::Domain::Feature, locomotiv::annot_domain(feature_bias_add));
}
diff --git a/compiler/locomotiv/src/Node/BiasEncode.test.cpp b/compiler/locomotiv/src/Node/BiasEncode.test.cpp
index 73e2af8a8..cdb255ccb 100644
--- a/compiler/locomotiv/src/Node/BiasEncode.test.cpp
+++ b/compiler/locomotiv/src/Node/BiasEncode.test.cpp
@@ -82,11 +82,11 @@ template <typename T> void test()
auto bias_enc_data = locomotiv::annot_data(bias_enc);
ASSERT_NE(bias_enc_data, nullptr);
- ASSERT_EQ(bias_enc_data->dtype(), loco_dtype<T>());
- ASSERT_EQ(*(bias_enc_data->shape()), Shape{1});
- ASSERT_EQ(as_bufptr<T>(bias_enc_data)->at(Index{0}), pull_buf.at(Index{0}));
+ ASSERT_EQ(loco_dtype<T>(), bias_enc_data->dtype());
+ ASSERT_EQ(Shape{1}, *(bias_enc_data->shape()));
+ ASSERT_EQ(pull_buf.at(Index{0}), as_bufptr<T>(bias_enc_data)->at(Index{0}));
- ASSERT_EQ(locomotiv::annot_domain(bias_enc), loco::Domain::Bias);
+ ASSERT_EQ(loco::Domain::Bias, locomotiv::annot_domain(bias_enc));
}
} // namespace
diff --git a/compiler/locomotiv/src/Node/ConstGen.test.cpp b/compiler/locomotiv/src/Node/ConstGen.test.cpp
index 838f4c11d..382cc77e1 100644
--- a/compiler/locomotiv/src/Node/ConstGen.test.cpp
+++ b/compiler/locomotiv/src/Node/ConstGen.test.cpp
@@ -53,16 +53,16 @@ TEST(NodeExecution_ConstGen, s32)
// test
auto data = locomotiv::annot_data(&constgen);
ASSERT_NE(data, nullptr);
- ASSERT_EQ(data->dtype(), loco::DataType::S32);
- ASSERT_EQ(*data->shape(), Shape({2, 3}));
- ASSERT_EQ(data->as_s32_bufptr()->at(Index{0, 0}), 0);
- ASSERT_EQ(data->as_s32_bufptr()->at(Index{0, 1}), 1);
- ASSERT_EQ(data->as_s32_bufptr()->at(Index{0, 2}), 2);
- ASSERT_EQ(data->as_s32_bufptr()->at(Index{1, 0}), -3);
- ASSERT_EQ(data->as_s32_bufptr()->at(Index{1, 1}), -4);
- ASSERT_EQ(data->as_s32_bufptr()->at(Index{1, 2}), -5);
-
- ASSERT_EQ(locomotiv::annot_domain(&constgen), loco::Domain::Tensor);
+ ASSERT_EQ(loco::DataType::S32, data->dtype());
+ ASSERT_EQ(Shape({2, 3}), *data->shape());
+ ASSERT_EQ(0, data->as_s32_bufptr()->at(Index{0, 0}));
+ ASSERT_EQ(1, data->as_s32_bufptr()->at(Index{0, 1}));
+ ASSERT_EQ(2, data->as_s32_bufptr()->at(Index{0, 2}));
+ ASSERT_EQ(-3, data->as_s32_bufptr()->at(Index{1, 0}));
+ ASSERT_EQ(-4, data->as_s32_bufptr()->at(Index{1, 1}));
+ ASSERT_EQ(-5, data->as_s32_bufptr()->at(Index{1, 2}));
+
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(&constgen));
}
TEST(NodeExecution_ConstGen, f32)
@@ -87,14 +87,14 @@ TEST(NodeExecution_ConstGen, f32)
// test
auto data = locomotiv::annot_data(&constgen);
ASSERT_NE(data, nullptr);
- ASSERT_EQ(data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*data->shape(), Shape({2, 3}));
- ASSERT_FLOAT_EQ(data->as_f32_bufptr()->at(Index{0, 0}), 0.0f);
- ASSERT_FLOAT_EQ(data->as_f32_bufptr()->at(Index{0, 1}), 1.0f);
- ASSERT_FLOAT_EQ(data->as_f32_bufptr()->at(Index{0, 2}), 2.0f);
- ASSERT_FLOAT_EQ(data->as_f32_bufptr()->at(Index{1, 0}), 3.0f);
- ASSERT_FLOAT_EQ(data->as_f32_bufptr()->at(Index{1, 1}), 4.0f);
- ASSERT_FLOAT_EQ(data->as_f32_bufptr()->at(Index{1, 2}), 5.0f);
-
- ASSERT_EQ(locomotiv::annot_domain(&constgen), loco::Domain::Tensor);
+ ASSERT_EQ(loco::DataType::FLOAT32, data->dtype());
+ ASSERT_EQ(Shape({2, 3}), *data->shape());
+ ASSERT_FLOAT_EQ(0.0f, data->as_f32_bufptr()->at(Index{0, 0}));
+ ASSERT_FLOAT_EQ(1.0f, data->as_f32_bufptr()->at(Index{0, 1}));
+ ASSERT_FLOAT_EQ(2.0f, data->as_f32_bufptr()->at(Index{0, 2}));
+ ASSERT_FLOAT_EQ(3.0f, data->as_f32_bufptr()->at(Index{1, 0}));
+ ASSERT_FLOAT_EQ(4.0f, data->as_f32_bufptr()->at(Index{1, 1}));
+ ASSERT_FLOAT_EQ(5.0f, data->as_f32_bufptr()->at(Index{1, 2}));
+
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(&constgen));
}
diff --git a/compiler/locomotiv/src/Node/Conv2D.test.cpp b/compiler/locomotiv/src/Node/Conv2D.test.cpp
index 83d7fc268..66e947acc 100644
--- a/compiler/locomotiv/src/Node/Conv2D.test.cpp
+++ b/compiler/locomotiv/src/Node/Conv2D.test.cpp
@@ -101,10 +101,10 @@ void run_test(const float *ifm, const float *ker, const float *expected_ofm, con
for (nncc::core::ADT::tensor::IndexEnumerator e{ofm_shape}; e.valid(); e.advance())
{
const auto &ind = e.current();
- ASSERT_FLOAT_EQ(conv2d_result->as_f32_bufptr()->at(ind), ofm_overlay.at(ind));
+ ASSERT_FLOAT_EQ(ofm_overlay.at(ind), conv2d_result->as_f32_bufptr()->at(ind));
}
- ASSERT_EQ(locomotiv::annot_domain(conv2d), loco::Domain::Feature);
+ ASSERT_EQ(loco::Domain::Feature, locomotiv::annot_domain(conv2d));
}
} // namespace
diff --git a/compiler/locomotiv/src/Node/DepthwiseConv2D.test.cpp b/compiler/locomotiv/src/Node/DepthwiseConv2D.test.cpp
index 48824c2e0..1ff333be0 100644
--- a/compiler/locomotiv/src/Node/DepthwiseConv2D.test.cpp
+++ b/compiler/locomotiv/src/Node/DepthwiseConv2D.test.cpp
@@ -101,10 +101,10 @@ void run_test(const float *ifm, const float *ker, const float *expected_ofm, con
for (nncc::core::ADT::tensor::IndexEnumerator e{ofm_shape}; e.valid(); e.advance())
{
const auto &ind = e.current();
- ASSERT_FLOAT_EQ(dw_conv2d_result->as_f32_bufptr()->at(ind), ofm_overlay.at(ind));
+ ASSERT_FLOAT_EQ(ofm_overlay.at(ind), dw_conv2d_result->as_f32_bufptr()->at(ind));
}
- ASSERT_EQ(locomotiv::annot_domain(dw_conv2d), loco::Domain::Feature);
+ ASSERT_EQ(loco::Domain::Feature, locomotiv::annot_domain(dw_conv2d));
}
} // namespace
diff --git a/compiler/locomotiv/src/Node/DepthwiseFilterEncode.test.cpp b/compiler/locomotiv/src/Node/DepthwiseFilterEncode.test.cpp
index db828c08b..5b2ec9326 100644
--- a/compiler/locomotiv/src/Node/DepthwiseFilterEncode.test.cpp
+++ b/compiler/locomotiv/src/Node/DepthwiseFilterEncode.test.cpp
@@ -77,14 +77,14 @@ TEST(NodeExecution_DepthwiseFilterEncode, f32)
auto enc_data = locomotiv::annot_data(enc);
ASSERT_NE(enc_data, nullptr);
- ASSERT_EQ(enc_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(enc_data->shape()), (Shape{H, W, C, M})); // locomotiv depthwise filter is HWCM
+ ASSERT_EQ(loco::DataType::FLOAT32, enc_data->dtype());
+ ASSERT_EQ((Shape{H, W, C, M}), *(enc_data->shape())); // locomotiv depthwise filter is HWCM
auto enc_buf = enc_data->as_f32_bufptr();
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
for (uint32_t c = 0; c < C; ++c)
for (uint32_t m = 0; m < M; ++m)
- ASSERT_FLOAT_EQ(pull_buf.at(Index{m, h, w, c}), enc_buf->at(Index{h, w, c, m}));
+ ASSERT_FLOAT_EQ(enc_buf->at(Index{h, w, c, m}), pull_buf.at(Index{m, h, w, c}));
- ASSERT_EQ(locomotiv::annot_domain(enc), loco::Domain::DepthwiseFilter);
+ ASSERT_EQ(loco::Domain::DepthwiseFilter, locomotiv::annot_domain(enc));
}
diff --git a/compiler/locomotiv/src/Node/EltwiseAdd.test.cpp b/compiler/locomotiv/src/Node/EltwiseAdd.test.cpp
index 2899dccdd..2873a6544 100644
--- a/compiler/locomotiv/src/Node/EltwiseAdd.test.cpp
+++ b/compiler/locomotiv/src/Node/EltwiseAdd.test.cpp
@@ -108,14 +108,14 @@ TEST(NodeExecution_EltwiseAdd, f32)
// comparing the result
ASSERT_NE(eltwise_add_data, nullptr);
- ASSERT_EQ(eltwise_add_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(eltwise_add_data->shape()), Shape({1, 3, 3, 2}));
+ ASSERT_EQ(loco::DataType::FLOAT32, eltwise_add_data->dtype());
+ ASSERT_EQ(Shape({1, 3, 3, 2}), *(eltwise_add_data->shape()));
uint32_t n = 0;
for (IndexEnumerator e{*(eltwise_add_data->shape())}; e.valid(); e.advance())
{
- ASSERT_FLOAT_EQ(eltwise_add_data->as_f32_bufptr()->at(e.current()), out_val[n++]);
+ ASSERT_FLOAT_EQ(out_val[n++], eltwise_add_data->as_f32_bufptr()->at(e.current()));
}
- ASSERT_EQ(locomotiv::annot_domain(eltwise_add), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(eltwise_add));
}
diff --git a/compiler/locomotiv/src/Node/EltwiseDiv.test.cpp b/compiler/locomotiv/src/Node/EltwiseDiv.test.cpp
index 60950c15b..cc5045073 100644
--- a/compiler/locomotiv/src/Node/EltwiseDiv.test.cpp
+++ b/compiler/locomotiv/src/Node/EltwiseDiv.test.cpp
@@ -108,14 +108,14 @@ TEST(NodeExecution_EltwiseDiv, f32)
// comparing the result
ASSERT_NE(eltwise_div_data, nullptr);
- ASSERT_EQ(eltwise_div_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(eltwise_div_data->shape()), Shape({1, 3, 3, 2}));
+ ASSERT_EQ(loco::DataType::FLOAT32, eltwise_div_data->dtype());
+ ASSERT_EQ(Shape({1, 3, 3, 2}), *(eltwise_div_data->shape()));
uint32_t n = 0;
for (IndexEnumerator e{*(eltwise_div_data->shape())}; e.valid(); e.advance())
{
- ASSERT_FLOAT_EQ(eltwise_div_data->as_f32_bufptr()->at(e.current()), out_val[n++]);
+ ASSERT_FLOAT_EQ(out_val[n++], eltwise_div_data->as_f32_bufptr()->at(e.current()));
}
- ASSERT_EQ(locomotiv::annot_domain(eltwise_div), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(eltwise_div));
}
diff --git a/compiler/locomotiv/src/Node/EltwiseMax.test.cpp b/compiler/locomotiv/src/Node/EltwiseMax.test.cpp
index c64db8994..94c398212 100644
--- a/compiler/locomotiv/src/Node/EltwiseMax.test.cpp
+++ b/compiler/locomotiv/src/Node/EltwiseMax.test.cpp
@@ -108,14 +108,14 @@ TEST(NodeExecution_EltwiseMax, f32)
// comparing the result
ASSERT_NE(eltwise_max_data, nullptr);
- ASSERT_EQ(eltwise_max_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(eltwise_max_data->shape()), Shape({1, 3, 3, 2}));
+ ASSERT_EQ(loco::DataType::FLOAT32, eltwise_max_data->dtype());
+ ASSERT_EQ(Shape({1, 3, 3, 2}), *(eltwise_max_data->shape()));
uint32_t n = 0;
for (IndexEnumerator e{*(eltwise_max_data->shape())}; e.valid(); e.advance())
{
- ASSERT_FLOAT_EQ(eltwise_max_data->as_f32_bufptr()->at(e.current()), out_val[n++]);
+ ASSERT_FLOAT_EQ(out_val[n++], eltwise_max_data->as_f32_bufptr()->at(e.current()));
}
- ASSERT_EQ(locomotiv::annot_domain(eltwise_max), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(eltwise_max));
}
diff --git a/compiler/locomotiv/src/Node/EltwiseMul.test.cpp b/compiler/locomotiv/src/Node/EltwiseMul.test.cpp
index b76888300..bbe51bce1 100644
--- a/compiler/locomotiv/src/Node/EltwiseMul.test.cpp
+++ b/compiler/locomotiv/src/Node/EltwiseMul.test.cpp
@@ -111,14 +111,14 @@ TEST(NodeExecution_EltwiseMul, f32)
// comparing the result
ASSERT_NE(eltwise_mul_data, nullptr);
- ASSERT_EQ(eltwise_mul_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(eltwise_mul_data->shape()), Shape({1, 3, 3, 2}));
+ ASSERT_EQ(loco::DataType::FLOAT32, eltwise_mul_data->dtype());
+ ASSERT_EQ(Shape({1, 3, 3, 2}), *(eltwise_mul_data->shape()));
uint32_t n = 0;
for (IndexEnumerator e{*(eltwise_mul_data->shape())}; e.valid(); e.advance())
{
- ASSERT_FLOAT_EQ(eltwise_mul_data->as_f32_bufptr()->at(e.current()), out_val[n++]);
+ ASSERT_FLOAT_EQ(out_val[n++], eltwise_mul_data->as_f32_bufptr()->at(e.current()));
}
- ASSERT_EQ(locomotiv::annot_domain(eltwise_mul), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(eltwise_mul));
}
diff --git a/compiler/locomotiv/src/Node/EltwiseSqrt.test.cpp b/compiler/locomotiv/src/Node/EltwiseSqrt.test.cpp
index adb1b853e..44d0ca654 100644
--- a/compiler/locomotiv/src/Node/EltwiseSqrt.test.cpp
+++ b/compiler/locomotiv/src/Node/EltwiseSqrt.test.cpp
@@ -58,12 +58,12 @@ TEST(NodeExecution_EltwiseSqrt, f32)
auto sqrt_data = locomotiv::annot_data(sqrt);
ASSERT_NE(sqrt_data, nullptr);
- ASSERT_EQ(sqrt_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(sqrt_data->shape()), Shape{4});
- ASSERT_FLOAT_EQ(sqrt_data->as_f32_bufptr()->at(Index{0}), 2.0f);
- ASSERT_FLOAT_EQ(sqrt_data->as_f32_bufptr()->at(Index{1}), 3.0f);
- ASSERT_FLOAT_EQ(sqrt_data->as_f32_bufptr()->at(Index{2}), 0.0f);
+ ASSERT_EQ(loco::DataType::FLOAT32, sqrt_data->dtype());
+ ASSERT_EQ(Shape{4}, *(sqrt_data->shape()));
+ ASSERT_FLOAT_EQ(2.0f, sqrt_data->as_f32_bufptr()->at(Index{0}));
+ ASSERT_FLOAT_EQ(3.0f, sqrt_data->as_f32_bufptr()->at(Index{1}));
+ ASSERT_FLOAT_EQ(0.0f, sqrt_data->as_f32_bufptr()->at(Index{2}));
ASSERT_TRUE(std::isnan(sqrt_data->as_f32_bufptr()->at(Index{3})));
- ASSERT_EQ(locomotiv::annot_domain(sqrt), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(sqrt));
}
diff --git a/compiler/locomotiv/src/Node/EltwiseSub.test.cpp b/compiler/locomotiv/src/Node/EltwiseSub.test.cpp
index 7eff90f9e..94dc9c9ad 100644
--- a/compiler/locomotiv/src/Node/EltwiseSub.test.cpp
+++ b/compiler/locomotiv/src/Node/EltwiseSub.test.cpp
@@ -108,14 +108,14 @@ TEST(NodeExecution_EltwiseSub, f32)
// comparing the result
ASSERT_NE(eltwise_sub_data, nullptr);
- ASSERT_EQ(eltwise_sub_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(eltwise_sub_data->shape()), Shape({1, 3, 3, 2}));
+ ASSERT_EQ(loco::DataType::FLOAT32, eltwise_sub_data->dtype());
+ ASSERT_EQ(Shape({1, 3, 3, 2}), *(eltwise_sub_data->shape()));
uint32_t n = 0;
for (IndexEnumerator e{*(eltwise_sub_data->shape())}; e.valid(); e.advance())
{
- ASSERT_FLOAT_EQ(eltwise_sub_data->as_f32_bufptr()->at(e.current()), out_val[n++]);
+ ASSERT_FLOAT_EQ(out_val[n++], eltwise_sub_data->as_f32_bufptr()->at(e.current()));
}
- ASSERT_EQ(locomotiv::annot_domain(eltwise_sub), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(eltwise_sub));
}
diff --git a/compiler/locomotiv/src/Node/FeatureCodec.test.cpp b/compiler/locomotiv/src/Node/FeatureCodec.test.cpp
index c35f0e69a..1b6b06c13 100644
--- a/compiler/locomotiv/src/Node/FeatureCodec.test.cpp
+++ b/compiler/locomotiv/src/Node/FeatureCodec.test.cpp
@@ -128,16 +128,16 @@ TEST_F(NodeExecution_FeatureCodec, s32)
// Test FeatureEncode
auto enc_data = locomotiv::annot_data(enc);
ASSERT_NE(enc_data, nullptr);
- ASSERT_EQ(enc_data->dtype(), loco::DataType::S32);
- ASSERT_EQ(*(enc_data->shape()), (Shape{N, H, W, C})); // locomotiv feature is NHWC
+ ASSERT_EQ(loco::DataType::S32, enc_data->dtype());
+ ASSERT_EQ((Shape{N, H, W, C}), *(enc_data->shape())); // locomotiv feature is NHWC
auto enc_buf = enc_data->as_s32_bufptr();
for (uint32_t n = 0; n < N; ++n)
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
for (uint32_t c = 0; c < C; ++c)
- ASSERT_EQ(pull_buf.at(Index{n, c, h, w}), enc_buf->at(Index{n, h, w, c}));
+ ASSERT_EQ(enc_buf->at(Index{n, h, w, c}), pull_buf.at(Index{n, c, h, w}));
- ASSERT_EQ(locomotiv::annot_domain(enc), loco::Domain::Feature);
+ ASSERT_EQ(loco::Domain::Feature, locomotiv::annot_domain(enc));
// FeatureDecode
auto dec = feature_decode_layer(enc, NCHW);
@@ -146,16 +146,16 @@ TEST_F(NodeExecution_FeatureCodec, s32)
// Test FeatureDecode: Encode -> Decode == identity
auto dec_data = locomotiv::annot_data(dec);
ASSERT_NE(dec_data, nullptr);
- ASSERT_EQ(dec_data->dtype(), loco::DataType::S32);
- ASSERT_EQ(*(dec_data->shape()), (Shape{N, C, H, W}));
+ ASSERT_EQ(loco::DataType::S32, dec_data->dtype());
+ ASSERT_EQ((Shape{N, C, H, W}), *(dec_data->shape()));
auto dec_buf = dec_data->as_s32_bufptr();
for (uint32_t n = 0; n < N; ++n)
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
for (uint32_t c = 0; c < C; ++c)
- ASSERT_EQ(pull_buf.at(Index{n, c, h, w}), dec_buf->at(Index{n, c, h, w}));
+ ASSERT_EQ(dec_buf->at(Index{n, c, h, w}), pull_buf.at(Index{n, c, h, w}));
- ASSERT_EQ(locomotiv::annot_domain(dec), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(dec));
}
TEST_F(NodeExecution_FeatureCodec, f32)
@@ -192,16 +192,16 @@ TEST_F(NodeExecution_FeatureCodec, f32)
// Test FeatureEncode
auto enc_data = locomotiv::annot_data(enc);
ASSERT_NE(enc_data, nullptr);
- ASSERT_EQ(enc_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(enc_data->shape()), (Shape{N, H, W, C})); // locomotiv feature is NHWC
+ ASSERT_EQ(loco::DataType::FLOAT32, enc_data->dtype());
+ ASSERT_EQ((Shape{N, H, W, C}), *(enc_data->shape())); // locomotiv feature is NHWC
auto enc_buf = enc_data->as_f32_bufptr();
for (uint32_t n = 0; n < N; ++n)
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
for (uint32_t c = 0; c < C; ++c)
- ASSERT_FLOAT_EQ(pull_buf.at(Index{c, h, n, w}), enc_buf->at(Index{n, h, w, c}));
+ ASSERT_FLOAT_EQ(enc_buf->at(Index{n, h, w, c}), pull_buf.at(Index{c, h, n, w}));
- ASSERT_EQ(locomotiv::annot_domain(enc), loco::Domain::Feature);
+ ASSERT_EQ(loco::Domain::Feature, locomotiv::annot_domain(enc));
// FeatureDecode
auto dec = feature_decode_layer(enc, CHNW);
@@ -210,14 +210,14 @@ TEST_F(NodeExecution_FeatureCodec, f32)
// Test FeatureDecode: Encode -> Decode == identity
auto dec_data = locomotiv::annot_data(dec);
ASSERT_NE(dec_data, nullptr);
- ASSERT_EQ(dec_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(dec_data->shape()), (Shape{C, H, N, W}));
+ ASSERT_EQ(loco::DataType::FLOAT32, dec_data->dtype());
+ ASSERT_EQ((Shape{C, H, N, W}), *(dec_data->shape()));
auto dec_buf = dec_data->as_f32_bufptr();
for (uint32_t n = 0; n < N; ++n)
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
for (uint32_t c = 0; c < C; ++c)
- ASSERT_FLOAT_EQ(pull_buf.at(Index{c, h, n, w}), dec_buf->at(Index{c, h, n, w}));
+ ASSERT_FLOAT_EQ(dec_buf->at(Index{c, h, n, w}), pull_buf.at(Index{c, h, n, w}));
- ASSERT_EQ(locomotiv::annot_domain(dec), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(dec));
}
diff --git a/compiler/locomotiv/src/Node/FilterEncode.test.cpp b/compiler/locomotiv/src/Node/FilterEncode.test.cpp
index 79b8308e2..dcca94993 100644
--- a/compiler/locomotiv/src/Node/FilterEncode.test.cpp
+++ b/compiler/locomotiv/src/Node/FilterEncode.test.cpp
@@ -77,16 +77,16 @@ TEST(NodeExecution_FilterEncode, s32)
auto enc_data = locomotiv::annot_data(enc);
ASSERT_NE(enc_data, nullptr);
- ASSERT_EQ(enc_data->dtype(), loco::DataType::S32);
- ASSERT_EQ(*(enc_data->shape()), (Shape{N, H, W, C})); // locomotiv filter is NHWC
+ ASSERT_EQ(loco::DataType::S32, enc_data->dtype());
+ ASSERT_EQ((Shape{N, H, W, C}), *(enc_data->shape())); // locomotiv filter is NHWC
auto enc_buf = enc_data->as_s32_bufptr();
for (uint32_t n = 0; n < N; ++n)
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
for (uint32_t c = 0; c < C; ++c)
- ASSERT_EQ(pull_buf.at(Index{n, c, h, w}), enc_buf->at(Index{n, h, w, c}));
+ ASSERT_EQ(enc_buf->at(Index{n, h, w, c}), pull_buf.at(Index{n, c, h, w}));
- ASSERT_EQ(locomotiv::annot_domain(enc), loco::Domain::Filter);
+ ASSERT_EQ(loco::Domain::Filter, locomotiv::annot_domain(enc));
}
TEST(NodeExecution_FilterEncode, f32)
@@ -131,14 +131,14 @@ TEST(NodeExecution_FilterEncode, f32)
auto enc_data = locomotiv::annot_data(enc);
ASSERT_NE(enc_data, nullptr);
- ASSERT_EQ(enc_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(enc_data->shape()), (Shape{N, H, W, C})); // locomotiv filter is NHWC
+ ASSERT_EQ(loco::DataType::FLOAT32, enc_data->dtype());
+ ASSERT_EQ((Shape{N, H, W, C}), *(enc_data->shape())); // locomotiv filter is NHWC
auto enc_buf = enc_data->as_f32_bufptr();
for (uint32_t n = 0; n < N; ++n)
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
for (uint32_t c = 0; c < C; ++c)
- ASSERT_FLOAT_EQ(pull_buf.at(Index{c, h, n, w}), enc_buf->at(Index{n, h, w, c}));
+ ASSERT_FLOAT_EQ(enc_buf->at(Index{n, h, w, c}), pull_buf.at(Index{c, h, n, w}));
- ASSERT_EQ(locomotiv::annot_domain(enc), loco::Domain::Filter);
+ ASSERT_EQ(loco::Domain::Filter, locomotiv::annot_domain(enc));
}
diff --git a/compiler/locomotiv/src/Node/Forward.test.cpp b/compiler/locomotiv/src/Node/Forward.test.cpp
index 73d37139a..5116a9596 100644
--- a/compiler/locomotiv/src/Node/Forward.test.cpp
+++ b/compiler/locomotiv/src/Node/Forward.test.cpp
@@ -52,11 +52,11 @@ TEST(NodeExecution_Forward, s32)
auto forward_data = locomotiv::annot_data(forward);
ASSERT_NE(forward_data, nullptr);
- ASSERT_EQ(forward_data->dtype(), loco::DataType::S32);
- ASSERT_EQ(*(forward_data->shape()), Shape{1});
- ASSERT_EQ(forward_data->as_s32_bufptr()->at(Index{0}), pull_buf.at(Index{0}));
+ ASSERT_EQ(loco::DataType::S32, forward_data->dtype());
+ ASSERT_EQ(Shape{1}, *(forward_data->shape()));
+ ASSERT_EQ(pull_buf.at(Index{0}), forward_data->as_s32_bufptr()->at(Index{0}));
- ASSERT_EQ(locomotiv::annot_domain(forward), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(forward));
}
TEST(NodeExecution_Forward, f32)
@@ -80,9 +80,9 @@ TEST(NodeExecution_Forward, f32)
auto forward_data = locomotiv::annot_data(forward);
ASSERT_NE(forward_data, nullptr);
- ASSERT_EQ(forward_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(forward_data->shape()), Shape{1});
- ASSERT_FLOAT_EQ(forward_data->as_f32_bufptr()->at(Index{0}), pull_buf.at(Index{0}));
+ ASSERT_EQ(loco::DataType::FLOAT32, forward_data->dtype());
+ ASSERT_EQ(Shape{1}, *(forward_data->shape()));
+ ASSERT_FLOAT_EQ(pull_buf.at(Index{0}), forward_data->as_f32_bufptr()->at(Index{0}));
- ASSERT_EQ(locomotiv::annot_domain(forward), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(forward));
}
diff --git a/compiler/locomotiv/src/Node/MatMul.test.cpp b/compiler/locomotiv/src/Node/MatMul.test.cpp
index bd480f7c7..f1f3a52d3 100644
--- a/compiler/locomotiv/src/Node/MatMul.test.cpp
+++ b/compiler/locomotiv/src/Node/MatMul.test.cpp
@@ -92,14 +92,14 @@ void run_test(const T *lhs, const T *rhs, const T *expected_output, const Shape
{
const auto &ind = e.current();
if (expected_datatype == loco::DataType::FLOAT32)
- ASSERT_FLOAT_EQ(mat_mul_result->as_f32_bufptr()->at(ind), out_overlay.at(ind));
+ ASSERT_FLOAT_EQ(out_overlay.at(ind), mat_mul_result->as_f32_bufptr()->at(ind));
else if (expected_datatype == loco::DataType::S32)
- ASSERT_EQ(mat_mul_result->as_s32_bufptr()->at(ind), out_overlay.at(ind));
+ ASSERT_EQ(out_overlay.at(ind), mat_mul_result->as_s32_bufptr()->at(ind));
else
throw std::runtime_error("NYI for these DataTypes");
}
- ASSERT_EQ(locomotiv::annot_domain(mat_mul), loco::Domain::Matrix);
+ ASSERT_EQ(loco::Domain::Matrix, locomotiv::annot_domain(mat_mul));
}
} // namespace
diff --git a/compiler/locomotiv/src/Node/MatrixCodec.test.cpp b/compiler/locomotiv/src/Node/MatrixCodec.test.cpp
index 8fc5d593b..da4afeded 100644
--- a/compiler/locomotiv/src/Node/MatrixCodec.test.cpp
+++ b/compiler/locomotiv/src/Node/MatrixCodec.test.cpp
@@ -124,14 +124,14 @@ TEST_F(NodeExecution_MatrixCodec, HW_s32)
// Test MatrixEncode
auto enc_data = locomotiv::annot_data(enc);
ASSERT_NE(enc_data, nullptr);
- ASSERT_EQ(enc_data->dtype(), loco::DataType::S32);
- ASSERT_EQ(*(enc_data->shape()), (Shape{H, W})); // locomotiv matrix is HW
+ ASSERT_EQ(loco::DataType::S32, enc_data->dtype());
+ ASSERT_EQ((Shape{H, W}), *(enc_data->shape())); // locomotiv matrix is HW
auto enc_buf = enc_data->as_s32_bufptr();
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
- ASSERT_EQ(pull_buf.at(Index{h, w}), enc_buf->at(Index{h, w}));
+ ASSERT_EQ(enc_buf->at(Index{h, w}), pull_buf.at(Index{h, w}));
- ASSERT_EQ(locomotiv::annot_domain(enc), loco::Domain::Matrix);
+ ASSERT_EQ(loco::Domain::Matrix, locomotiv::annot_domain(enc));
// MatrixDecode
auto dec = matrix_decode_layer(enc, HW);
@@ -140,14 +140,14 @@ TEST_F(NodeExecution_MatrixCodec, HW_s32)
// Test MatrixDecode: Encode -> Decode == identity
auto dec_data = locomotiv::annot_data(dec);
ASSERT_NE(dec_data, nullptr);
- ASSERT_EQ(dec_data->dtype(), loco::DataType::S32);
- ASSERT_EQ(*(dec_data->shape()), (Shape{H, W}));
+ ASSERT_EQ(loco::DataType::S32, dec_data->dtype());
+ ASSERT_EQ((Shape{H, W}), *(dec_data->shape()));
auto dec_buf = dec_data->as_s32_bufptr();
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
- ASSERT_EQ(pull_buf.at(Index{h, w}), dec_buf->at(Index{h, w}));
+ ASSERT_EQ(dec_buf->at(Index{h, w}), pull_buf.at(Index{h, w}));
- ASSERT_EQ(locomotiv::annot_domain(dec), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(dec));
}
TEST_F(NodeExecution_MatrixCodec, WH_f32)
@@ -180,14 +180,14 @@ TEST_F(NodeExecution_MatrixCodec, WH_f32)
// Test MatrixEncode
auto enc_data = locomotiv::annot_data(enc);
ASSERT_NE(enc_data, nullptr);
- ASSERT_EQ(enc_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(enc_data->shape()), (Shape{H, W})); // locomotiv matrix is HW
+ ASSERT_EQ(loco::DataType::FLOAT32, enc_data->dtype());
+ ASSERT_EQ((Shape{H, W}), *(enc_data->shape())); // locomotiv matrix is HW
auto enc_buf = enc_data->as_f32_bufptr();
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
- ASSERT_FLOAT_EQ(pull_buf.at(Index{w, h}), enc_buf->at(Index{h, w}));
+ ASSERT_FLOAT_EQ(enc_buf->at(Index{h, w}), pull_buf.at(Index{w, h}));
- ASSERT_EQ(locomotiv::annot_domain(enc), loco::Domain::Matrix);
+ ASSERT_EQ(loco::Domain::Matrix, locomotiv::annot_domain(enc));
// MatrixDecode
auto dec = matrix_decode_layer(enc, WH);
@@ -196,12 +196,12 @@ TEST_F(NodeExecution_MatrixCodec, WH_f32)
// Test MatrixDecode: Encode -> Decode == identity
auto dec_data = locomotiv::annot_data(dec);
ASSERT_NE(dec_data, nullptr);
- ASSERT_EQ(dec_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(dec_data->shape()), (Shape{W, H}));
+ ASSERT_EQ(loco::DataType::FLOAT32, dec_data->dtype());
+ ASSERT_EQ((Shape{W, H}), *(dec_data->shape()));
auto dec_buf = dec_data->as_f32_bufptr();
for (uint32_t h = 0; h < H; ++h)
for (uint32_t w = 0; w < W; ++w)
- ASSERT_FLOAT_EQ(pull_buf.at(Index{w, h}), dec_buf->at(Index{w, h}));
+ ASSERT_FLOAT_EQ(dec_buf->at(Index{w, h}), pull_buf.at(Index{w, h}));
- ASSERT_EQ(locomotiv::annot_domain(dec), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(dec));
}
diff --git a/compiler/locomotiv/src/Node/MaxPool2D.test.cpp b/compiler/locomotiv/src/Node/MaxPool2D.test.cpp
index 9d877a96b..5046d4a6e 100644
--- a/compiler/locomotiv/src/Node/MaxPool2D.test.cpp
+++ b/compiler/locomotiv/src/Node/MaxPool2D.test.cpp
@@ -86,10 +86,10 @@ void run_test(const float *ifm, const float *expected_ofm, const Shape &ifm_shap
for (nncc::core::ADT::tensor::IndexEnumerator e{ofm_shape}; e.valid(); e.advance())
{
const auto &ind = e.current();
- ASSERT_FLOAT_EQ(maxpool2d_data->as_f32_bufptr()->at(ind), ofm_overlay.at(ind));
+ ASSERT_FLOAT_EQ(ofm_overlay.at(ind), maxpool2d_data->as_f32_bufptr()->at(ind));
}
- ASSERT_EQ(locomotiv::annot_domain(maxpool2d), loco::Domain::Feature);
+ ASSERT_EQ(loco::Domain::Feature, locomotiv::annot_domain(maxpool2d));
}
} // namespace
diff --git a/compiler/locomotiv/src/Node/Push.test.cpp b/compiler/locomotiv/src/Node/Push.test.cpp
index be8f1e4e9..e9f56056a 100644
--- a/compiler/locomotiv/src/Node/Push.test.cpp
+++ b/compiler/locomotiv/src/Node/Push.test.cpp
@@ -52,11 +52,11 @@ TEST(NodeExecution_Push, s32)
auto push_data = locomotiv::annot_data(push);
ASSERT_NE(push_data, nullptr);
- ASSERT_EQ(push_data->dtype(), loco::DataType::S32);
- ASSERT_EQ(*(push_data->shape()), Shape{1});
- ASSERT_EQ(push_data->as_s32_bufptr()->at(Index{0}), pull_buf.at(Index{0}));
+ ASSERT_EQ(loco::DataType::S32, push_data->dtype());
+ ASSERT_EQ(Shape{1}, *(push_data->shape()));
+ ASSERT_EQ(pull_buf.at(Index{0}), push_data->as_s32_bufptr()->at(Index{0}));
- ASSERT_EQ(locomotiv::annot_domain(push), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(push));
}
TEST(NodeExecution_Push, f32)
@@ -80,9 +80,9 @@ TEST(NodeExecution_Push, f32)
auto push_data = locomotiv::annot_data(push);
ASSERT_NE(push_data, nullptr);
- ASSERT_EQ(push_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(push_data->shape()), Shape{1});
- ASSERT_FLOAT_EQ(push_data->as_f32_bufptr()->at(Index{0}), pull_buf.at(Index{0}));
+ ASSERT_EQ(loco::DataType::FLOAT32, push_data->dtype());
+ ASSERT_EQ(Shape{1}, *(push_data->shape()));
+ ASSERT_FLOAT_EQ(pull_buf.at(Index{0}), push_data->as_f32_bufptr()->at(Index{0}));
- ASSERT_EQ(locomotiv::annot_domain(push), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(push));
}
diff --git a/compiler/locomotiv/src/Node/ReLU.test.cpp b/compiler/locomotiv/src/Node/ReLU.test.cpp
index 0ddd01d0f..d2f928d1d 100644
--- a/compiler/locomotiv/src/Node/ReLU.test.cpp
+++ b/compiler/locomotiv/src/Node/ReLU.test.cpp
@@ -53,10 +53,10 @@ TEST(NodeExecution_ReLU, f32)
auto relu_data = locomotiv::annot_data(relu);
ASSERT_NE(relu_data, nullptr);
- ASSERT_EQ(relu_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(relu_data->shape()), Shape{2});
- ASSERT_FLOAT_EQ(relu_data->as_f32_bufptr()->at(Index{0}), 0.0f);
- ASSERT_FLOAT_EQ(relu_data->as_f32_bufptr()->at(Index{1}), 10.0f);
+ ASSERT_EQ(loco::DataType::FLOAT32, relu_data->dtype());
+ ASSERT_EQ(Shape{2}, *(relu_data->shape()));
+ ASSERT_FLOAT_EQ(0.0f, relu_data->as_f32_bufptr()->at(Index{0}));
+ ASSERT_FLOAT_EQ(10.0f, relu_data->as_f32_bufptr()->at(Index{1}));
- ASSERT_EQ(locomotiv::annot_domain(relu), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(relu));
}
diff --git a/compiler/locomotiv/src/Node/ReLU6.test.cpp b/compiler/locomotiv/src/Node/ReLU6.test.cpp
index 07f6af23f..b2362b1f4 100644
--- a/compiler/locomotiv/src/Node/ReLU6.test.cpp
+++ b/compiler/locomotiv/src/Node/ReLU6.test.cpp
@@ -55,12 +55,12 @@ TEST(NodeExecution_ReLU6, f32)
auto relu6_data = locomotiv::annot_data(relu6);
ASSERT_NE(relu6_data, nullptr);
- ASSERT_EQ(relu6_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(relu6_data->shape()), Shape({2, 2}));
- ASSERT_FLOAT_EQ(relu6_data->as_f32_bufptr()->at(Index{0, 0}), 0.0f);
- ASSERT_FLOAT_EQ(relu6_data->as_f32_bufptr()->at(Index{0, 1}), 6.0f);
- ASSERT_FLOAT_EQ(relu6_data->as_f32_bufptr()->at(Index{1, 0}), 6.0f);
- ASSERT_FLOAT_EQ(relu6_data->as_f32_bufptr()->at(Index{1, 1}), 0.0f);
+ ASSERT_EQ(loco::DataType::FLOAT32, relu6_data->dtype());
+ ASSERT_EQ(Shape({2, 2}), *(relu6_data->shape()));
+ ASSERT_FLOAT_EQ(0.0f, relu6_data->as_f32_bufptr()->at(Index{0, 0}));
+ ASSERT_FLOAT_EQ(6.0f, relu6_data->as_f32_bufptr()->at(Index{0, 1}));
+ ASSERT_FLOAT_EQ(6.0f, relu6_data->as_f32_bufptr()->at(Index{1, 0}));
+ ASSERT_FLOAT_EQ(0.0f, relu6_data->as_f32_bufptr()->at(Index{1, 1}));
- ASSERT_EQ(locomotiv::annot_domain(relu6), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(relu6));
}
diff --git a/compiler/locomotiv/src/Node/Reshape.test.cpp b/compiler/locomotiv/src/Node/Reshape.test.cpp
index 8e54a16df..8aeb4656f 100644
--- a/compiler/locomotiv/src/Node/Reshape.test.cpp
+++ b/compiler/locomotiv/src/Node/Reshape.test.cpp
@@ -56,12 +56,12 @@ TEST(NodeExecution_Reshape, f32)
auto reshape_data = locomotiv::annot_data(reshape);
ASSERT_NE(reshape_data, nullptr);
- ASSERT_EQ(reshape_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(reshape_data->shape()), (Shape{2, 2}));
- ASSERT_FLOAT_EQ(reshape_data->as_f32_bufptr()->at(Index{0, 0}), 0.0f);
- ASSERT_FLOAT_EQ(reshape_data->as_f32_bufptr()->at(Index{0, 1}), 1.1f);
- ASSERT_FLOAT_EQ(reshape_data->as_f32_bufptr()->at(Index{1, 0}), 2.2f);
- ASSERT_FLOAT_EQ(reshape_data->as_f32_bufptr()->at(Index{1, 1}), 3.3f);
+ ASSERT_EQ(loco::DataType::FLOAT32, reshape_data->dtype());
+ ASSERT_EQ((Shape{2, 2}), *(reshape_data->shape()));
+ ASSERT_FLOAT_EQ(0.0f, reshape_data->as_f32_bufptr()->at(Index{0, 0}));
+ ASSERT_FLOAT_EQ(1.1f, reshape_data->as_f32_bufptr()->at(Index{0, 1}));
+ ASSERT_FLOAT_EQ(2.2f, reshape_data->as_f32_bufptr()->at(Index{1, 0}));
+ ASSERT_FLOAT_EQ(3.3f, reshape_data->as_f32_bufptr()->at(Index{1, 1}));
- ASSERT_EQ(locomotiv::annot_domain(reshape), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(reshape));
}
diff --git a/compiler/locomotiv/src/Node/Softmax.test.cpp b/compiler/locomotiv/src/Node/Softmax.test.cpp
index 21d240275..257279338 100644
--- a/compiler/locomotiv/src/Node/Softmax.test.cpp
+++ b/compiler/locomotiv/src/Node/Softmax.test.cpp
@@ -57,12 +57,12 @@ TEST(NodeExecution_Softmax, f32)
auto kShape = Shape{2, 2};
auto softmax_data = locomotiv::annot_data(softmax);
ASSERT_NE(softmax_data, nullptr);
- ASSERT_EQ(softmax_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(softmax_data->shape()), kShape);
- ASSERT_FLOAT_EQ(softmax_data->as_f32_bufptr()->at(Index{0, 0}), 0.5f);
- ASSERT_FLOAT_EQ(softmax_data->as_f32_bufptr()->at(Index{0, 1}), 0.5f);
- ASSERT_FLOAT_EQ(softmax_data->as_f32_bufptr()->at(Index{1, 0}), 0.5f);
- ASSERT_FLOAT_EQ(softmax_data->as_f32_bufptr()->at(Index{1, 1}), 0.5f);
+ ASSERT_EQ(loco::DataType::FLOAT32, softmax_data->dtype());
+ ASSERT_EQ(kShape, *(softmax_data->shape()));
+ ASSERT_FLOAT_EQ(0.5f, softmax_data->as_f32_bufptr()->at(Index{0, 0}));
+ ASSERT_FLOAT_EQ(0.5f, softmax_data->as_f32_bufptr()->at(Index{0, 1}));
+ ASSERT_FLOAT_EQ(0.5f, softmax_data->as_f32_bufptr()->at(Index{1, 0}));
+ ASSERT_FLOAT_EQ(0.5f, softmax_data->as_f32_bufptr()->at(Index{1, 1}));
- ASSERT_EQ(locomotiv::annot_domain(softmax), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(softmax));
}
diff --git a/compiler/locomotiv/src/Node/Tanh.test.cpp b/compiler/locomotiv/src/Node/Tanh.test.cpp
index 78c3a13ba..96c1e7f1f 100644
--- a/compiler/locomotiv/src/Node/Tanh.test.cpp
+++ b/compiler/locomotiv/src/Node/Tanh.test.cpp
@@ -54,11 +54,11 @@ TEST(NodeExecution_Tanh, f32)
auto tanh_data = locomotiv::annot_data(tanh);
ASSERT_NE(tanh_data, nullptr);
- ASSERT_EQ(tanh_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(tanh_data->shape()), Shape{3});
- ASSERT_FLOAT_EQ(tanh_data->as_f32_bufptr()->at(Index{0}), 0.0f);
- ASSERT_FLOAT_EQ(tanh_data->as_f32_bufptr()->at(Index{1}), 0.761594f);
- ASSERT_FLOAT_EQ(tanh_data->as_f32_bufptr()->at(Index{2}), -0.761594f);
+ ASSERT_EQ(loco::DataType::FLOAT32, tanh_data->dtype());
+ ASSERT_EQ(Shape{3}, *(tanh_data->shape()));
+ ASSERT_FLOAT_EQ(0.0f, tanh_data->as_f32_bufptr()->at(Index{0}));
+ ASSERT_FLOAT_EQ(0.761594f, tanh_data->as_f32_bufptr()->at(Index{1}));
+ ASSERT_FLOAT_EQ(-0.761594f, tanh_data->as_f32_bufptr()->at(Index{2}));
- ASSERT_EQ(locomotiv::annot_domain(tanh), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(tanh));
}
diff --git a/compiler/locomotiv/src/Node/TensorBroadcast.test.cpp b/compiler/locomotiv/src/Node/TensorBroadcast.test.cpp
index e8347d737..52f7c8517 100644
--- a/compiler/locomotiv/src/Node/TensorBroadcast.test.cpp
+++ b/compiler/locomotiv/src/Node/TensorBroadcast.test.cpp
@@ -54,10 +54,10 @@ TEST(NodeExecution_TensorBroadcast, f32)
auto broadcast_data = locomotiv::annot_data(broadcast);
ASSERT_NE(broadcast_data, nullptr);
- ASSERT_EQ(broadcast_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ((*(broadcast_data->shape())), (Shape{2, 1}));
- ASSERT_FLOAT_EQ(broadcast_data->as_f32_bufptr()->at(Index{0, 0}), -1.0f);
- ASSERT_FLOAT_EQ(broadcast_data->as_f32_bufptr()->at(Index{1, 0}), -1.0f);
+ ASSERT_EQ(loco::DataType::FLOAT32, broadcast_data->dtype());
+ ASSERT_EQ((Shape{2, 1}), (*(broadcast_data->shape())));
+ ASSERT_FLOAT_EQ(-1.0f, broadcast_data->as_f32_bufptr()->at(Index{0, 0}));
+ ASSERT_FLOAT_EQ(-1.0f, broadcast_data->as_f32_bufptr()->at(Index{1, 0}));
- ASSERT_EQ(locomotiv::annot_domain(broadcast), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(broadcast));
}
diff --git a/compiler/locomotiv/src/Node/TensorConcat.cpp b/compiler/locomotiv/src/Node/TensorConcat.cpp
index 5097e55c6..3187a7f75 100644
--- a/compiler/locomotiv/src/Node/TensorConcat.cpp
+++ b/compiler/locomotiv/src/Node/TensorConcat.cpp
@@ -40,6 +40,8 @@ namespace locomotiv
void NodeExecution::execute(loco::TensorConcat *tensor_concat)
{
+ validate(tensor_concat, "TensorConcat is nullptr");
+
auto lhs_data = annot_data(tensor_concat->lhs());
auto rhs_data = annot_data(tensor_concat->rhs());
auto axis = tensor_concat->axis();
diff --git a/compiler/locomotiv/src/Node/TensorConcat.test.cpp b/compiler/locomotiv/src/Node/TensorConcat.test.cpp
index d71b51524..e9060e36f 100644
--- a/compiler/locomotiv/src/Node/TensorConcat.test.cpp
+++ b/compiler/locomotiv/src/Node/TensorConcat.test.cpp
@@ -65,14 +65,14 @@ TEST(NodeExecution_TensorConcat, f32)
auto concat_data = locomotiv::annot_data(tconcat);
ASSERT_NE(concat_data, nullptr);
- ASSERT_EQ(concat_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ((*(concat_data->shape())), (Shape{2, 2}));
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{0, 0}), -1.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{0, 1}), -2.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{1, 0}), 3.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{1, 1}), 4.0f);
-
- ASSERT_EQ(locomotiv::annot_domain(tconcat), loco::Domain::Tensor);
+ ASSERT_EQ(loco::DataType::FLOAT32, concat_data->dtype());
+ ASSERT_EQ((Shape{2, 2}), (*(concat_data->shape())));
+ ASSERT_FLOAT_EQ(-1.0f, concat_data->as_f32_bufptr()->at(Index{0, 0}));
+ ASSERT_FLOAT_EQ(-2.0f, concat_data->as_f32_bufptr()->at(Index{0, 1}));
+ ASSERT_FLOAT_EQ(3.0f, concat_data->as_f32_bufptr()->at(Index{1, 0}));
+ ASSERT_FLOAT_EQ(4.0f, concat_data->as_f32_bufptr()->at(Index{1, 1}));
+
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(tconcat));
}
TEST(NodeExecution_TensorConcat, f32_2)
@@ -113,16 +113,16 @@ TEST(NodeExecution_TensorConcat, f32_2)
auto concat_data = locomotiv::annot_data(tconcat);
ASSERT_NE(concat_data, nullptr);
- ASSERT_EQ(concat_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ((*(concat_data->shape())), (Shape{4, 2}));
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{0, 0}), -1.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{0, 1}), -2.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{1, 0}), 3.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{1, 1}), 4.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{2, 0}), -3.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{2, 1}), -4.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{3, 0}), 5.0f);
- ASSERT_FLOAT_EQ(concat_data->as_f32_bufptr()->at(Index{3, 1}), 6.0f);
-
- ASSERT_EQ(locomotiv::annot_domain(tconcat), loco::Domain::Tensor);
+ ASSERT_EQ(loco::DataType::FLOAT32, concat_data->dtype());
+ ASSERT_EQ((Shape{4, 2}), (*(concat_data->shape())));
+ ASSERT_FLOAT_EQ(-1.0f, concat_data->as_f32_bufptr()->at(Index{0, 0}));
+ ASSERT_FLOAT_EQ(-2.0f, concat_data->as_f32_bufptr()->at(Index{0, 1}));
+ ASSERT_FLOAT_EQ(3.0f, concat_data->as_f32_bufptr()->at(Index{1, 0}));
+ ASSERT_FLOAT_EQ(4.0f, concat_data->as_f32_bufptr()->at(Index{1, 1}));
+ ASSERT_FLOAT_EQ(-3.0f, concat_data->as_f32_bufptr()->at(Index{2, 0}));
+ ASSERT_FLOAT_EQ(-4.0f, concat_data->as_f32_bufptr()->at(Index{2, 1}));
+ ASSERT_FLOAT_EQ(5.0f, concat_data->as_f32_bufptr()->at(Index{3, 0}));
+ ASSERT_FLOAT_EQ(6.0f, concat_data->as_f32_bufptr()->at(Index{3, 1}));
+
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(tconcat));
}
diff --git a/compiler/locomotiv/src/Node/TensorConstantPad.cpp b/compiler/locomotiv/src/Node/TensorConstantPad.cpp
index 989afaf94..cd81a3a4d 100644
--- a/compiler/locomotiv/src/Node/TensorConstantPad.cpp
+++ b/compiler/locomotiv/src/Node/TensorConstantPad.cpp
@@ -36,6 +36,8 @@ namespace locomotiv
void NodeExecution::execute(loco::TensorConstantPad *pad)
{
+ validate(pad, "TensorConstantPad is nullptr");
+
auto input_data = annot_data(pad->input());
auto input_domain = annot_domain(pad->input());
validate(input_data, "Input not ready");
diff --git a/compiler/locomotiv/src/Node/TensorConstantPad.test.cpp b/compiler/locomotiv/src/Node/TensorConstantPad.test.cpp
index 0f60c5f85..64b913014 100644
--- a/compiler/locomotiv/src/Node/TensorConstantPad.test.cpp
+++ b/compiler/locomotiv/src/Node/TensorConstantPad.test.cpp
@@ -74,16 +74,16 @@ TEST(NodeExecution_Pad, tensor_constant_pad_4_dim)
auto pad_data = locomotiv::annot_data(pad);
ASSERT_NE(pad_data, nullptr);
- ASSERT_EQ(pad_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(pad_data->shape()), Shape({1, 6, 4, 1}));
+ ASSERT_EQ(loco::DataType::FLOAT32, pad_data->dtype());
+ ASSERT_EQ(Shape({1, 6, 4, 1}), *(pad_data->shape()));
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{0, 3, 1, 0}), 1.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{0, 3, 2, 0}), 2.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{0, 4, 1, 0}), 3.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{0, 4, 2, 0}), 4.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{0, 0, 0, 0}), 0.0f);
+ ASSERT_FLOAT_EQ(1.0f, pad_data->as_f32_bufptr()->at(Index{0, 3, 1, 0}));
+ ASSERT_FLOAT_EQ(2.0f, pad_data->as_f32_bufptr()->at(Index{0, 3, 2, 0}));
+ ASSERT_FLOAT_EQ(3.0f, pad_data->as_f32_bufptr()->at(Index{0, 4, 1, 0}));
+ ASSERT_FLOAT_EQ(4.0f, pad_data->as_f32_bufptr()->at(Index{0, 4, 2, 0}));
+ ASSERT_FLOAT_EQ(0.0f, pad_data->as_f32_bufptr()->at(Index{0, 0, 0, 0}));
- ASSERT_EQ(locomotiv::annot_domain(pad), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(pad));
}
TEST(NodeExecution_Pad, tensor_constant_pad_1_dim)
@@ -122,17 +122,17 @@ TEST(NodeExecution_Pad, tensor_constant_pad_1_dim)
auto pad_data = locomotiv::annot_data(pad);
ASSERT_NE(pad_data, nullptr);
- ASSERT_EQ(pad_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(pad_data->shape()), Shape({6}));
+ ASSERT_EQ(loco::DataType::FLOAT32, pad_data->dtype());
+ ASSERT_EQ(Shape({6}), *(pad_data->shape()));
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{0}), 0.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1}), 0.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{2}), 1.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{3}), 5.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{4}), 3.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{5}), 0.0f);
+ ASSERT_FLOAT_EQ(0.0f, pad_data->as_f32_bufptr()->at(Index{0}));
+ ASSERT_FLOAT_EQ(0.0f, pad_data->as_f32_bufptr()->at(Index{1}));
+ ASSERT_FLOAT_EQ(1.0f, pad_data->as_f32_bufptr()->at(Index{2}));
+ ASSERT_FLOAT_EQ(5.0f, pad_data->as_f32_bufptr()->at(Index{3}));
+ ASSERT_FLOAT_EQ(3.0f, pad_data->as_f32_bufptr()->at(Index{4}));
+ ASSERT_FLOAT_EQ(0.0f, pad_data->as_f32_bufptr()->at(Index{5}));
- ASSERT_EQ(locomotiv::annot_domain(pad), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(pad));
}
TEST(NodeExecution_Pad, tensor_constant_pad_6_dim)
@@ -200,19 +200,19 @@ TEST(NodeExecution_Pad, tensor_constant_pad_6_dim)
auto pad_data = locomotiv::annot_data(pad);
ASSERT_NE(pad_data, nullptr);
- ASSERT_EQ(pad_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(pad_data->shape()), Shape({4, 1, 6, 5, 1, 5}));
-
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 1, 2, 0, 1}), 1.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 1, 2, 0, 2}), 2.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 1, 3, 0, 1}), 3.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 1, 3, 0, 2}), 4.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 2, 2, 0, 1}), 5.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 2, 2, 0, 2}), 6.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 2, 3, 0, 1}), 7.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 2, 3, 0, 2}), 8.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 3, 2, 0, 1}), 9.0f);
- ASSERT_FLOAT_EQ(pad_data->as_f32_bufptr()->at(Index{1, 0, 3, 2, 0, 2}), 10.0f);
-
- ASSERT_EQ(locomotiv::annot_domain(pad), loco::Domain::Tensor);
+ ASSERT_EQ(loco::DataType::FLOAT32, pad_data->dtype());
+ ASSERT_EQ(Shape({4, 1, 6, 5, 1, 5}), *(pad_data->shape()));
+
+ ASSERT_FLOAT_EQ(1.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 1, 2, 0, 1}));
+ ASSERT_FLOAT_EQ(2.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 1, 2, 0, 2}));
+ ASSERT_FLOAT_EQ(3.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 1, 3, 0, 1}));
+ ASSERT_FLOAT_EQ(4.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 1, 3, 0, 2}));
+ ASSERT_FLOAT_EQ(5.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 2, 2, 0, 1}));
+ ASSERT_FLOAT_EQ(6.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 2, 2, 0, 2}));
+ ASSERT_FLOAT_EQ(7.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 2, 3, 0, 1}));
+ ASSERT_FLOAT_EQ(8.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 2, 3, 0, 2}));
+ ASSERT_FLOAT_EQ(9.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 3, 2, 0, 1}));
+ ASSERT_FLOAT_EQ(10.0f, pad_data->as_f32_bufptr()->at(Index{1, 0, 3, 2, 0, 2}));
+
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(pad));
}
diff --git a/compiler/locomotiv/src/Node/TensorReduce.cpp b/compiler/locomotiv/src/Node/TensorReduce.cpp
index fae7a75c5..a60ebd890 100644
--- a/compiler/locomotiv/src/Node/TensorReduce.cpp
+++ b/compiler/locomotiv/src/Node/TensorReduce.cpp
@@ -121,9 +121,8 @@ namespace locomotiv
void NodeExecution::execute(loco::TensorReduce *node)
{
auto input_data = annot_data(node->input());
- auto input_shape = input_data->shape();
-
validate(input_data, "Input not ready");
+ auto input_shape = input_data->shape();
validate(annot_domain(node->input()) == loco::Domain::Tensor,
"Input domain of TensorReduce is not Tensor");
diff --git a/compiler/locomotiv/src/Node/TensorReduce.test.cpp b/compiler/locomotiv/src/Node/TensorReduce.test.cpp
index 68398cacd..d0e73a248 100644
--- a/compiler/locomotiv/src/Node/TensorReduce.test.cpp
+++ b/compiler/locomotiv/src/Node/TensorReduce.test.cpp
@@ -60,12 +60,12 @@ TEST(NodeExecution_Fixed_Reduce_Mean, f32_0)
auto kShape = Shape{1, 1, 2};
auto reduce_data = locomotiv::annot_data(reduce_node);
ASSERT_NE(reduce_data, nullptr);
- ASSERT_EQ(reduce_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(reduce_data->shape()), kShape);
- ASSERT_FLOAT_EQ(reduce_data->as_f32_bufptr()->at(Index{0, 0, 0}), 3.3f);
- ASSERT_FLOAT_EQ(reduce_data->as_f32_bufptr()->at(Index{0, 0, 1}), 4.4f);
+ ASSERT_EQ(loco::DataType::FLOAT32, reduce_data->dtype());
+ ASSERT_EQ(kShape, *(reduce_data->shape()));
+ ASSERT_FLOAT_EQ(3.3f, reduce_data->as_f32_bufptr()->at(Index{0, 0, 0}));
+ ASSERT_FLOAT_EQ(4.4f, reduce_data->as_f32_bufptr()->at(Index{0, 0, 1}));
- ASSERT_EQ(locomotiv::annot_domain(reduce_node), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(reduce_node));
}
TEST(NodeExecution_Fixed_Reduce_Mean, f32_1)
@@ -96,9 +96,9 @@ TEST(NodeExecution_Fixed_Reduce_Mean, f32_1)
auto kShape = Shape{1, 1, 1};
auto reduce_data = locomotiv::annot_data(reduce_node);
ASSERT_NE(reduce_data, nullptr);
- ASSERT_EQ(reduce_data->dtype(), loco::DataType::FLOAT32);
- ASSERT_EQ(*(reduce_data->shape()), kShape);
- ASSERT_FLOAT_EQ(reduce_data->as_f32_bufptr()->at(Index{0, 0, 0}), 3.85f);
+ ASSERT_EQ(loco::DataType::FLOAT32, reduce_data->dtype());
+ ASSERT_EQ(kShape, *(reduce_data->shape()));
+ ASSERT_FLOAT_EQ(3.85f, reduce_data->as_f32_bufptr()->at(Index{0, 0, 0}));
- ASSERT_EQ(locomotiv::annot_domain(reduce_node), loco::Domain::Tensor);
+ ASSERT_EQ(loco::Domain::Tensor, locomotiv::annot_domain(reduce_node));
}
diff --git a/compiler/locomotiv/src/Node/TransposedConv2D.test.cpp b/compiler/locomotiv/src/Node/TransposedConv2D.test.cpp
index bd955a06b..ef759f51b 100644
--- a/compiler/locomotiv/src/Node/TransposedConv2D.test.cpp
+++ b/compiler/locomotiv/src/Node/TransposedConv2D.test.cpp
@@ -101,10 +101,10 @@ void run_test(const float *ifm, const float *ker, const float *expected_ofm, con
for (nncc::core::ADT::tensor::IndexEnumerator e{ofm_shape}; e.valid(); e.advance())
{
const auto &ind = e.current();
- ASSERT_FLOAT_EQ(conv2d_result->as_f32_bufptr()->at(ind), ofm_overlay.at(ind));
+ ASSERT_FLOAT_EQ(ofm_overlay.at(ind), conv2d_result->as_f32_bufptr()->at(ind));
}
- ASSERT_EQ(locomotiv::annot_domain(tr_conv2d), loco::Domain::Feature);
+ ASSERT_EQ(loco::Domain::Feature, locomotiv::annot_domain(tr_conv2d));
}
} // namespace