Add GTests for SQRT op (#3608)
authorPrasanna R/System SW /SRI-Bangalore/Engineer/삼성전자 <prasanna.r@samsung.com>
Tue, 20 Nov 2018 04:17:12 +0000 (09:47 +0530)
committer오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Tue, 20 Nov 2018 04:17:12 +0000 (13:17 +0900)
This patch addds GTests for SQRT op.
Added files:
```
sqrt_ex_1D_float
sqrt_ex_4D_float
```

Signed-off-by: prasannar <prasanna.r@samsung.com>
runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp
runtimes/tests/neural_networks_test/generated/examples/sqrt_ex_1D_float.example.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/examples/sqrt_ex_4D_float.example.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/models/sqrt_ex_1D_float.model.cpp [new file with mode: 0644]
runtimes/tests/neural_networks_test/generated/models/sqrt_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/sqrt_ex_1D_float.mod.py [new file with mode: 0644]
runtimes/tests/neural_networks_test/specs/Ex/sqrt_ex_4D_float.mod.py [new file with mode: 0644]

index fd49bc4..19945ab 100644 (file)
@@ -3361,6 +3361,34 @@ TEST_F(GeneratedTests, pack_ex_3D_float) {
             pack_ex_3D_float::examples);
 }
 
+namespace sqrt_ex_1D_float {
+std::vector<MixedTypedExample> examples = {
+// Generated sqrt_ex_1D_float test
+#include "generated/examples/sqrt_ex_1D_float.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/sqrt_ex_1D_float.model.cpp"
+} // namespace sqrt_ex_1D_float
+TEST_F(GeneratedTests, sqrt_ex_1D_float) {
+    execute(sqrt_ex_1D_float::CreateModel,
+            sqrt_ex_1D_float::is_ignored,
+            sqrt_ex_1D_float::examples);
+}
+
+namespace sqrt_ex_4D_float {
+std::vector<MixedTypedExample> examples = {
+// Generated sqrt_ex_4D_float test
+#include "generated/examples/sqrt_ex_4D_float.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/sqrt_ex_4D_float.model.cpp"
+} // namespace sqrt_ex_4D_float
+TEST_F(GeneratedTests, sqrt_ex_4D_float) {
+    execute(sqrt_ex_4D_float::CreateModel,
+            sqrt_ex_4D_float::is_ignored,
+            sqrt_ex_4D_float::examples);
+}
+
 namespace squared_difference_ex_1D_float {
 std::vector<MixedTypedExample> examples = {
 // Generated squared_difference_ex_1D_float test
diff --git a/runtimes/tests/neural_networks_test/generated/examples/sqrt_ex_1D_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/sqrt_ex_1D_float.example.cpp
new file mode 100644 (file)
index 0000000..5fa8532
--- /dev/null
@@ -0,0 +1,22 @@
+// Generated file (from: sqrt_ex_1D_float.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {{0, {62, 5, 73, 34}}},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {{0, {7.87400787f, 2.23606798f, 8.54400375f, 5.83095189f}}},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/sqrt_ex_4D_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/sqrt_ex_4D_float.example.cpp
new file mode 100644 (file)
index 0000000..bca608f
--- /dev/null
@@ -0,0 +1,22 @@
+// Generated file (from: sqrt_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, {36, 90, 43, 36, 2, 22, 19, 10, 9, 80, 40, 90, 15, 56, 18, 12}}},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+  // int -> FLOAT32 map
+  {{0, {6.0f, 9.48683298f, 6.55743852f, 6.0f, 1.41421356f, 4.69041576f, 4.35889894f, 3.16227766f, 3.0f, 8.94427191f, 6.32455532f, 9.48683298f, 3.87298335f, 7.48331477f, 4.24264069f, 3.46410162f}}},
+  // int -> INT32 map
+  {},
+  // int -> QUANT8_ASYMM map
+  {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/models/sqrt_ex_1D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/sqrt_ex_1D_float.model.cpp
new file mode 100644 (file)
index 0000000..10912ec
--- /dev/null
@@ -0,0 +1,19 @@
+// Generated file (from: sqrt_ex_1D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+  OperandType type0(Type::TENSOR_FLOAT32, {4});
+  // Phase 1, operands
+  auto op1 = model->addOperand(&type0);
+  auto op2 = model->addOperand(&type0);
+  // Phase 2, operations
+  model->addOperationEx(ANEURALNETWORKS_SQRT_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/sqrt_ex_4D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/sqrt_ex_4D_float.model.cpp
new file mode 100644 (file)
index 0000000..0b41ae7
--- /dev/null
@@ -0,0 +1,19 @@
+// Generated file (from: sqrt_ex_4D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+  OperandType type0(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
+  // Phase 1, operands
+  auto op1 = model->addOperand(&type0);
+  auto op2 = model->addOperand(&type0);
+  // Phase 2, operations
+  model->addOperationEx(ANEURALNETWORKS_SQRT_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 530cd08..3e8bcbc 100644 (file)
@@ -86,6 +86,7 @@ GeneratedTests.rnn*
 GeneratedTests.mean*
 GeneratedTests.pad*
 GeneratedTests.space_to_depth*
+GeneratedTests.sqrt_ex*
 GeneratedTests.squared_difference_ex*
 GeneratedTests.svdf*
 GeneratedTests.tanh_
index efe1b7c..8e6dc74 100644 (file)
@@ -62,6 +62,7 @@ GeneratedTests.space_to_depth_float_2
 GeneratedTests.space_to_depth_float_3
 GeneratedTests.space_to_depth_quant8_1
 GeneratedTests.space_to_depth_quant8_2
+GeneratedTests.sqrt_ex*
 GeneratedTests.squared_difference_ex*
 GeneratedTests.svdf
 GeneratedTests.svdf2
index 1cabb41..b2a3c1b 100644 (file)
@@ -51,6 +51,7 @@ GeneratedTests.space_to_depth_float_2
 GeneratedTests.space_to_depth_float_3
 GeneratedTests.space_to_depth_quant8_1
 GeneratedTests.space_to_depth_quant8_2
+GeneratedTests.sqrt_ex*
 GeneratedTests.squared_difference_ex*
 GeneratedTests.svdf2
 GeneratedTests.svdf
diff --git a/runtimes/tests/neural_networks_test/specs/Ex/sqrt_ex_1D_float.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/sqrt_ex_1D_float.mod.py
new file mode 100644 (file)
index 0000000..8634552
--- /dev/null
@@ -0,0 +1,15 @@
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{4}") # a vector of input
+i2 = Output("op2", "TENSOR_FLOAT32", "{4}") # a vector of output
+model = model.Operation("SQRT_EX", i1).To(i2)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+          [62,  5, 73, 34]}
+
+output0 = {i2: # output 0
+           [7.87400787, 2.23606798, 8.54400375, 5.83095189]}
+
+# Instantiate an example
+Example((input0, output0))
diff --git a/runtimes/tests/neural_networks_test/specs/Ex/sqrt_ex_4D_float.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/sqrt_ex_4D_float.mod.py
new file mode 100644 (file)
index 0000000..55561ba
--- /dev/null
@@ -0,0 +1,14 @@
+# model
+model = Model()
+i1 = Input("op1", "TENSOR_FLOAT32", "{2, 2, 2, 2}")
+i2 = Output("op2", "TENSOR_FLOAT32", "{2, 2, 2, 2}")
+model = model.Operation("SQRT_EX", i1).To(i2)
+
+# Example 1. Input in operand 0,
+input0 = {i1: # input 0
+           [36, 90, 43, 36, 2, 22, 19, 10, 9, 80, 40, 90, 15, 56, 18, 12]}
+output0 = {i2: # output 0
+           [6.0, 9.48683298, 6.55743852, 6.0, 1.41421356, 4.69041576, 4.35889894, 3.16227766,
+            3.0, 8.94427191, 6.32455532, 9.48683298, 3.87298335, 7.48331477, 4.24264069, 3.46410162]}
+# Instantiate an example
+Example((input0, output0))