Add gtest to test Neg op for 3D and 4D Tensors (#3796)
authorShubham Gupta/SNAP /SRI-Bangalore/Engineer/삼성전자 <shub98.gupta@samsung.com>
Tue, 4 Dec 2018 01:01:11 +0000 (06:31 +0530)
committer오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Tue, 4 Dec 2018 01:01:11 +0000 (10:01 +0900)
This patch will add gtest to test Neg op for 3D/4D tensors.

Signed-off-by: shubham <shub98.gupta@samsung.com>
runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp
runtimes/tests/neural_networks_test/generated/examples/neg_ex_3D_float.example.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/examples/neg_ex_4D_float.example.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/models/neg_ex_3D_float.model.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/models/neg_ex_4D_float.model.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun
runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen
runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux
runtimes/tests/neural_networks_test/specs/Ex/neg_ex_3D_float.mod.py [new file with mode: 0644]
runtimes/tests/neural_networks_test/specs/Ex/neg_ex_4D_float.mod.py [new file with mode: 0644]

index 7e9afa9..8a94e80 100644 (file)
@@ -3459,6 +3459,34 @@ TEST_F(GeneratedTests, neg_ex_2D_float) {
             neg_ex_2D_float::examples);
 }
 
+namespace neg_ex_3D_float {
+std::vector<MixedTypedExample> examples = {
+// Generated neg_ex_3D_float test
+#include "generated/examples/neg_ex_3D_float.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/neg_ex_3D_float.model.cpp"
+} // namespace neg_ex_3D_float
+TEST_F(GeneratedTests, neg_ex_3D_float) {
+    execute(neg_ex_3D_float::CreateModel,
+            neg_ex_3D_float::is_ignored,
+            neg_ex_3D_float::examples);
+}
+
+namespace neg_ex_4D_float {
+std::vector<MixedTypedExample> examples = {
+// Generated neg_ex_4D_float test
+#include "generated/examples/neg_ex_4D_float.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/neg_ex_4D_float.model.cpp"
+} // namespace neg_ex_4D_float
+TEST_F(GeneratedTests, neg_ex_4D_float) {
+    execute(neg_ex_4D_float::CreateModel,
+            neg_ex_4D_float::is_ignored,
+            neg_ex_4D_float::examples);
+}
+
 namespace notequal_ex_float {
 std::vector<MixedTypedExample> examples = {
 // Generated notequal_ex_float test
diff --git a/runtimes/tests/neural_networks_test/generated/examples/neg_ex_3D_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/neg_ex_3D_float.example.cpp
new file mode 100644 (file)
index 0000000..411d1af
--- /dev/null
@@ -0,0 +1,22 @@
+// Generated file (from: neg_ex_3D_float.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {{0, {3.123456789123457f, 4.123456789123456f, 5.123456789123456f, 6.123456789123456f, 7.123456789123456f, 8.123456789123457f, 9.123456789123457f, 1.1234567891234568f, 2.123456789123457f, 18.123456789123455f, 19.123456789123455f, 11.123456789123457f, 40.12345678912346f, 42.12345678912346f, 4.123456789123456f, 12.123456789123457f, 22.123456789123455f, 32.12345678912346f, 62.12345678912346f, 52.12345678912346f, 92.12345678912345f, 59.12345678912346f, 69.12345678912345f, 312.12345678912345f}}},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {{0, {-3.123456789123457f, -4.123456789123456f, -5.123456789123456f, -6.123456789123456f, -7.123456789123456f, -8.123456789123457f, -9.123456789123457f, -1.1234567891234568f, -2.123456789123457f, -18.123456789123455f, -19.123456789123455f, -11.123456789123457f, -40.12345678912346f, -42.12345678912346f, -4.123456789123456f, -12.123456789123457f, -22.123456789123455f, -32.12345678912346f, -62.12345678912346f, -52.12345678912346f, -92.12345678912345f, -59.12345678912346f, -69.12345678912345f, -312.12345678912345f}}},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/neg_ex_4D_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/neg_ex_4D_float.example.cpp
new file mode 100644 (file)
index 0000000..fcdf729
--- /dev/null
@@ -0,0 +1,22 @@
+// Generated file (from: neg_ex_4D_float.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {{0, {3.123456789123457f, 4.123456789123456f, 5.123456789123456f, 6.123456789123456f, 7.123456789123456f, 8.123456789123457f, 9.123456789123457f, 1.1234567891234568f, 2.123456789123457f, 18.123456789123455f, 19.123456789123455f, 11.123456789123457f, 40.12345678912346f, 42.12345678912346f, 4.123456789123456f, 12.123456789123457f, 22.123456789123455f, 32.12345678912346f, 62.12345678912346f, 52.12345678912346f, 92.12345678912345f, 59.12345678912346f, 69.12345678912345f, 312.12345678912345f}}},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {{0, {-3.123456789123457f, -4.123456789123456f, -5.123456789123456f, -6.123456789123456f, -7.123456789123456f, -8.123456789123457f, -9.123456789123457f, -1.1234567891234568f, -2.123456789123457f, -18.123456789123455f, -19.123456789123455f, -11.123456789123457f, -40.12345678912346f, -42.12345678912346f, -4.123456789123456f, -12.123456789123457f, -22.123456789123455f, -32.12345678912346f, -62.12345678912346f, -52.12345678912346f, -92.12345678912345f, -59.12345678912346f, -69.12345678912345f, -312.12345678912345f}}},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/models/neg_ex_3D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/neg_ex_3D_float.model.cpp
new file mode 100644 (file)
index 0000000..99d80c0
--- /dev/null
@@ -0,0 +1,19 @@
+// Generated file (from: neg_ex_3D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+  OperandType type0(Type::TENSOR_FLOAT32, {2,3,4});
+  // Phase 1, operands
+  auto op1 = model->addOperand(&type0);
+  auto op2 = model->addOperand(&type0);
+  // Phase 2, operations
+  model->addOperationEx(ANEURALNETWORKS_NEG_EX, {op1}, {op2});
+  // Phase 3, inputs and outputs
+  model->identifyInputsAndOutputs(
+    {op1},
+    {op2});
+  assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+  static std::set<int> ignore = {};
+  return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/neg_ex_4D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/neg_ex_4D_float.model.cpp
new file mode 100644 (file)
index 0000000..56e885d
--- /dev/null
@@ -0,0 +1,19 @@
+// Generated file (from: neg_ex_4D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+  OperandType type0(Type::TENSOR_FLOAT32, {2,3,2,2});
+  // Phase 1, operands
+  auto op1 = model->addOperand(&type0);
+  auto op2 = model->addOperand(&type0);
+  // Phase 2, operations
+  model->addOperationEx(ANEURALNETWORKS_NEG_EX, {op1}, {op2});
+  // Phase 3, inputs and outputs
+  model->identifyInputsAndOutputs(
+    {op1},
+    {op2});
+  assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+  static std::set<int> ignore = {};
+  return ignore.find(i) != ignore.end();
+}
index bf60118..534de1f 100644 (file)
@@ -77,8 +77,7 @@ GeneratedTests.max_pool_quant8_2
 GeneratedTests.max_pool_quant8_3
 GeneratedTests.mobilenet*
 GeneratedTests.mul*
-GeneratedTests.neg_ex_1D_float
-GeneratedTests.neg_ex_2D_float
+GeneratedTests.neg*
 GeneratedTests.notequal*
 GeneratedTests.reduce_min*
 GeneratedTests.relu1*
index d309e12..4596409 100644 (file)
@@ -47,8 +47,7 @@ GeneratedTests.mean_float_2
 GeneratedTests.mean_quant8_1
 GeneratedTests.mean_quant8_2
 GeneratedTests.mobilenet_quantized
-GeneratedTests.neg_ex_1D_float
-GeneratedTests.neg_ex_2D_float
+GeneratedTests.neg*
 GeneratedTests.notequal*
 GeneratedTests.pad
 GeneratedTests.pad_float_1
index 090c1cc..dd18702 100644 (file)
@@ -38,8 +38,7 @@ GeneratedTests.lstm3_state
 GeneratedTests.lstm
 GeneratedTests.lstm_state2
 GeneratedTests.lstm_state
-GeneratedTests.neg_ex_1D_float
-GeneratedTests.neg_ex_2D_float
+GeneratedTests.neg*
 GeneratedTests.notequal*
 GeneratedTests.reduce_min_ex*
 GeneratedTests.relu1_float_1
diff --git a/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_3D_float.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_3D_float.mod.py
new file mode 100644 (file)
index 0000000..1f57c49
--- /dev/null
@@ -0,0 +1,25 @@
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{2,3,4}")
+i2 = Output("op2", "TENSOR_FLOAT32", "{2,3,4}")
+model = model.Operation("NEG_EX", i1).To(i2)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [3.123456789123456789, 4.123456789123456789, 5.123456789123456789, 6.123456789123456789,
+          7.123456789123456789, 8.123456789123456789, 9.123456789123456789, 1.123456789123456789,
+          2.123456789123456789, 18.123456789123456789, 19.123456789123456789, 11.123456789123456789,
+         40.123456789123456789, 42.123456789123456789, 4.123456789123456789, 12.123456789123456789,
+         22.123456789123456789, 32.123456789123456789, 62.123456789123456789, 52.123456789123456789,
+         92.123456789123456789, 59.123456789123456789, 69.123456789123456789, 312.123456789123456789]}
+
+output0 = {i2: # output 0
+          [-3.123456789123456789, -4.123456789123456789, -5.123456789123456789, -6.123456789123456789,
+          -7.123456789123456789, -8.123456789123456789, -9.123456789123456789, -1.123456789123456789,
+          -2.123456789123456789, -18.123456789123456789, -19.123456789123456789, -11.123456789123456789,
+          -40.123456789123456789, -42.123456789123456789, -4.123456789123456789, -12.123456789123456789,
+         -22.123456789123456789, -32.123456789123456789, -62.123456789123456789, -52.123456789123456789,
+         -92.123456789123456789, -59.123456789123456789, -69.123456789123456789, -312.123456789123456789]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_4D_float.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/neg_ex_4D_float.mod.py
new file mode 100644 (file)
index 0000000..4d1b10d
--- /dev/null
@@ -0,0 +1,25 @@
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{2,3,2,2}")
+i2 = Output("op2", "TENSOR_FLOAT32", "{2,3,2,2}")
+model = model.Operation("NEG_EX", i1).To(i2)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [3.123456789123456789, 4.123456789123456789, 5.123456789123456789, 6.123456789123456789,
+          7.123456789123456789, 8.123456789123456789, 9.123456789123456789, 1.123456789123456789,
+          2.123456789123456789, 18.123456789123456789, 19.123456789123456789, 11.123456789123456789,
+         40.123456789123456789, 42.123456789123456789, 4.123456789123456789, 12.123456789123456789,
+         22.123456789123456789, 32.123456789123456789, 62.123456789123456789, 52.123456789123456789,
+         92.123456789123456789, 59.123456789123456789, 69.123456789123456789, 312.123456789123456789]}
+
+output0 = {i2: # output 0
+          [-3.123456789123456789, -4.123456789123456789, -5.123456789123456789, -6.123456789123456789,
+          -7.123456789123456789, -8.123456789123456789, -9.123456789123456789, -1.123456789123456789,
+          -2.123456789123456789, -18.123456789123456789, -19.123456789123456789, -11.123456789123456789,
+          -40.123456789123456789, -42.123456789123456789, -4.123456789123456789, -12.123456789123456789,
+         -22.123456789123456789, -32.123456789123456789, -62.123456789123456789, -52.123456789123456789,
+         -92.123456789123456789, -59.123456789123456789, -69.123456789123456789, -312.123456789123456789]}
+
+# Instantiate an example
+Example((input0, output0))