Add gtest to test Logical_OR_Ex op (#3781)
authorShubham Gupta/SNAP /SRI-Bangalore/Engineer/삼성전자 <shub98.gupta@samsung.com>
Mon, 3 Dec 2018 01:44:35 +0000 (07:14 +0530)
committer오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Mon, 3 Dec 2018 01:44:35 +0000 (10:44 +0900)
This patch will add gtest to test Logical_OR op

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/logical_or_ex_1D.example.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/examples/logical_or_ex_4D.example.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/models/logical_or_ex_1D.model.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/models/logical_or_ex_4D.model.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux
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/specs/Ex/logical_or_ex_1D.mod.py [new file with mode: 0644]
runtimes/tests/neural_networks_test/specs/Ex/logical_or_ex_4D.mod.py [new file with mode: 0644]

index be66695..b627d49 100644 (file)
@@ -3389,6 +3389,34 @@ TEST_F(GeneratedTests, logical_and_ex_4D) {
             logical_and_ex_4D::examples);
 }
 
+namespace logical_or_ex_1D {
+std::vector<MixedTypedExample> examples = {
+// Generated logical_or_ex_1D test
+#include "generated/examples/logical_or_ex_1D.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/logical_or_ex_1D.model.cpp"
+} // namespace logical_or_ex_1D
+TEST_F(GeneratedTests, logical_or_ex_1D) {
+    execute(logical_or_ex_1D::CreateModel,
+            logical_or_ex_1D::is_ignored,
+            logical_or_ex_1D::examples);
+}
+
+namespace logical_or_ex_4D {
+std::vector<MixedTypedExample> examples = {
+// Generated logical_or_ex_4D test
+#include "generated/examples/logical_or_ex_4D.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/logical_or_ex_4D.model.cpp"
+} // namespace logical_or_ex_4D
+TEST_F(GeneratedTests, logical_or_ex_4D) {
+    execute(logical_or_ex_4D::CreateModel,
+            logical_or_ex_4D::is_ignored,
+            logical_or_ex_4D::examples);
+}
+
 namespace neg_ex_1D_float {
 std::vector<MixedTypedExample> examples = {
 // Generated neg_ex_1D_float test
diff --git a/runtimes/tests/neural_networks_test/generated/examples/logical_or_ex_1D.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/logical_or_ex_1D.example.cpp
new file mode 100644 (file)
index 0000000..4e3da58
--- /dev/null
@@ -0,0 +1,22 @@
+// Generated file (from: logical_or_ex_1D.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {{0, {0, 0, 255, 255}}, {1, {0, 255, 0, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {{0, {0, 255, 255, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/logical_or_ex_4D.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/logical_or_ex_4D.example.cpp
new file mode 100644 (file)
index 0000000..f4f95df
--- /dev/null
@@ -0,0 +1,22 @@
+// Generated file (from: logical_or_ex_4D.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {{0, {0, 0, 255, 255, 0, 255, 0, 255}}, {1, {0, 255, 0, 255, 0, 0, 255, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {{0, {0, 255, 255, 255, 0, 255, 255, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/models/logical_or_ex_1D.model.cpp b/runtimes/tests/neural_networks_test/generated/models/logical_or_ex_1D.model.cpp
new file mode 100644 (file)
index 0000000..da02abd
--- /dev/null
@@ -0,0 +1,20 @@
+// Generated file (from: logical_or_ex_1D.mod.py). Do not edit
+void CreateModel(Model *model) {
+  OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 1.f, 0);
+  // Phase 1, operands
+  auto op1 = model->addOperand(&type0);
+  auto op2 = model->addOperand(&type0);
+  auto op3 = model->addOperand(&type0);
+  // Phase 2, operations
+  model->addOperationEx(ANEURALNETWORKS_LOGICAL_OR_EX, {op1, op2}, {op3});
+  // Phase 3, inputs and outputs
+  model->identifyInputsAndOutputs(
+    {op1, op2},
+    {op3});
+  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/logical_or_ex_4D.model.cpp b/runtimes/tests/neural_networks_test/generated/models/logical_or_ex_4D.model.cpp
new file mode 100644 (file)
index 0000000..091d402
--- /dev/null
@@ -0,0 +1,20 @@
+// Generated file (from: logical_or_ex_4D.mod.py). Do not edit
+void CreateModel(Model *model) {
+  OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 1, 2, 2}, 1.f, 0);
+  // Phase 1, operands
+  auto op1 = model->addOperand(&type0);
+  auto op2 = model->addOperand(&type0);
+  auto op3 = model->addOperand(&type0);
+  // Phase 2, operations
+  model->addOperationEx(ANEURALNETWORKS_LOGICAL_OR_EX, {op1, op2}, {op3});
+  // Phase 3, inputs and outputs
+  model->identifyInputsAndOutputs(
+    {op1, op2},
+    {op3});
+  assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+  static std::set<int> ignore = {};
+  return ignore.find(i) != ignore.end();
+}
index 681a976..22b72a7 100644 (file)
@@ -40,6 +40,7 @@ ValidationTestExecution.EventWait
 GeneratedTests.add_broadcast_quant8
 GeneratedTests.add_quant8
 GeneratedTests.logical_and_ex*
+GeneratedTests.logical_or_ex*
 GeneratedTests.logistic_quant8_1
 GeneratedTests.logistic_quant8_2
 GeneratedTests.mul_broadcast_quant8
index 7a311f9..4ff21a0 100644 (file)
@@ -65,6 +65,7 @@ GeneratedTests.l2_normalization*
 GeneratedTests.l2_pool*
 GeneratedTests.local_response_norm*
 GeneratedTests.logical_and_ex*
+GeneratedTests.logical_or_ex*
 GeneratedTests.logistic*
 GeneratedTests.lsh_projection*
 GeneratedTests.lstm*
index e336d16..d309e12 100644 (file)
@@ -26,6 +26,7 @@ GeneratedTests.local_response_norm_float_2
 GeneratedTests.local_response_norm_float_3
 GeneratedTests.local_response_norm_float_4
 GeneratedTests.logical_and_ex*
+GeneratedTests.logical_or_ex*
 GeneratedTests.lsh_projection
 GeneratedTests.lsh_projection_2
 GeneratedTests.lsh_projection_weights_as_inputs
diff --git a/runtimes/tests/neural_networks_test/specs/Ex/logical_or_ex_1D.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/logical_or_ex_1D.mod.py
new file mode 100644 (file)
index 0000000..48e6d8e
--- /dev/null
@@ -0,0 +1,19 @@
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_QUANT8_ASYMM", "{4}, 1.f, 0")
+i2 = Input("op2", "TENSOR_QUANT8_ASYMM", "{4}, 1.f, 0")
+
+i3 = Output("op3", "TENSOR_QUANT8_ASYMM", "{4}, 1.f, 0")
+model = model.Operation("LOGICAL_OR_EX", i1, i2).To(i3)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [0, 0, 255, 255],
+          i2: # input 255
+          [0, 255, 0, 255]}
+
+output0 = {i3: # output 0
+          [0, 255, 255, 255]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtimes/tests/neural_networks_test/specs/Ex/logical_or_ex_4D.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/logical_or_ex_4D.mod.py
new file mode 100644 (file)
index 0000000..f6833c9
--- /dev/null
@@ -0,0 +1,19 @@
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_QUANT8_ASYMM", "{2, 1, 2, 2}, 1.f, 0")
+i2 = Input("op2", "TENSOR_QUANT8_ASYMM", "{2, 1, 2, 2}, 1.f, 0")
+
+i3 = Output("op3", "TENSOR_QUANT8_ASYMM", "{2, 1, 2, 2}, 1.f, 0")
+model = model.Operation("LOGICAL_OR_EX", i1, i2).To(i3)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [0, 0, 255, 255, 0, 255, 0, 255],
+          i2: # input 1
+          [0, 255, 0, 255, 0, 0, 255, 255]}
+
+output0 = {i3: # output 0
+          [0, 255, 255, 255, 0, 255, 255, 255]}
+
+# Instantiate an example
+Example((input0, output0))