Add OperationValidationTest for ROI_POOLING and ROI_ALIGN.
Bug: 119401916
Bug: 113560033
Test: NeuralNetworksTest_static
Change-Id: If9066fbcd3a5676e7ce785101c2db45daf4b020a
Merged-In: If9066fbcd3a5676e7ce785101c2db45daf4b020a
(cherry picked from commit 24bd00f59fff887e79fd5ef7d89863af19ac50fa)
diff --git a/nn/runtime/test/TestValidateOperations.cpp b/nn/runtime/test/TestValidateOperations.cpp
index 741d001..14c3c76 100644
--- a/nn/runtime/test/TestValidateOperations.cpp
+++ b/nn/runtime/test/TestValidateOperations.cpp
@@ -1383,16 +1383,15 @@
stridedSliceOpTest(ANEURALNETWORKS_TENSOR_QUANT8_ASYMM);
}
-TEST(OperationValidationTest, ROI_ALIGN_float32) {
+void roiAlignOpTest(int32_t operandCode) {
uint32_t inDim[] = {1, 4, 4, 1}, roiDim[] = {4, 4}, outShapeDim[] = {2};
uint32_t outDim[] = {4, 2, 2, 1};
OperationTestBase roiAlignTest(
ANEURALNETWORKS_ROI_ALIGN,
- {getOpType(ANEURALNETWORKS_TENSOR_FLOAT32, 4, inDim),
- getOpType(ANEURALNETWORKS_TENSOR_FLOAT32, 2, roiDim),
+ {getOpType(operandCode, 4, inDim), getOpType(ANEURALNETWORKS_TENSOR_FLOAT32, 2, roiDim),
getOpType(ANEURALNETWORKS_TENSOR_INT32, 1, outShapeDim),
getOpType(ANEURALNETWORKS_FLOAT32), getOpType(ANEURALNETWORKS_INT32)},
- {getOpType(ANEURALNETWORKS_TENSOR_FLOAT32, 4, outDim)});
+ {getOpType(operandCode, 4, outDim)});
EXPECT_TRUE(roiAlignTest.testMutatingInputOperandCode());
EXPECT_TRUE(roiAlignTest.testMutatingInputOperandCounts());
@@ -1400,6 +1399,38 @@
EXPECT_TRUE(roiAlignTest.testMutatingOutputOperandCounts());
}
+TEST(OperationValidationTest, ROI_ALIGN_float32) {
+ roiAlignOpTest(ANEURALNETWORKS_TENSOR_FLOAT32);
+}
+
+TEST(OperationValidationTest, ROI_ALIGN_quant8) {
+ roiAlignOpTest(ANEURALNETWORKS_TENSOR_QUANT8_ASYMM);
+}
+
+void roiPoolingOpTest(int32_t operandCode) {
+ uint32_t inDim[] = {1, 4, 4, 1}, roiDim[] = {4, 4}, outShapeDim[] = {2};
+ uint32_t outDim[] = {4, 2, 2, 1};
+ OperationTestBase roiPoolingTest(
+ ANEURALNETWORKS_ROI_POOLING,
+ {getOpType(operandCode, 4, inDim), getOpType(ANEURALNETWORKS_TENSOR_FLOAT32, 2, roiDim),
+ getOpType(ANEURALNETWORKS_TENSOR_INT32, 1, outShapeDim),
+ getOpType(ANEURALNETWORKS_FLOAT32)},
+ {getOpType(operandCode, 4, outDim)});
+
+ EXPECT_TRUE(roiPoolingTest.testMutatingInputOperandCode());
+ EXPECT_TRUE(roiPoolingTest.testMutatingInputOperandCounts());
+ EXPECT_TRUE(roiPoolingTest.testMutatingOutputOperandCode());
+ EXPECT_TRUE(roiPoolingTest.testMutatingOutputOperandCounts());
+}
+
+TEST(OperationValidationTest, ROI_POOLING_float32) {
+ roiPoolingOpTest(ANEURALNETWORKS_TENSOR_FLOAT32);
+}
+
+TEST(OperationValidationTest, ROI_POOLING_quant8) {
+ roiPoolingOpTest(ANEURALNETWORKS_TENSOR_QUANT8_ASYMM);
+}
+
TEST(OperationValidationTest, HEATMAP_MAX_KEYPOINT_float32) {
uint32_t heatmapDim[] = {6, 4, 4, 1}, boxDim[] = {6, 4}, outDim[] = {6, 3, 1};
OperationTestBase heatmapMaxKeypointTest(