From 423adea7ce98b9475f8671067a76f86916ac6be7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Prasanna=20R/System=20SW=20/SRI-Bangalore/Engineer/?= =?utf8?q?=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Tue, 23 Oct 2018 15:05:16 +0530 Subject: [PATCH] Add GTests for Equal_Ex (#3030) equal_ex_1D_float.mod.py for 1D Tensor Inputs. equal_ex_4D_float.mod.py for 4D Tensor Inputs. equal_ex_quant.mod.py for QUANT8 Inputs. Signed-off-by: prasannar --- .../generated/all_generated_tests.cpp | 42 ++++++++++++++++++++++ .../examples/equal_ex_1D_float.example.cpp | 22 ++++++++++++ .../examples/equal_ex_4D_float.example.cpp | 22 ++++++++++++ .../generated/examples/equal_ex_quant8.example.cpp | 22 ++++++++++++ .../generated/models/equal_ex_1D_float.model.cpp | 21 +++++++++++ .../generated/models/equal_ex_4D_float.model.cpp | 21 +++++++++++ .../generated/models/equal_ex_quant8.model.cpp | 20 +++++++++++ ...me_run_android_nn_test.skip.armv7l-linux.neurun | 1 + .../runtime_run_android_nn_test.skip.armv7l-tizen | 1 + .../runtime_run_android_nn_test.skip.x86_64-linux | 1 + .../specs/Ex/equal_ex_1D_float.mod.py | 18 ++++++++++ .../specs/Ex/equal_ex_4D_float.mod.py | 18 ++++++++++ .../specs/Ex/equal_ex_quant8.mod.py | 18 ++++++++++ 13 files changed, 227 insertions(+) create mode 100644 runtimes/tests/neural_networks_test/generated/examples/equal_ex_1D_float.example.cpp create mode 100644 runtimes/tests/neural_networks_test/generated/examples/equal_ex_4D_float.example.cpp create mode 100644 runtimes/tests/neural_networks_test/generated/examples/equal_ex_quant8.example.cpp create mode 100644 runtimes/tests/neural_networks_test/generated/models/equal_ex_1D_float.model.cpp create mode 100644 runtimes/tests/neural_networks_test/generated/models/equal_ex_4D_float.model.cpp create mode 100644 runtimes/tests/neural_networks_test/generated/models/equal_ex_quant8.model.cpp create mode 100644 runtimes/tests/neural_networks_test/specs/Ex/equal_ex_1D_float.mod.py create mode 100644 runtimes/tests/neural_networks_test/specs/Ex/equal_ex_4D_float.mod.py create mode 100644 runtimes/tests/neural_networks_test/specs/Ex/equal_ex_quant8.mod.py diff --git a/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp b/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp index 2a1399a..b20274d 100644 --- a/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp +++ b/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp @@ -2955,6 +2955,48 @@ TEST_F(GeneratedTests, cast_ex_int32_to_float32) { cast_ex_int32_to_float32::examples); } +namespace equal_ex_1D_float { +std::vector examples = { +// Generated equal_ex_1D_float test +#include "generated/examples/equal_ex_1D_float.example.cpp" +}; +// Generated model constructor +#include "generated/models/equal_ex_1D_float.model.cpp" +} // namespace equal_ex_1D_float +TEST_F(GeneratedTests, equal_ex_1D_float) { + execute(equal_ex_1D_float::CreateModel, + equal_ex_1D_float::is_ignored, + equal_ex_1D_float::examples); +} + +namespace equal_ex_4D_float { +std::vector examples = { +// Generated equal_ex_4D_float test +#include "generated/examples/equal_ex_4D_float.example.cpp" +}; +// Generated model constructor +#include "generated/models/equal_ex_4D_float.model.cpp" +} // namespace equal_ex_4D_float +TEST_F(GeneratedTests, equal_ex_4D_float) { + execute(equal_ex_4D_float::CreateModel, + equal_ex_4D_float::is_ignored, + equal_ex_4D_float::examples); +} + +namespace equal_ex_quant8 { +std::vector examples = { +// Generated equal_ex_quant8 test +#include "generated/examples/equal_ex_quant8.example.cpp" +}; +// Generated model constructor +#include "generated/models/equal_ex_quant8.model.cpp" +} // namespace equal_ex_quant8 +TEST_F(GeneratedTests, equal_ex_quant8) { + execute(equal_ex_quant8::CreateModel, + equal_ex_quant8::is_ignored, + equal_ex_quant8::examples); +} + namespace exp_ex_1D_float { std::vector examples = { // Generated exp_ex_1D_float test diff --git a/runtimes/tests/neural_networks_test/generated/examples/equal_ex_1D_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/equal_ex_1D_float.example.cpp new file mode 100644 index 0000000..2b28026 --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/examples/equal_ex_1D_float.example.cpp @@ -0,0 +1,22 @@ +// Generated file (from: equal_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, {2.0f, 3.254232f, 5.1232f}}, {1, {2.0f, 3.254111f, 5.1232f}}}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {} +}, +//Output(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {{0, {1, 0, 1}}} +} +}, // End of an example diff --git a/runtimes/tests/neural_networks_test/generated/examples/equal_ex_4D_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/equal_ex_4D_float.example.cpp new file mode 100644 index 0000000..7efbf16 --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/examples/equal_ex_4D_float.example.cpp @@ -0,0 +1,22 @@ +// Generated file (from: equal_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, {0, 1543.25454532f, 5.1232f, 10.1f}}, {1, {0, 5313.25414521f, 5.1f, 10.1f}}}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {} +}, +//Output(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {{0, {1, 0, 0, 1}}} +} +}, // End of an example diff --git a/runtimes/tests/neural_networks_test/generated/examples/equal_ex_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/equal_ex_quant8.example.cpp new file mode 100644 index 0000000..da1de59 --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/examples/equal_ex_quant8.example.cpp @@ -0,0 +1,22 @@ +// Generated file (from: equal_ex_quant8.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, {2, 3, 0}}, {1, {2, 9, 0}}} +}, +//Output(s) +{ // See tools/test_generator/include/TestHarness.h:MixedTyped + // int -> FLOAT32 map + {}, + // int -> INT32 map + {}, + // int -> QUANT8_ASYMM map + {{0, {1, 0, 1}}} +} +}, // End of an example diff --git a/runtimes/tests/neural_networks_test/generated/models/equal_ex_1D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/equal_ex_1D_float.model.cpp new file mode 100644 index 0000000..b47a53e --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/models/equal_ex_1D_float.model.cpp @@ -0,0 +1,21 @@ +// Generated file (from: equal_ex_1D_float.mod.py). Do not edit +void CreateModel(Model *model) { + OperandType type0(Type::TENSOR_FLOAT32, {3}); + OperandType type1(Type::TENSOR_QUANT8_ASYMM, {3}, 1.f, 0); + // Phase 1, operands + auto op1 = model->addOperand(&type0); + auto op2 = model->addOperand(&type0); + auto op3 = model->addOperand(&type1); + // Phase 2, operations + model->addOperationEx(ANEURALNETWORKS_EQUAL_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 ignore = {}; + return ignore.find(i) != ignore.end(); +} diff --git a/runtimes/tests/neural_networks_test/generated/models/equal_ex_4D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/equal_ex_4D_float.model.cpp new file mode 100644 index 0000000..b81e404 --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/models/equal_ex_4D_float.model.cpp @@ -0,0 +1,21 @@ +// Generated file (from: equal_ex_4D_float.mod.py). Do not edit +void CreateModel(Model *model) { + OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1}); + OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 1.f, 0); + // Phase 1, operands + auto op1 = model->addOperand(&type0); + auto op2 = model->addOperand(&type0); + auto op3 = model->addOperand(&type1); + // Phase 2, operations + model->addOperationEx(ANEURALNETWORKS_EQUAL_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 ignore = {}; + return ignore.find(i) != ignore.end(); +} diff --git a/runtimes/tests/neural_networks_test/generated/models/equal_ex_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/equal_ex_quant8.model.cpp new file mode 100644 index 0000000..a2fc003 --- /dev/null +++ b/runtimes/tests/neural_networks_test/generated/models/equal_ex_quant8.model.cpp @@ -0,0 +1,20 @@ +// Generated file (from: equal_ex_quant8.mod.py). Do not edit +void CreateModel(Model *model) { + OperandType type0(Type::TENSOR_QUANT8_ASYMM, {3}, 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_EQUAL_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 ignore = {}; + return ignore.find(i) != ignore.end(); +} diff --git a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun index fa67c90..1b14b13 100644 --- a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun +++ b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-linux.neurun @@ -55,6 +55,7 @@ GeneratedTests.dequantize GeneratedTests.embedding_lookup GeneratedTests.embedding_lookup_2d_nnfw GeneratedTests.embedding_lookup_4d_nnfw +GeneratedTests.equal_ex* GeneratedTests.exp_ex_1D_float GeneratedTests.exp_ex_2D_float GeneratedTests.floor_ diff --git a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen index a6a626c..eb59083 100644 --- a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen +++ b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.armv7l-tizen @@ -10,6 +10,7 @@ GeneratedTests.depth_to_space_float_2 GeneratedTests.depth_to_space_float_3 GeneratedTests.depth_to_space_quant8_1 GeneratedTests.depth_to_space_quant8_2 +GeneratedTests.equal_ex* GeneratedTests.exp_ex_1D_float GeneratedTests.exp_ex_2D_float GeneratedTests.hashtable_lookup_float diff --git a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux index 352d9d3..8771150 100644 --- a/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux +++ b/runtimes/tests/neural_networks_test/runtime_run_android_nn_test.skip.x86_64-linux @@ -12,6 +12,7 @@ GeneratedTests.depth_to_space_quant8_2 GeneratedTests.dequantize GeneratedTests.embedding_lookup GeneratedTests.exp_ex_1D_float +GeneratedTests.equal_ex* GeneratedTests.exp_ex_2D_float GeneratedTests.floor_ GeneratedTests.hashtable_lookup_float diff --git a/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_1D_float.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_1D_float.mod.py new file mode 100644 index 0000000..a26dee0 --- /dev/null +++ b/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_1D_float.mod.py @@ -0,0 +1,18 @@ +# model +model = Model() +i1 = Input("op1", "TENSOR_FLOAT32", "{3}") # a vector of input +i2 = Input("op2", "TENSOR_FLOAT32", "{3}") # a vector of input +i3 = Output("op3", "TENSOR_QUANT8_ASYMM", "{3}, 1.f, 0") # a vector of output +model = model.Operation("EQUAL_EX", i1, i2).To(i3) + +# Example 1. Input in operand 0, +input0 = {i1: # input 0 + [2.0, 3.254232, 5.1232], + i2: # input 1 + [2.0, 3.254111, 5.1232]} + +output0 = {i3: # output 0 + [1, 0, 1]} + +# Instantiate an example +Example((input0, output0)) diff --git a/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_4D_float.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_4D_float.mod.py new file mode 100644 index 0000000..9c513fa --- /dev/null +++ b/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_4D_float.mod.py @@ -0,0 +1,18 @@ +# model +model = Model() +i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 1}") # a vector of input +i2 = Input("op2", "TENSOR_FLOAT32", "{1, 2, 2, 1}") # a vector of input +i3 = Output("op3", "TENSOR_QUANT8_ASYMM", "{1, 2, 2, 1}, 1.f, 0") # a vector of output +model = model.Operation("EQUAL_EX", i1, i2).To(i3) + +# Example 1. Input in operand 0, +input0 = {i1: # input 0 + [0, 1543.25454532, 5.1232, 10.1], + i2: # input 1 + [0, 5313.25414521, 5.1, 10.1]} + +output0 = {i3: # output 0 + [1, 0, 0, 1]} + +# Instantiate an example +Example((input0, output0)) diff --git a/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_quant8.mod.py b/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_quant8.mod.py new file mode 100644 index 0000000..6deefed --- /dev/null +++ b/runtimes/tests/neural_networks_test/specs/Ex/equal_ex_quant8.mod.py @@ -0,0 +1,18 @@ +# model +model = Model() +i1 = Input("op1", "TENSOR_QUANT8_ASYMM", "{3}, 1.f, 0") # a vector of input +i2 = Input("op2", "TENSOR_QUANT8_ASYMM", "{3}, 1.f, 0") # a vector of input +i3 = Output("op3", "TENSOR_QUANT8_ASYMM", "{3}, 1.f, 0") # a vector of output +model = model.Operation("EQUAL_EX", i1, i2).To(i3) + +# Example 1. Input in operand 0, +input0 = {i1: # input 0 + [2, 3, 0], + i2: # input 1 + [2, 9, 0]} + +output0 = {i3: # output 0 + [1, 0, 1]} + +# Instantiate an example +Example((input0, output0)) -- 2.7.4