aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/reference/Logical.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/validation/reference/Logical.cpp')
-rw-r--r--tests/validation/reference/Logical.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/tests/validation/reference/Logical.cpp b/tests/validation/reference/Logical.cpp
index 394525c392..9989ec841e 100644
--- a/tests/validation/reference/Logical.cpp
+++ b/tests/validation/reference/Logical.cpp
@@ -22,6 +22,8 @@
* SOFTWARE.
*/
#include "tests/validation/reference/Logical.h"
+#include "src/core/KernelTypes.h"
+#include "tests/framework/Asserts.h"
namespace arm_compute
{
@@ -32,27 +34,30 @@ namespace validation
namespace reference
{
template <typename T>
-T logical_op(LogicalBinaryOperation op, T src1, T src2)
+T logical_binary_op(arm_compute::kernels::LogicalOperation op, T src1, T src2)
{
switch(op)
{
- case LogicalBinaryOperation::AND:
+ case arm_compute::kernels::LogicalOperation::And:
return src1 && src2;
- case LogicalBinaryOperation::OR:
+ case arm_compute::kernels::LogicalOperation::Or:
return src1 || src2;
- case LogicalBinaryOperation::UNKNOWN:
+ // The following operators are either invalid or not binary operator
+ case arm_compute::kernels::LogicalOperation::Not:
+ /* fall through */
+ case arm_compute::kernels::LogicalOperation::Unknown:
+ /* fall through */
default:
- ARM_COMPUTE_ERROR_ON_MSG(true, "unknown logical binary operation is given");
+ ARM_COMPUTE_ASSERT(true);
}
- return false;
+ return T{};
}
template <size_t dim>
struct BroadcastUnroll
{
template <typename T>
- static void unroll(LogicalBinaryOperation op,
- const SimpleTensor<T> &src1, const SimpleTensor<T> &src2, SimpleTensor<T> &dst,
+ static void unroll(arm_compute::kernels::LogicalOperation op, const SimpleTensor<T> &src1, const SimpleTensor<T> &src2, SimpleTensor<T> &dst,
Coordinates &id_src1, Coordinates &id_src2, Coordinates &id_dst)
{
const bool src1_is_broadcast = (src1.shape()[dim - 1] != dst.shape()[dim - 1]);
@@ -79,10 +84,10 @@ template <>
struct BroadcastUnroll<0>
{
template <typename T>
- static void unroll(LogicalBinaryOperation op, const SimpleTensor<T> &src1, const SimpleTensor<T> &src2, SimpleTensor<T> &dst,
+ static void unroll(arm_compute::kernels::LogicalOperation op, const SimpleTensor<T> &src1, const SimpleTensor<T> &src2, SimpleTensor<T> &dst,
Coordinates &id_src1, Coordinates &id_src2, Coordinates &id_dst)
{
- dst[coord2index(dst.shape(), id_dst)] = logical_op(op, src1[coord2index(src1.shape(), id_src1)], src2[coord2index(src2.shape(), id_src2)]);
+ dst[coord2index(dst.shape(), id_dst)] = logical_binary_op(op, src1[coord2index(src1.shape(), id_src1)], src2[coord2index(src2.shape(), id_src2)]);
}
};
@@ -94,7 +99,7 @@ SimpleTensor<T> logical_or(const SimpleTensor<T> &src1, const SimpleTensor<T> &s
Coordinates id_dst{};
SimpleTensor<T> dst{ TensorShape::broadcast_shape(src1.shape(), src2.shape()), src1.data_type() };
- BroadcastUnroll<Coordinates::num_max_dimensions>::unroll(LogicalBinaryOperation::OR, src1, src2, dst, id_src1, id_src2, id_dst);
+ BroadcastUnroll<Coordinates::num_max_dimensions>::unroll(arm_compute::kernels::LogicalOperation::Or, src1, src2, dst, id_src1, id_src2, id_dst);
return dst;
}
@@ -107,7 +112,7 @@ SimpleTensor<T> logical_and(const SimpleTensor<T> &src1, const SimpleTensor<T> &
Coordinates id_dst{};
SimpleTensor<T> dst{ TensorShape::broadcast_shape(src1.shape(), src2.shape()), src1.data_type() };
- BroadcastUnroll<Coordinates::num_max_dimensions>::unroll(LogicalBinaryOperation::AND, src1, src2, dst, id_src1, id_src2, id_dst);
+ BroadcastUnroll<Coordinates::num_max_dimensions>::unroll(arm_compute::kernels::LogicalOperation::And, src1, src2, dst, id_src1, id_src2, id_dst);
return dst;
}
@@ -133,4 +138,4 @@ template SimpleTensor<uint8_t> logical_not(const SimpleTensor<uint8_t> &src1);
} // namespace reference
} // namespace validation
} // namespace test
-} // namespace arm_compute \ No newline at end of file
+} // namespace arm_compute