diff --git a/inference-engine/src/mkldnn_plugin/mkldnn_infer_request.cpp b/inference-engine/src/mkldnn_plugin/mkldnn_infer_request.cpp index 2368afd100b..5166aba7e93 100644 --- a/inference-engine/src/mkldnn_plugin/mkldnn_infer_request.cpp +++ b/inference-engine/src/mkldnn_plugin/mkldnn_infer_request.cpp @@ -120,6 +120,8 @@ void MKLDNNPlugin::MKLDNNInferRequest::InferImpl() { if (graph->hasMeanImageFor(input.first)) { // If a mean image exists, we convert the blob and send FP32 copyConvert(InferenceEngine::Precision::FP32, input, convertedInputs); + } else if (dynamic_cast *>(input.second.get())) { + pushInput(input.first, input.second); } else { // Instead we can send I8 directly pushInput(input.first, input.second); diff --git a/ngraph/frontend/onnx_import/src/op/non_max_suppression.cpp b/ngraph/frontend/onnx_import/src/op/non_max_suppression.cpp index b41b409a136..fde5702bad3 100644 --- a/ngraph/frontend/onnx_import/src/op/non_max_suppression.cpp +++ b/ngraph/frontend/onnx_import/src/op/non_max_suppression.cpp @@ -86,10 +86,11 @@ namespace ngraph const auto box_encoding = center_point_box == 0 - ? default_opset::NonMaxSuppression::BoxEncodingType::CORNER - : default_opset::NonMaxSuppression::BoxEncodingType::CENTER; + ? ngraph::op::v4::NonMaxSuppression::BoxEncodingType::CORNER + : ngraph::op::v4::NonMaxSuppression::BoxEncodingType::CENTER; - return {std::make_shared( + // Since NMS-5 currently does not work on CPU plugin v4 version have to be used. + return {std::make_shared( boxes, scores, max_output_boxes_per_class, diff --git a/ngraph/python/tests/__init__.py b/ngraph/python/tests/__init__.py index c35615ca27a..0cdbbbd56d2 100644 --- a/ngraph/python/tests/__init__.py +++ b/ngraph/python/tests/__init__.py @@ -91,12 +91,11 @@ xfail_issue_35927 = xfail_test(reason="RuntimeError: B has zero dimension that i xfail_issue_35929 = xfail_test(reason="RuntimeError: Incorrect precision f64!") xfail_issue_35930 = xfail_test(reason="onnx.onnx_cpp2py_export.checker.ValidationError: " "Required attribute 'to' is missing.") -xfail_issue_36437 = xfail_test(reason="RuntimeError: Cannot find blob with name: ") +xfail_issue_40485 = xfail_test(reason="Computation missmatch") xfail_issue_36476 = xfail_test(reason="RuntimeError: [NOT_IMPLEMENTED] Input image format U32 is " "not supported yet...") xfail_issue_36478 = xfail_test(reason="RuntimeError: [NOT_IMPLEMENTED] Input image format U64 is " "not supported yet...") -xfail_issue_36479 = xfail_test(reason="Assertion error - basic computation on ndarrays mismatch") xfail_issue_36480 = xfail_test(reason="RuntimeError: [NOT_FOUND] Unsupported property dummy_option " "by CPU plugin") xfail_issue_36483 = xfail_test(reason="RuntimeError: Unsupported primitive of type: " @@ -115,7 +114,6 @@ xfail_issue_38084 = xfail_test(reason="RuntimeError: AssertionFailed: layer->get xfail_issue_38085 = xfail_test(reason="RuntimeError: Interpolate operation should be converted to Interp") xfail_issue_38086 = xfail_test(reason="RuntimeError: Quantize layer input '' doesn't have blobs") xfail_issue_38087 = xfail_test(reason="RuntimeError: Cannot cast to tensor desc. Format is unsupported!") -xfail_issue_38090 = xfail_test(reason="AssertionError: Items types are not equal") xfail_issue_38091 = xfail_test(reason="AssertionError: Mismatched elements") xfail_issue_38699 = xfail_test(reason="RuntimeError: nGraph does not support the following ONNX operations:" "ai.onnx.preview.training.Gradient") @@ -200,6 +198,7 @@ xfail_issue_37957 = xfail_test(reason="RuntimeError: nGraph does not support the "com.microsoft.CropAndResize, com.microsoft.GatherND," "com.microsoft.Pad, com.microsoft.Range") xfail_issue_39669 = xfail_test(reason="AssertionError: This model has no test data") +xfail_issue_40686 = xfail_test(reason="NANs as results") xfail_issue_36534 = xfail_test(reason="RuntimeError: node input index is out of range") xfail_issue_36535 = xfail_test(reason="RuntimeError: get_shape was called on a descriptor::Tensor " "with dynamic shape") @@ -222,3 +221,4 @@ xfail_issue_39662 = xfail_test(reason="RuntimeError: 'ScatterElementsUpdate' lay xfail_issue_39663 = xfail_test(reason="RuntimeError: Unsupported primitive of type: ROIAlign name: Y") xfail_issue_41815 = xfail_test(reason="RuntimeError: Unsupported dynamic ops: v5::NonMaxSuppression casted " "(yolo_evaluation_layer_1/concat_6:0_btc[0]:f32{1,2535,4},") +xfail_issue_41894 = xfail_test(reason="CPU plugin elementwise computation missmatch") diff --git a/ngraph/python/tests/runtime.py b/ngraph/python/tests/runtime.py index d2bff4398ef..5ebf32fcb0e 100644 --- a/ngraph/python/tests/runtime.py +++ b/ngraph/python/tests/runtime.py @@ -22,7 +22,7 @@ from openvino.inference_engine import IECore, IENetwork from ngraph.exceptions import UserInputError from ngraph.impl import Function, Node, PartialShape -from ngraph.utils.types import NumericData, get_shape +from ngraph.utils.types import NumericData, get_shape, get_dtype import tests @@ -130,4 +130,10 @@ class Computation(object): request = executable_network.requests[0] request.infer(dict(zip(param_names, input_values))) - return [blob.buffer for blob in request.output_blobs.values()] + + # Since OV overwrite result data type we have to convert results to the original one. + original_dtypes = [get_dtype(result.get_output_element_type(0)) for result in self.results] + result_buffers = [blob.buffer for blob in request.output_blobs.values()] + converted_buffers = [buffer.astype(original_dtype) for buffer, original_dtype in + zip(result_buffers, original_dtypes)] + return converted_buffers diff --git a/ngraph/python/tests/test_ngraph/test_basic.py b/ngraph/python/tests/test_ngraph/test_basic.py index 04df09b9c9b..e5e22e53cd4 100644 --- a/ngraph/python/tests/test_ngraph/test_basic.py +++ b/ngraph/python/tests/test_ngraph/test_basic.py @@ -28,7 +28,6 @@ from tests.runtime import get_runtime from tests.test_ngraph.util import run_op_node from tests import (xfail_issue_35929, xfail_issue_36476, - xfail_issue_36479, xfail_issue_36480) @@ -61,11 +60,11 @@ def test_ngraph_function_api(): [ np.float32, pytest.param(np.float64, marks=xfail_issue_35929), - pytest.param(np.int8, marks=xfail_issue_36479), + np.int8, np.int16, np.int32, np.int64, - pytest.param(np.uint8, marks=xfail_issue_36479), + np.uint8, np.uint16, pytest.param(np.uint32, marks=xfail_issue_36476), np.uint64, @@ -141,7 +140,6 @@ def test_broadcast_3(): assert np.allclose(result, expected) -@pytest.mark.xfail(reason="AssertionError: assert dtype('float32') == None @@ -194,15 +194,7 @@ tests_expected_to_fail = [ "OnnxBackendNodeModelTest.test_top_k_cpu", "OnnxBackendNodeModelTest.test_top_k_negative_axis_cpu", "OnnxBackendNodeModelTest.test_top_k_smallest_cpu", - "OnnxBackendNodeModelTest.test_where_long_example_cpu", - "OnnxBackendNodeModelTest.test_mod_int64_fmod_cpu", - "OnnxBackendPyTorchOperatorModelTest.test_operator_non_float_params_cpu", "OnnxBackendNodeModelTest.test_constantofshape_int_shape_zero_cpu", - "OnnxBackendNodeModelTest.test_max_int64_cpu", - "OnnxBackendNodeModelTest.test_pow_types_float_cpu", - "OnnxBackendNodeModelTest.test_pow_types_int64_float32_cpu", - "OnnxBackendNodeModelTest.test_pow_types_int64_int64_cpu", - "OnnxBackendNodeModelTest.test_min_int64_cpu", "OnnxBackendNodeModelTest.test_gather_negative_indices_cpu"), (xfail_issue_33616, "OnnxBackendNodeModelTest.test_maxpool_2d_ceil_cpu", @@ -231,8 +223,6 @@ tests_expected_to_fail = [ "OnnxBackendNodeModelTest.test_training_dropout_zero_ratio_cpu", "OnnxBackendNodeModelTest.test_training_dropout_cpu"), (xfail_issue_35915, - "OnnxBackendNodeModelTest.test_equal_bcast_cpu", - "OnnxBackendNodeModelTest.test_equal_cpu", "OnnxBackendNodeModelTest.test_min_int16_cpu", "OnnxBackendNodeModelTest.test_min_uint8_cpu"), (xfail_issue_34310, @@ -241,100 +231,22 @@ tests_expected_to_fail = [ "OnnxBackendNodeModelTest.test_lstm_with_peepholes_cpu"), (xfail_issue_36476, "OnnxBackendNodeModelTest.test_max_uint32_cpu", - "OnnxBackendNodeModelTest.test_min_uint32_cpu"), + "OnnxBackendNodeModelTest.test_min_uint32_cpu", + "OnnxBackendNodeModelTest.test_pow_types_float32_uint32_cpu"), (xfail_issue_36478, "OnnxBackendNodeModelTest.test_max_uint64_cpu", "OnnxBackendNodeModelTest.test_min_uint64_cpu"), - (xfail_issue_36437, - "OnnxBackendNodeModelTest.test_argmax_default_axis_example_cpu", - "OnnxBackendNodeModelTest.test_argmax_default_axis_random_cpu", - "OnnxBackendNodeModelTest.test_argmax_keepdims_example_cpu", - "OnnxBackendNodeModelTest.test_argmax_keepdims_random_cpu", - "OnnxBackendNodeModelTest.test_argmax_negative_axis_keepdims_example_cpu", - "OnnxBackendNodeModelTest.test_argmax_negative_axis_keepdims_random_cpu", - "OnnxBackendNodeModelTest.test_argmin_default_axis_example_cpu", - "OnnxBackendNodeModelTest.test_argmin_default_axis_random_cpu", - "OnnxBackendNodeModelTest.test_argmin_keepdims_example_cpu", - "OnnxBackendNodeModelTest.test_argmin_keepdims_random_cpu", - "OnnxBackendNodeModelTest.test_argmin_negative_axis_keepdims_example_cpu", - "OnnxBackendNodeModelTest.test_argmin_negative_axis_keepdims_random_cpu", - "OnnxBackendNodeModelTest.test_argmax_keepdims_random_select_last_index_cpu", + (xfail_issue_40485, "OnnxBackendNodeModelTest.test_argmax_negative_axis_keepdims_example_select_last_index_cpu", "OnnxBackendNodeModelTest.test_argmax_keepdims_example_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmin_default_axis_random_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmin_default_axis_example_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmax_default_axis_random_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmax_default_axis_example_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmax_negative_axis_keepdims_random_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmin_negative_axis_keepdims_random_select_last_index_cpu", + "OnnxBackendNodeModelTest.test_argmax_no_keepdims_example_select_last_index_cpu", "OnnxBackendNodeModelTest.test_argmin_negative_axis_keepdims_example_select_last_index_cpu", "OnnxBackendNodeModelTest.test_argmin_keepdims_example_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmin_keepdims_random_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_pow_types_float32_uint32_cpu"), - (xfail_issue_38090, - "OnnxBackendNodeModelTest.test_where_long_example_cpu", - "OnnxBackendNodeModelTest.test_mod_int64_fmod_cpu", - "OnnxBackendPyTorchOperatorModelTest.test_operator_non_float_params_cpu", - "OnnxBackendNodeModelTest.test_max_int64_cpu", - "OnnxBackendNodeModelTest.test_pow_types_int64_int64_cpu", - "OnnxBackendNodeModelTest.test_min_int64_cpu", - "OnnxBackendNodeModelTest.test_not_2d_cpu", - "OnnxBackendNodeModelTest.test_not_3d_cpu", - "OnnxBackendNodeModelTest.test_not_4d_cpu", - "OnnxBackendNodeModelTest.test_or2d_cpu", - "OnnxBackendNodeModelTest.test_or3d_cpu", - "OnnxBackendNodeModelTest.test_or4d_cpu", - "OnnxBackendNodeModelTest.test_or_bcast3v1d_cpu", - "OnnxBackendNodeModelTest.test_or_bcast3v2d_cpu", - "OnnxBackendNodeModelTest.test_or_bcast4v2d_cpu", - "OnnxBackendNodeModelTest.test_or_bcast4v3d_cpu", - "OnnxBackendNodeModelTest.test_or_bcast4v4d_cpu", - "OnnxBackendNodeModelTest.test_xor2d_cpu", - "OnnxBackendNodeModelTest.test_xor3d_cpu", - "OnnxBackendNodeModelTest.test_xor4d_cpu", - "OnnxBackendNodeModelTest.test_xor_bcast3v1d_cpu", - "OnnxBackendNodeModelTest.test_xor_bcast3v2d_cpu", - "OnnxBackendNodeModelTest.test_xor_bcast4v2d_cpu", - "OnnxBackendNodeModelTest.test_xor_bcast4v3d_cpu", - "OnnxBackendNodeModelTest.test_xor_bcast4v4d_cpu", - "OnnxBackendNodeModelTest.test_greater_equal_expanded_cpu", - "OnnxBackendNodeModelTest.test_less_equal_bcast_expanded_cpu", - "OnnxBackendNodeModelTest.test_max_int16_cpu", - "OnnxBackendNodeModelTest.test_max_uint16_cpu", - "OnnxBackendNodeModelTest.test_less_equal_expanded_cpu", - "OnnxBackendNodeModelTest.test_max_int8_cpu", - "OnnxBackendNodeModelTest.test_max_uint8_cpu", - "OnnxBackendNodeModelTest.test_maxpool_2d_uint8_cpu", - "OnnxBackendNodeModelTest.test_min_float16_cpu", - "OnnxBackendNodeModelTest.test_greater_equal_bcast_expanded_cpu", - "OnnxBackendNodeModelTest.test_min_uint16_cpu", - "OnnxBackendNodeModelTest.test_max_float16_cpu", - "OnnxBackendNodeModelTest.test_min_int8_cpu", - "OnnxBackendNodeModelTest.test_greater_bcast_cpu", - "OnnxBackendNodeModelTest.test_greater_cpu", - "OnnxBackendNodeModelTest.test_less_bcast_cpu", - "OnnxBackendNodeModelTest.test_less_cpu", - "OnnxBackendNodeModelTest.test_mod_mixed_sign_float16_cpu", - "OnnxBackendNodeModelTest.test_argmax_no_keepdims_example_cpu", - "OnnxBackendNodeModelTest.test_argmax_no_keepdims_random_cpu", - "OnnxBackendNodeModelTest.test_argmin_no_keepdims_random_cpu", - "OnnxBackendNodeModelTest.test_argmax_no_keepdims_random_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmax_no_keepdims_example_select_last_index_cpu", "OnnxBackendNodeModelTest.test_argmin_no_keepdims_example_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_argmin_no_keepdims_random_select_last_index_cpu", - "OnnxBackendNodeModelTest.test_cast_FLOAT_to_FLOAT16_cpu", - "OnnxBackendNodeModelTest.test_and3d_cpu", - "OnnxBackendNodeModelTest.test_and4d_cpu", - "OnnxBackendNodeModelTest.test_and_bcast3v1d_cpu", - "OnnxBackendNodeModelTest.test_and_bcast3v2d_cpu", - "OnnxBackendNodeModelTest.test_and_bcast4v2d_cpu", - "OnnxBackendNodeModelTest.test_and_bcast4v3d_cpu", - "OnnxBackendNodeModelTest.test_and_bcast4v4d_cpu", - "OnnxBackendNodeModelTest.test_argmin_no_keepdims_example_cpu", "OnnxBackendNodeModelTest.test_clip_default_int8_inbounds_cpu", - "OnnxBackendNodeModelTest.test_and2d_cpu", + "OnnxBackendNodeModelTest.test_clip_default_int8_max_cpu", "OnnxBackendNodeModelTest.test_clip_default_int8_min_cpu", - "OnnxBackendNodeModelTest.test_clip_default_int8_max_cpu"), + "OnnxBackendNodeModelTest.test_min_uint16_cpu",), (xfail_issue_38091, "OnnxBackendNodeModelTest.test_gather_negative_indices_cpu", "OnnxBackendNodeModelTest.test_mvn_cpu", @@ -635,7 +547,10 @@ tests_expected_to_fail = [ "OnnxBackendNodeModelTest.test_adam_cpu"), (xfail_issue_38735, "OnnxBackendNodeModelTest.test_adagrad_multiple_cpu", - "OnnxBackendNodeModelTest.test_adagrad_cpu") + "OnnxBackendNodeModelTest.test_adagrad_cpu"), + (xfail_issue_41894, + "OnnxBackendNodeModelTest.test_max_uint16_cpu", + "OnnxBackendNodeModelTest.test_mod_int64_fmod_cpu") ] for test_group in tests_expected_to_fail: diff --git a/ngraph/python/tests/test_onnx/test_zoo_models.py b/ngraph/python/tests/test_onnx/test_zoo_models.py index 0b5fc8bdf86..861190af1e8 100644 --- a/ngraph/python/tests/test_onnx/test_zoo_models.py +++ b/ngraph/python/tests/test_onnx/test_zoo_models.py @@ -37,10 +37,10 @@ from tests import ( xfail_issue_39685, xfail_issue_37957, xfail_issue_36465, - xfail_issue_38090, xfail_issue_38084, xfail_issue_39669, - xfail_issue_38726) + xfail_issue_38726, + xfail_issue_40686) MODELS_ROOT_DIR = tests.MODEL_ZOO_DIR @@ -83,6 +83,10 @@ tolerance_map = { "rain-princess-9": {"atol": 0.001, "rtol": 0.001}, "udnie-8": {"atol": 0.001, "rtol": 0.001}, "udnie-9": {"atol": 0.001, "rtol": 0.001}, + "mxnet_arcface": {"atol": 1.5e-5, "rtol": 0.001}, + "resnet100": {"atol": 1.5e-5, "rtol": 0.001}, + "densenet121": {"atol": 1e-7, "rtol": 0.0011}, + "resnet152v1": {"atol": 1e-7, "rtol": 0.003}, "test_shufflenetv2": {"atol": 1e-05, "rtol": 0.001}, } @@ -154,10 +158,7 @@ if len(zoo_models) > 0: (xfail_issue_36533, "test_onnx_model_zoo_vision_object_detection_segmentation_tiny_yolov2_model_tinyyolov2_8_tiny_yolov2_Model_cpu"), (xfail_issue_36533, "test_onnx_model_zoo_vision_classification_resnet_model_resnet18_v2_7_resnet18v2_resnet18_v2_7_cpu"), (xfail_issue_36533, "test_onnx_model_zoo_vision_classification_resnet_model_resnet101_v1_7_resnet101v1_resnet101_v1_7_cpu"), - (xfail_issue_36533, "test_onnx_model_zoo_vision_classification_resnet_model_resnet152_v1_7_resnet152v1_resnet152_v1_7_cpu"), - (xfail_issue_36533, "test_onnx_model_zoo_vision_classification_densenet_121_model_densenet_3_densenet121_model_cpu"), (xfail_issue_38084, "test_onnx_model_zoo_vision_object_detection_segmentation_mask_rcnn_model_MaskRCNN_10_mask_rcnn_R_50_FPN_1x_cpu"), - (xfail_issue_38090, "test_onnx_model_zoo_vision_object_detection_segmentation_ssd_model_ssd_10_model_cpu"), (xfail_issue_38084, "test_onnx_model_zoo_vision_object_detection_segmentation_faster_rcnn_model_FasterRCNN_10_faster_rcnn_R_50_FPN_1x_cpu"), (xfail_issue_41815, "test_onnx_model_zoo_vision_object_detection_segmentation_yolov3_model_yolov3_10_yolov3_yolov3_cpu"), (xfail_issue_41815, "test_onnx_model_zoo_vision_object_detection_segmentation_tiny_yolov3_model_tiny_yolov3_11_yolov3_tiny_cpu"), @@ -173,13 +174,8 @@ if len(zoo_models) > 0: (xfail_issue_36533, "test_MSFT_opset11_tf_inception_v2_model_cpu"), (xfail_issue_36533, "test_MSFT_opset7_test_mobilenetv2_1.0_mobilenetv2_1.0_cpu"), - (xfail_issue_38090, "test_MSFT_opset7_fp16_tiny_yolov2_onnxzoo_winmlperf_tiny_yolov2_cpu"), - (xfail_issue_38090, "test_MSFT_opset8_fp16_inception_v1_onnxzoo_lotus_inception_v1_cpu"), - (xfail_issue_38090, "test_MSFT_opset8_fp16_tiny_yolov2_onnxzoo_winmlperf_tiny_yolov2_cpu"), - (xfail_issue_38090, "test_MSFT_opset8_fp16_shufflenet_onnxzoo_lotus_shufflenet_cpu"), - (xfail_issue_38090, "test_MSFT_opset7_fp16_inception_v1_onnxzoo_lotus_inception_v1_cpu"), - (xfail_issue_38090, "test_MSFT_opset10_mlperf_resnet_resnet50_v1_cpu"), - (xfail_issue_38090, "test_MSFT_opset7_fp16_shufflenet_onnxzoo_lotus_shufflenet_cpu"), + (xfail_issue_40686, "test_MSFT_opset7_fp16_tiny_yolov2_onnxzoo_winmlperf_tiny_yolov2_cpu"), + (xfail_issue_40686, "test_MSFT_opset8_fp16_tiny_yolov2_onnxzoo_winmlperf_tiny_yolov2_cpu"), (xfail_issue_38084, "test_MSFT_opset10_mask_rcnn_mask_rcnn_R_50_FPN_1x_cpu"), (xfail_issue_38084, "test_MSFT_opset10_faster_rcnn_faster_rcnn_R_50_FPN_1x_cpu"), diff --git a/ngraph/test/CMakeLists.txt b/ngraph/test/CMakeLists.txt index dd214af4e16..a9bc797d464 100644 --- a/ngraph/test/CMakeLists.txt +++ b/ngraph/test/CMakeLists.txt @@ -296,6 +296,7 @@ set(MULTI_TEST_SRC backend/interpolate.in.cpp backend/log.in.cpp backend/log_softmax.in.cpp + backend/logical_and.in.cpp backend/logical_not.in.cpp backend/logical_or.in.cpp backend/logical_xor.in.cpp diff --git a/ngraph/test/backend/logical_and.in.cpp b/ngraph/test/backend/logical_and.in.cpp new file mode 100644 index 00000000000..680f9444a70 --- /dev/null +++ b/ngraph/test/backend/logical_and.in.cpp @@ -0,0 +1,46 @@ +//***************************************************************************** +// Copyright 2017-2020 Intel Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//***************************************************************************** + +#include "gtest/gtest.h" +#include "ngraph/ngraph.hpp" +#include "util/engine/test_engines.hpp" +#include "util/test_case.hpp" +#include "util/test_control.hpp" + +NGRAPH_SUPPRESS_DEPRECATED_START + +using namespace std; +using namespace ngraph; + +static string s_manifest = "${MANIFEST}"; +using TestEngine = test::ENGINE_CLASS_NAME(${BACKEND_NAME}); + +NGRAPH_TEST(${BACKEND_NAME}, logical_and) +{ + Shape shape{3, 4}; + auto A = make_shared(element::boolean, shape); + auto B = make_shared(element::boolean, shape); + auto f = + make_shared(std::make_shared(A, B), ParameterVector{A, B}); + + std::vector a{true, true, true, true, true, false, true, false, false, true, true, true}; + std::vector b{true, true, true, true, true, false, true, false, false, true, true, false}; + + auto test_case_1 = test::TestCase(f); + test_case_1.add_multiple_inputs({a, b}); + test_case_1.add_expected_output(shape, {1., 1., 1., 1., 1., 0., 1., 0., 0., 1., 1., 0.}); + test_case_1.run(); +}