Add ctest for some test targets (#13727)

* Add ctest for some test targets

* Fixed test coverage

* Replaced unit tests cmake script

* Fixed code style

* Use ov_add_test_target for FEs

* Fixed code style
This commit is contained in:
Ilya Churaev 2022-11-08 10:25:16 +04:00 committed by GitHub
parent 07a0ff58f2
commit 0bb72a4949
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 225 additions and 745 deletions

View File

@ -34,9 +34,22 @@ And build OpenVINO as usual.
In order to generate coverage reports, first of all, the tests must be run. Depending on how many tests are run, the better covegare percentage can be achieved. E.g. for `openvino` component, `InferenceEngineUnitTests`, `ieUnitTests`, `ieFuncTests` must be run as well as plugin tests.
```bash
$ ctest -V -L IE
$ ctest -V
```
OpenVINO components define several common groups which allow to run tests for separate component (with ctest argiment `-L GROUP_NAME`):
- OV - core OpenVINO tests
- IR_FE - IR frontend tests
- ONNX_FE - ONNX frontend tests
- PADDLE_FE - Paddle frontend tests
- TF_FE - TensorFlow frontend tests
- CPU - CPU plugin tests
- GPU - GPU plugin tests
- GNA - GNA plugin tests
- VPU - VPU plugin tests
After sufficient number of tests are executed, the coverage numbers can be calculated. In order to do this, run:
```bash

View File

@ -16,10 +16,10 @@ addIeTargetTest(
snippetsNgraphFunctions
ADD_CPPLINT
LABELS
IE SNIPPETS
IE OV SNIPPETS
)
ie_faster_build(${TARGET_NAME}
UNITY
PCH PRIVATE "src/precomp.hpp"
)
)

View File

@ -1,6 +1,7 @@
# Copyright (C) 2018-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
set(TARGET_NAME ov_core_unit_tests)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE OFF)
@ -29,421 +30,6 @@ if(LINUX)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
endif()
set(SRC
aligned_buffer.cpp
all_close_f.cpp
bfloat16.cpp
build_graph.cpp
builder_autobroadcast.cpp
check.cpp
conditional_compilation/ngraph_cc_collect.cpp
conditional_compilation/ngraph_cc_off.cpp
conditional_compilation/ngraph_cc_on.cpp
constant.cpp
constant_folding.cpp
control_dependencies.cpp
convert_u1_to_string.cpp
coordinate.cpp
coordinate_range.cpp
copy.cpp
copy_runtime_info.cpp
dimension.cpp
element_type.cpp
eval.cpp
evaluate_bound/concat.cpp
evaluate_bound/transpose.cpp
extension.cpp
file_util.cpp
float16.cpp
framework_node.cpp
model.cpp
graph_rewrite.cpp
input_output_assign.cpp
int4.cpp
intervals.cpp
layout.cpp
main.cpp
matcher_pass.cpp
misc.cpp
rtti.cpp
node_input_output.cpp
rtti.cpp
op.cpp
opset.cpp
opset1.cpp
ov_default_allocator_test.cpp
ov_tensor_test.cpp
any.cpp
partial_shape.cpp
pass_config.cpp
pass_manager.cpp
pass/serialization/cleanup.cpp
pass/serialization/const_compression.cpp
pass/serialization/deterministicity.cpp
pass/serialization/serialize.cpp
pass/serialization/from_model.cpp
pattern.cpp
preprocess.cpp
replace_node.cpp
reshape_opt_kernel.cpp
shape.cpp
span.cpp
specialize_function.cpp
tensor.cpp
threading.cpp
type_info.cpp
type_prop/abs.cpp
type_prop/acos.cpp
type_prop/adaptive_avg_pool.cpp
type_prop/adaptive_max_pool.cpp
type_prop/add.cpp
type_prop/asin.cpp
type_prop/asinh.cpp
type_prop/assign.cpp
type_prop/atan.cpp
type_prop/atanh.cpp
type_prop/augru_cell.cpp
type_prop/augru_sequence.cpp
type_prop/avg_pool.cpp
type_prop/batch_norm.cpp
type_prop/batch_to_space.cpp
type_prop/binary_convolution.cpp
type_prop/binary_elementwise.cpp
type_prop/broadcast.cpp
type_prop/bucketize.cpp
type_prop/ceiling.cpp
type_prop/clamp.cpp
type_prop/concat.cpp
type_prop/constant.cpp
type_prop/convert.cpp
type_prop/convert_color_i420.cpp
type_prop/convert_color_nv12.cpp
type_prop/convolution.cpp
type_prop/convolution_backprop_data.cpp
type_prop/cos.cpp
type_prop/cosh.cpp
type_prop/ctc_greedy_decoder.cpp
type_prop/ctc_greedy_decoder_seq_len.cpp
type_prop/ctc_loss.cpp
type_prop/cum_sum.cpp
type_prop/deformable_convolution.cpp
type_prop/deformable_convolution_opset8.cpp
type_prop/deformable_psroi_pooling.cpp
type_prop/detection_output.cpp
type_prop/depth_to_space.cpp
type_prop/dft.cpp
type_prop/divide.cpp
type_prop/dyn_reshape.cpp
type_prop/einsum.cpp
type_prop/erf.cpp
type_prop/exp.cpp
type_prop/experimental_detectron_generate_proposals.cpp
type_prop/generate_proposals.cpp
type_prop/experimental_detectron_roi_feature_extractor.cpp
type_prop/experimental_detectron_topkrois.cpp
type_prop/strided_slice.cpp
type_prop/elu.cpp
type_prop/embeddingbag_offsetssum.cpp
type_prop/experimental_detectron_detection_output.cpp
type_prop/experimental_detectron_prior_grid_generator.cpp
type_prop/extractimagepatches.cpp
type_prop/embeddingbag_packedsum.cpp
type_prop/embedding_segments_sum.cpp
type_prop/eye.cpp
type_prop/fake_quantize.cpp
type_prop/floor.cpp
type_prop/floor_mod.cpp
type_prop/framework_node.cpp
type_prop/gather.cpp
type_prop/gather_elements.cpp
type_prop/gather_nd.cpp
type_prop/gather_tree.cpp
type_prop/gelu.cpp
type_prop/grid_sample.cpp
type_prop/grn.cpp
type_prop/group_convolution.cpp
type_prop/group_convolution_backprop_data.cpp
type_prop/gru_cell.cpp
type_prop/gru_sequence.cpp
type_prop/hard_sigmoid.cpp
type_prop/hsigmoid.cpp
type_prop/hswish.cpp
type_prop/idft.cpp
type_prop/if.cpp
type_prop/interpolate.cpp
type_prop/irdft.cpp
type_prop/is_finite.cpp
type_prop/is_inf.cpp
type_prop/is_nan.cpp
type_prop/logical_and.cpp
type_prop/logical_not.cpp
type_prop/logical_or.cpp
type_prop/logical_xor.cpp
type_prop/lrn.cpp
type_prop/lstm_cell.cpp
type_prop/lstm_sequence.cpp
type_prop/loop.cpp
type_prop/matmul.cpp
type_prop/matrix_nms.cpp
type_prop/maximum.cpp
type_prop/max_pool.cpp
type_prop/minimum.cpp
type_prop/mish.cpp
type_prop/mod.cpp
type_prop/multiclass_nms.cpp
type_prop/multiply.cpp
type_prop/mvn.cpp
type_prop/negative.cpp
type_prop/non_max_suppression.cpp
type_prop/non_zero.cpp
type_prop/normalize_l2.cpp
type_prop/one_hot.cpp
type_prop/pad.cpp
type_prop/parameter.cpp
type_prop/power.cpp
type_prop/prelu.cpp
type_prop/prior_box.cpp
type_prop/proposal.cpp
type_prop/psroi_pooling.cpp
type_prop/prior_box_clustered.cpp
type_prop/random_uniform.cpp
type_prop/range.cpp
type_prop/rdft.cpp
type_prop/read_value.cpp
type_prop/reduce_l1.cpp
type_prop/reduce_l2.cpp
type_prop/reduce_logical_and.cpp
type_prop/reduce_logical_or.cpp
type_prop/reduce_max.cpp
type_prop/reduce_mean.cpp
type_prop/reduce_min.cpp
type_prop/reduce_prod.cpp
type_prop/reduce_sum.cpp
type_prop/region_yolo.cpp
type_prop/relu.cpp
type_prop/reorg_yolo.cpp
type_prop/reshape.cpp
type_prop/result.cpp
type_prop/reverse.cpp
type_prop/reverse_sequence.cpp
type_prop/roi_align.cpp
type_prop/roi_pooling.cpp
type_prop/roll.cpp
type_prop/round.cpp
type_prop/rnn_cell.cpp
type_prop/rnn_sequence.cpp
type_prop/round.cpp
type_prop/scatter_elements_update.cpp
type_prop/scatter_nd_update.cpp
type_prop/scatter_update.cpp
type_prop/select.cpp
type_prop/selu.cpp
type_prop/shape_of.cpp
type_prop/shuffle_channels.cpp
type_prop/sigmoid.cpp
type_prop/sign.cpp
type_prop/sin.cpp
type_prop/sinh.cpp
type_prop/slice.cpp
type_prop/softmax.cpp
type_prop/softplus.cpp
type_prop/softsign.cpp
type_prop/space_to_batch.cpp
type_prop/space_to_depth.cpp
type_prop/split.cpp
type_prop/sqrt.cpp
type_prop/squared_difference.cpp
type_prop/squeeze.cpp
type_prop/subtract.cpp
type_prop/swish.cpp
type_prop/tan.cpp
type_prop/tanh.cpp
type_prop/tensor_iterator.cpp
type_prop/tile.cpp
type_prop/top_k.cpp
type_prop/transpose.cpp
type_prop/unary_elementwise.cpp
type_prop/unique.cpp
type_prop/unsqueeze.cpp
type_prop/variadic_split.cpp
type_prop_layers.cpp
visitors/partial_shape.cpp
visitors/dimension.cpp
visitors/user_op.cpp
visitors/value_map.cpp
visitors/op/abs.cpp
visitors/op/acos.cpp
visitors/op/acosh.cpp
visitors/op/adaptive_avg_pool.cpp
visitors/op/adaptive_max_pool.cpp
visitors/op/add.cpp
visitors/op/asin.cpp
visitors/op/asinh.cpp
visitors/op/assign.cpp
visitors/op/atan.cpp
visitors/op/atanh.cpp
visitors/op/avg_pool.cpp
visitors/op/batch_norm.cpp
visitors/op/batch_to_space.cpp
visitors/op/binary_convolution.cpp
visitors/op/broadcast.cpp
visitors/op/bucketize.cpp
visitors/op/ceiling.cpp
visitors/op/clamp.cpp
visitors/op/concat.cpp
visitors/op/constant.cpp
visitors/op/convert.cpp
visitors/op/convert_color_i420.cpp
visitors/op/convert_color_nv12.cpp
visitors/op/convolution_backprop.cpp
visitors/op/convolution.cpp
visitors/op/cos.cpp
visitors/op/cosh.cpp
visitors/op/ctc_greedy_decoder.cpp
visitors/op/ctc_greedy_decoder_seq_len.cpp
visitors/op/ctc_loss.cpp
visitors/op/cum_sum.cpp
visitors/op/deformable_convolution.cpp
visitors/op/deformable_psroi_pooling.cpp
visitors/op/depth_to_space.cpp
visitors/op/detection_output.cpp
visitors/op/dft.cpp
visitors/op/divide.cpp
visitors/op/einsum.cpp
visitors/op/elu.cpp
visitors/op/embedding_segments_sum.cpp
visitors/op/embeddingbag_offsetssum.cpp
visitors/op/embeddingbag_packedsum.cpp
visitors/op/equal.cpp
visitors/op/erf.cpp
visitors/op/exp.cpp
visitors/op/experimental_detectron_detection_output.cpp
visitors/op/experimental_detectron_generate_proposals.cpp
visitors/op/generate_proposals.cpp
visitors/op/grid_sample.cpp
visitors/op/experimental_detectron_prior_grid_generator.cpp
visitors/op/experimental_detectron_topkrois.cpp
visitors/op/eye.cpp
visitors/op/extractimagepatches.cpp
visitors/op/fake_quantize.cpp
visitors/op/floor_mod.cpp
visitors/op/floor.cpp
visitors/op/gather.cpp
visitors/op/gather_elements.cpp
visitors/op/gather_nd.cpp
visitors/op/gather_tree.cpp
visitors/op/gelu.cpp
visitors/op/greater_equal.cpp
visitors/op/greater.cpp
visitors/op/grn.cpp
visitors/op/gru_cell.cpp
visitors/op/gru_sequence.cpp
visitors/op/group_conv.cpp
visitors/op/hard_sigmoid.cpp
visitors/op/hsigmoid.cpp
visitors/op/hswish.cpp
visitors/op/interpolate.cpp
visitors/op/if.cpp
visitors/op/idft.cpp
visitors/op/irdft.cpp
visitors/op/is_inf.cpp
visitors/op/less_equal.cpp
visitors/op/less.cpp
visitors/op/log.cpp
visitors/op/log_softmax.cpp
visitors/op/logical_and.cpp
visitors/op/logical_or.cpp
visitors/op/logical_not.cpp
visitors/op/logical_xor.cpp
visitors/op/lrn.cpp
visitors/op/lstm_cell.cpp
visitors/op/lstm_sequence.cpp
visitors/op/matmul.cpp
visitors/op/matrix_nms.cpp
visitors/op/max_pool.cpp
visitors/op/maximum.cpp
visitors/op/minimum.cpp
visitors/op/mish.cpp
visitors/op/mod.cpp
visitors/op/multiclass_nms.cpp
visitors/op/multiply.cpp
visitors/op/mvn.cpp
visitors/op/negative.cpp
visitors/op/non_max_suppression.cpp
visitors/op/non_zero.cpp
visitors/op/normalize_l2.cpp
visitors/op/not_equal.cpp
visitors/op/one_hot.cpp
visitors/op/pad.cpp
visitors/op/parameter.cpp
visitors/op/power.cpp
visitors/op/prelu.cpp
visitors/op/prior_box.cpp
visitors/op/prior_box_clustered.cpp
visitors/op/proposal.cpp
visitors/op/psroi_pooling.cpp
visitors/op/random_uniform.cpp
visitors/op/range.cpp
visitors/op/rdft.cpp
visitors/op/read_value.cpp
visitors/op/reduce_l1.cpp
visitors/op/reduce_l2.cpp
visitors/op/reduce_logical_and.cpp
visitors/op/reduce_logical_or.cpp
visitors/op/reduce_max.cpp
visitors/op/reduce_mean.cpp
visitors/op/reduce_min.cpp
visitors/op/reduce_prod.cpp
visitors/op/reduce_sum.cpp
visitors/op/region_yolo.cpp
visitors/op/relu.cpp
visitors/op/reorg_yolo.cpp
visitors/op/reshape.cpp
visitors/op/result.cpp
visitors/op/reverse.cpp
visitors/op/reverse_sequence.cpp
visitors/op/rnn_cell.cpp
visitors/op/rnn_sequence.cpp
visitors/op/roi_pooling.cpp
visitors/op/roll.cpp
visitors/op/round.cpp
visitors/op/scatter_elements_update.cpp
visitors/op/scatter_update.cpp
visitors/op/select.cpp
visitors/op/space_to_depth.cpp
visitors/op/selu.cpp
visitors/op/shape_of.cpp
visitors/op/shuffle_channels.cpp
visitors/op/sigmoid.cpp
visitors/op/sign.cpp
visitors/op/sin.cpp
visitors/op/sinh.cpp
visitors/op/slice.cpp
visitors/op/softmax.cpp
visitors/op/softplus.cpp
visitors/op/softsign.cpp
visitors/op/space_to_batch.cpp
visitors/op/space_to_depth.cpp
visitors/op/split.cpp
visitors/op/sqrt.cpp
visitors/op/squared_difference.cpp
visitors/op/squeeze.cpp
visitors/op/strided_slice.cpp
visitors/op/subtract.cpp
visitors/op/swish.cpp
visitors/op/tan.cpp
visitors/op/tanh.cpp
visitors/op/tensor_iterator.cpp
visitors/op/tile.cpp
visitors/op/topk.cpp
visitors/op/transpose.cpp
visitors/op/unique.cpp
visitors/op/unsqueeze.cpp
visitors/op/variadic_split.cpp
uint4.cpp
validation_utils.cpp
)
# For type relaxed types
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/threading.cpp
PROPERTIES INCLUDE_DIRECTORIES $<TARGET_PROPERTY:inference_engine_transformations,INTERFACE_INCLUDE_DIRECTORIES>)
@ -455,75 +41,66 @@ if(SUGGEST_OVERRIDE_SUPPORTED)
endif()
list(APPEND UNIT_TESTS_DEPENDENCIES openvino_template_extension)
list(APPEND UNIT_TESTS_DEPENDENCIES template_extension)
list(APPEND EXCLUDE_TESTS ${CMAKE_CURRENT_SOURCE_DIR}/frontend
${CMAKE_CURRENT_SOURCE_DIR}/dnnl.cpp)
if (ENABLE_TEMPLATE)
list(APPEND UNIT_TESTS_DEPENDENCIES openvino_template_plugin)
set(OP_EVAL_TEST_SRC
else()
list(APPEND EXCLUDE_TESTS
# It should be a part of template plugin
op_eval/memory.cpp)
${CMAKE_CURRENT_SOURCE_DIR}/op_eval/memory.cpp)
endif()
# SOURCE FOR FRONTEND TESTING
file(GLOB FRONTEND_TESTS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/frontend/frontend_manager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/frontend/decoder_transformation_extension.cpp
${CMAKE_CURRENT_SOURCE_DIR}/frontend/progress_reporter.cpp)
list(APPEND SRC ${FRONTEND_TESTS_SRC})
foreach(src IN LISTS SRC OP_EVAL_TEST_SRC)
if(IS_ABSOLUTE "${src}")
list(APPEND full_src_names ${src})
else()
list(APPEND full_src_names "${CMAKE_CURRENT_SOURCE_DIR}/${src}")
endif()
endforeach()
add_clang_format_target(unit-test_clang FOR_SOURCES ${full_src_names})
add_executable(ov_core_unit_tests ${SRC} ${OP_EVAL_TEST_SRC})
add_dependencies(ov_core_unit_tests template_extension)
target_include_directories(ov_core_unit_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
ov_add_test_target(
NAME ${TARGET_NAME}
ROOT ${CMAKE_CURRENT_SOURCE_DIR}
EXCLUDED_SOURCE_PATHS
${EXCLUDE_TESTS}
DEPENDENCIES
${UNIT_TESTS_DEPENDENCIES}
# process models
test_model_zoo
LINK_LIBRARIES
engines_test_util
commonTestUtils
ngraph_reference
ngraph::builder
openvino::util
ov_shape_inference
${CMAKE_DL_LIBS}
Threads::Threads
openvino::conditional_compilation
openvino::runtime::dev
ADD_CLANG_FORMAT
LABELS
OV
IE
CORE
)
get_target_property(OV_CORE_SRC_DIR ngraph_obj SOURCE_DIR)
target_include_directories(ov_core_unit_tests PRIVATE ${OV_CORE_SRC_DIR}/src)
target_include_directories(${TARGET_NAME} PRIVATE ${OV_CORE_SRC_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR})
target_compile_definitions(ov_core_unit_tests
target_compile_definitions(${TARGET_NAME}
PRIVATE
SHARED_LIB_PREFIX="${CMAKE_SHARED_LIBRARY_PREFIX}"
SHARED_LIB_SUFFIX="${IE_BUILD_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}")
add_dependencies(ov_core_unit_tests ${UNIT_TESTS_DEPENDENCIES})
target_link_libraries(ov_core_unit_tests PRIVATE
engines_test_util
commonTestUtils
ngraph_reference
ngraph::builder
openvino::util
ov_shape_inference
${CMAKE_DL_LIBS}
Threads::Threads
openvino::conditional_compilation
openvino::runtime::dev)
add_dependencies(${TARGET_NAME} ${UNIT_TESTS_DEPENDENCIES})
if (ENABLE_OV_ONNX_FRONTEND)
target_compile_definitions(ov_core_unit_tests PRIVATE ENABLE_OV_ONNX_FRONTEND)
target_compile_definitions(${TARGET_NAME} PRIVATE ENABLE_OV_ONNX_FRONTEND)
endif()
if (OV_COMPILER_IS_CLANG)
target_compile_options(ov_core_unit_tests PRIVATE -Wno-undef -Wno-reserved-id-macro)
target_compile_options(${TARGET_NAME} PRIVATE -Wno-undef -Wno-reserved-id-macro)
endif()
if(ENABLE_OV_IR_FRONTEND)
add_dependencies(ov_core_unit_tests openvino_ir_frontend)
add_dependencies(${TARGET_NAME} openvino_ir_frontend)
endif()
install(TARGETS ov_core_unit_tests
RUNTIME DESTINATION tests
COMPONENT tests
EXCLUDE_FROM_ALL)
add_subdirectory(frontend)
# process models
add_dependencies(ov_core_unit_tests test_model_zoo)

View File

@ -4,9 +4,9 @@
#pragma once
#include "openvino/frontend/manager.hpp"
#include "openvino/core/except.hpp"
#include "openvino/core/model.hpp"
#include "openvino/frontend/manager.hpp"
namespace ov {
namespace test {

View File

@ -4,10 +4,10 @@
#include <gtest/gtest.h>
#include "common_test_utils/graph_comparator.hpp"
#include "openvino/opsets/opset8.hpp"
#include "openvino/pass/serialize.hpp"
#include "read_ir.hpp"
#include "common_test_utils/graph_comparator.hpp"
#include "util/test_common.hpp"
class TensorNameSerializationTest : public ov::test::TestsCommon {

View File

@ -147,7 +147,7 @@ TYPED_TEST_P(ArithmeticOperator, shape_inference_4D_x_3D_numpy_broadcast) {
}
TYPED_TEST_P(ArithmeticOperator, static_shape_pdpd_doc_examples) {
// TODO: PDPD broadcast review, ticket: 93618
// TODO: PDPD broadcast review, ticket: 93618
{
auto A = std::make_shared<op::Parameter>(element::f32, Shape{2, 3, 4, 5});
auto B = std::make_shared<op::Parameter>(element::f32, Shape{3, 4});
@ -315,14 +315,13 @@ TYPED_TEST_P(ArithmeticOperator, dynamic_shape_intervals_equal_rank_broadcast_nu
EXPECT_EQ(op->get_element_type(), element::f32);
EXPECT_EQ(op->get_output_partial_shape(0),
(PartialShape{Dimension(1, 3), Dimension(2, 7), -1, Dimension(4, 8), -1, Dimension(4, 8), -1, 1, 3}));
(PartialShape{Dimension(1, 3), Dimension(2, 7), -1, Dimension(4, 8), -1, Dimension(4, 8), -1, 1, 3}));
}
TYPED_TEST_P(ArithmeticOperator, dynamic_shape_intervals_a_rank_smaller_broadcast_numpy) {
// `A` rank smaller
auto A = std::make_shared<op::Parameter>(element::f32,
PartialShape{Dimension(1, 3), Dimension(4, 8), -1, 1, -1, 1, 3});
auto A =
std::make_shared<op::Parameter>(element::f32, PartialShape{Dimension(1, 3), Dimension(4, 8), -1, 1, -1, 1, 3});
auto B = std::make_shared<op::Parameter>(
element::f32,
PartialShape{Dimension(1, 3), Dimension(2, 7), -1, 1, Dimension(1, 3), Dimension(4, 8), -1, 1, 3});
@ -331,7 +330,7 @@ TYPED_TEST_P(ArithmeticOperator, dynamic_shape_intervals_a_rank_smaller_broadcas
EXPECT_EQ(op->get_element_type(), element::f32);
EXPECT_EQ(op->get_output_partial_shape(0),
(PartialShape{Dimension(1, 3), Dimension(2, 7), -1, Dimension(4, 8), -1, Dimension(4, 8), -1, 1, 3}));
(PartialShape{Dimension(1, 3), Dimension(2, 7), -1, Dimension(4, 8), -1, Dimension(4, 8), -1, 1, 3}));
}
TYPED_TEST_P(ArithmeticOperator, dynamic_shape_intervals_b_rank_smaller_broadcast_numpy) {
@ -339,18 +338,18 @@ TYPED_TEST_P(ArithmeticOperator, dynamic_shape_intervals_b_rank_smaller_broadcas
auto A = std::make_shared<op::Parameter>(
element::f32,
PartialShape{Dimension(1, 3), Dimension(2, 7), -1, 1, Dimension(1, 3), Dimension(4, 8), -1, 1, 3});
auto B = std::make_shared<op::Parameter>(element::f32,
PartialShape{Dimension(1, 3), Dimension(4, 8), -1, 1, -1, 1, 3});
auto B =
std::make_shared<op::Parameter>(element::f32, PartialShape{Dimension(1, 3), Dimension(4, 8), -1, 1, -1, 1, 3});
const auto op = std::make_shared<TypeParam>(A, B);
EXPECT_EQ(op->get_element_type(), element::f32);
EXPECT_EQ(op->get_output_partial_shape(0),
(PartialShape{Dimension(1, 3), Dimension(2, 7), -1, Dimension(4, 8), -1, Dimension(4, 8), -1, 1, 3}));
(PartialShape{Dimension(1, 3), Dimension(2, 7), -1, Dimension(4, 8), -1, Dimension(4, 8), -1, 1, 3}));
}
TYPED_TEST_P(ArithmeticOperator, dynamic_shape_intervals_broadcast_pdpd) {
// TODO: PDPD broadcast review, ticket: 93618
// TODO: PDPD broadcast review, ticket: 93618
{ // Equal rank
auto A = std::make_shared<op::Parameter>(
element::f32,

View File

@ -8,7 +8,6 @@
#include "openvino/op/op.hpp"
#include "openvino/opsets/opset8.hpp"
using namespace ov;
template <class T>

View File

@ -8,7 +8,6 @@
#include "openvino/op/op.hpp"
#include "openvino/opsets/opset8.hpp"
using namespace ov;
template <class T>

View File

@ -9,52 +9,43 @@
using namespace std;
using namespace ngraph;
TEST(type_prop, log_softmax)
{
TEST(type_prop, log_softmax) {
auto data = make_shared<op::Parameter>(element::f32, Shape{1, 3, 6});
auto log_softmax_func = make_shared<op::v5::LogSoftmax>(data, 1);
EXPECT_EQ(log_softmax_func->get_element_type(), element::f32);
EXPECT_EQ(log_softmax_func->get_shape(), (Shape{1, 3, 6}));
}
TEST(type_prop, log_softmax_incorrect_axis)
{
TEST(type_prop, log_softmax_incorrect_axis) {
const auto data = make_shared<op::Parameter>(element::f32, Shape{1, 3, 6});
try
{
try {
auto log_softmax_func = make_shared<op::v5::LogSoftmax>(data, 3);
FAIL() << "LogSoftmax node was created with incorrect axis.";
}
catch (const NodeValidationFailure& error)
{
EXPECT_HAS_SUBSTRING(
error.what(),
std::string("Reduction axis (3) is out of bounds");
} catch (const NodeValidationFailure& error) {
EXPECT_HAS_SUBSTRING(error.what(), std::string("Reduction axis (3) is out of bounds"));
}
}
TEST(type_prop, log_softmax_partial)
{
// TEST(type_prop, log_softmax_partial)
// {
// auto data = make_shared<op::Parameter>(element::f32, PartialShape{1, Dimension::dynamic(), 6});
// auto log_softmax_func = make_shared<op::v5::LogSoftmax>(data, 1);
// EXPECT_EQ(log_softmax_func->get_element_type(), element::f32);
// ASSERT_TRUE(log_softmax_func->get_output_partial_shape(0).same_scheme(
// (PartialShape{1, Dimension::dynamic(), 6})));
//
// // rank unknown
// auto log_softmax_partial = make_shared<op::v5::LogSoftmax>(
// make_shared<op::Parameter>(element::f32, PartialShape::dynamic()));
// ASSERT_TRUE(
// log_softmax_partial->get_output_partial_shape(0).same_scheme(PartialShape::dynamic()));
// }
TEST(type_prop, log_softmax_partial_static_rank) {
auto data = make_shared<op::Parameter>(element::f32, PartialShape{1, Dimension::dynamic(), 6});
auto log_softmax_func = make_shared<op::v5::LogSoftmax>(data, 1);
EXPECT_EQ(log_softmax_func->get_element_type(), element::f32);
ASSERT_TRUE(log_softmax_func->get_output_partial_shape(0).same_scheme(
(PartialShape{1, Dimension::dynamic(), 6})));
// rank unknown
auto log_softmax_partial = make_shared<op::v5::LogSoftmax>(
make_shared<op::Parameter>(element::f32, PartialShape::dynamic()));
ASSERT_TRUE(
log_softmax_partial->get_output_partial_shape(0).same_scheme(PartialShape::dynamic()));
}
TEST(type_prop, log_softmax_partial_static_rank)
{
auto data = make_shared<op::Parameter>(element::f32, PartialShape{1, Dimension::dynamic(), 6});
auto log_softmax_func = make_shared<op::v5::LogSoftmax>(data, 1);
EXPECT_EQ(log_softmax_func->get_element_type(), element::f32);
ASSERT_TRUE(log_softmax_func->get_output_partial_shape(0).same_scheme(
(PartialShape{1, Dimension::dynamic(), 6})));
ASSERT_TRUE(log_softmax_func->get_output_partial_shape(0).same_scheme((PartialShape{1, Dimension::dynamic(), 6})));
ASSERT_TRUE(log_softmax_func->get_output_partial_shape(0).rank().is_static());
}

View File

@ -9,24 +9,19 @@
#include "util/type_prop.hpp"
template <typename T, ngraph::element::Type_t ELEMENT_TYPE>
class LogicalOperatorType
{
class LogicalOperatorType {
public:
using op_type = T;
static constexpr ngraph::element::Type_t element_type = ELEMENT_TYPE;
};
template <typename T>
class LogicalOperatorTypeProp : public testing::Test
{
};
class LogicalOperatorTypeProp : public testing::Test {};
class LogicalOperatorTypeName
{
class LogicalOperatorTypeName {
public:
template <typename T>
static std::string GetName(int)
{
static std::string GetName(int) {
using OP_Type = typename T::op_type;
const ngraph::Node::type_info_t typeinfo = OP_Type::get_type_info_static();
return typeinfo.name;
@ -35,77 +30,59 @@ public:
TYPED_TEST_SUITE_P(LogicalOperatorTypeProp);
namespace
{
template <typename T>
void incorrect_init(const ngraph::element::Type& type,
const std::string& err,
const ngraph::Shape& shape1 = {1, 3, 6},
const ngraph::Shape& shape2 = {1, 3, 6})
{
auto input1 = std::make_shared<ngraph::op::Parameter>(type, shape1);
auto input2 = std::make_shared<ngraph::op::Parameter>(type, shape2);
try
{
auto op = std::make_shared<T>(input1, input2);
}
catch (const ngraph::NodeValidationFailure& error)
{
EXPECT_HAS_SUBSTRING(error.what(), err);
}
namespace {
template <typename T>
void incorrect_init(const ngraph::element::Type& type,
const std::string& err,
const ngraph::Shape& shape1 = {1, 3, 6},
const ngraph::Shape& shape2 = {1, 3, 6}) {
auto input1 = std::make_shared<ngraph::op::Parameter>(type, shape1);
auto input2 = std::make_shared<ngraph::op::Parameter>(type, shape2);
try {
auto op = std::make_shared<T>(input1, input2);
} catch (const ngraph::NodeValidationFailure& error) {
EXPECT_HAS_SUBSTRING(error.what(), err);
}
} // namespace
}
} // namespace
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_f32)
{
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_f32) {
using OP_Type = typename TypeParam::op_type;
incorrect_init<OP_Type>(
ngraph::element::f32,
"Operands for logical operators must have boolean element type but have element type f32");
incorrect_init<OP_Type>(ngraph::element::f32,
"Operands for logical operators must have boolean element type but have element type f32");
}
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_f64)
{
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_f64) {
using OP_Type = typename TypeParam::op_type;
incorrect_init<OP_Type>(
ngraph::element::f64,
"Operands for logical operators must have boolean element type but have element type f64");
incorrect_init<OP_Type>(ngraph::element::f64,
"Operands for logical operators must have boolean element type but have element type f64");
}
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_i32)
{
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_i32) {
using OP_Type = typename TypeParam::op_type;
incorrect_init<OP_Type>(
ngraph::element::i32,
"Operands for logical operators must have boolean element type but have element type i32");
incorrect_init<OP_Type>(ngraph::element::i32,
"Operands for logical operators must have boolean element type but have element type i32");
}
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_i64)
{
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_i64) {
using OP_Type = typename TypeParam::op_type;
incorrect_init<OP_Type>(
ngraph::element::i64,
"Operands for logical operators must have boolean element type but have element type i64");
incorrect_init<OP_Type>(ngraph::element::i64,
"Operands for logical operators must have boolean element type but have element type i64");
}
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_u32)
{
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_u32) {
using OP_Type = typename TypeParam::op_type;
incorrect_init<OP_Type>(
ngraph::element::u32,
"Operands for logical operators must have boolean element type but have element type u32");
incorrect_init<OP_Type>(ngraph::element::u32,
"Operands for logical operators must have boolean element type but have element type u32");
}
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_u64)
{
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_type_u64) {
using OP_Type = typename TypeParam::op_type;
incorrect_init<OP_Type>(
ngraph::element::u64,
"Operands for logical operators must have boolean element type but have element type u64");
incorrect_init<OP_Type>(ngraph::element::u64,
"Operands for logical operators must have boolean element type but have element type u64");
}
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_shape)
{
TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_shape) {
using OP_Type = typename TypeParam::op_type;
incorrect_init<OP_Type>(ngraph::element::boolean,
"Argument shapes are inconsistent",
@ -113,14 +90,11 @@ TYPED_TEST_P(LogicalOperatorTypeProp, incorrect_shape)
ngraph::Shape{1, 2, 3});
}
TYPED_TEST_P(LogicalOperatorTypeProp, broadcast)
{
TYPED_TEST_P(LogicalOperatorTypeProp, broadcast) {
using OP_Type = typename TypeParam::op_type;
auto input1 =
std::make_shared<ngraph::op::Parameter>(ngraph::element::boolean, ngraph::Shape{1, 1, 6});
auto input2 =
std::make_shared<ngraph::op::Parameter>(ngraph::element::boolean, ngraph::Shape{1, 3, 1});
auto input1 = std::make_shared<ngraph::op::Parameter>(ngraph::element::boolean, ngraph::Shape{1, 1, 6});
auto input2 = std::make_shared<ngraph::op::Parameter>(ngraph::element::boolean, ngraph::Shape{1, 3, 1});
auto logical_and = std::make_shared<OP_Type>(input1, input2);

View File

@ -9,8 +9,7 @@
using namespace std;
using namespace ngraph;
struct ReduceParams
{
struct ReduceParams {
PartialShape data_ps;
element::Type data_et;
Shape axes_ps;
@ -20,18 +19,13 @@ struct ReduceParams
};
template <class T>
static std::shared_ptr<Node> makeReduceOp(const ReduceParams& p, bool axes_as_param = false)
{
static std::shared_ptr<Node> makeReduceOp(const ReduceParams& p, bool axes_as_param = false) {
auto in_data = make_shared<op::Parameter>(p.data_et, p.data_ps);
shared_ptr<Node> in_axes;
if (axes_as_param)
{
if (axes_as_param) {
in_axes = make_shared<op::Parameter>(p.axes_et, p.axes_ps);
}
else
{
if (shape_size(p.axes_ps) != p.axes.size())
{
} else {
if (shape_size(p.axes_ps) != p.axes.size()) {
throw ngraph_error("Axes shape does not match with axes elements");
}
in_axes = make_shared<op::Constant>(p.axes_et, p.axes_ps, p.axes);
@ -40,14 +34,11 @@ static std::shared_ptr<Node> makeReduceOp(const ReduceParams& p, bool axes_as_pa
}
template <class T>
class ReduceTest : public testing::Test
{
};
class ReduceTest : public testing::Test {};
TYPED_TEST_SUITE_P(ReduceTest);
TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer)
{
TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer) {
PartialShape data_ps{3, 4, 5};
element::Type data_et = element::dynamic;
@ -64,8 +55,7 @@ TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_keep_dims)
{
TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_keep_dims) {
PartialShape data_ps{3, 4, 5};
element::Type data_et = element::dynamic;
@ -82,8 +72,7 @@ TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_keep_dims)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_scalar_axis)
{
TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_scalar_axis) {
PartialShape data_ps{3, 4, 5};
element::Type data_et = element::dynamic;
@ -100,8 +89,7 @@ TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_scalar_axis)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_axes_as_param)
{
TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_axes_as_param) {
PartialShape data_ps{3, 4, 5};
element::Type data_et = element::dynamic;
@ -119,8 +107,7 @@ TYPED_TEST_P(ReduceTest, reduce_basic_shape_infer_axes_as_param)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_static)
{
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_static) {
PartialShape data_ps{3, 4, 5, Dimension::dynamic()};
element::Type data_et = element::dynamic;
@ -137,8 +124,7 @@ TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_static)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_static_keep_dims)
{
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_static_keep_dims) {
PartialShape data_ps{3, 4, 5, Dimension::dynamic()};
element::Type data_et = element::dynamic;
@ -155,8 +141,7 @@ TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_static_keep_dims)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_not_static)
{
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_not_static) {
PartialShape data_ps{Dimension::dynamic(), 4, 5, Dimension::dynamic()};
element::Type data_et = element::dynamic;
@ -173,8 +158,7 @@ TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_not_static)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_not_static_keep_dims)
{
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_not_static_keep_dims) {
PartialShape data_ps{Dimension::dynamic(), 4, 5, Dimension::dynamic()};
element::Type data_et = element::dynamic;
@ -191,8 +175,7 @@ TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_reduced_axes_not_static_keep_dims)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_data)
{
TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_data) {
PartialShape data_ps{PartialShape::dynamic()};
element::Type data_et = element::dynamic;
@ -209,8 +192,7 @@ TYPED_TEST_P(ReduceTest, reduce_dynamic_shape_data)
ASSERT_EQ(reduce_op->get_output_partial_shape(0), out_ps);
}
TYPED_TEST_P(ReduceTest, reduce_invalid_axis_out_of_range)
{
TYPED_TEST_P(ReduceTest, reduce_invalid_axis_out_of_range) {
PartialShape data_ps{1, 2, 3};
element::Type data_et = element::dynamic;
@ -221,23 +203,17 @@ TYPED_TEST_P(ReduceTest, reduce_invalid_axis_out_of_range)
bool keep_dims = false;
const ReduceParams params{data_ps, data_et, axes_ps, axes, axes_et, keep_dims};
try
{
try {
auto reduce_op = makeReduceOp<TypeParam>(params);
FAIL() << "Invalid axes values not detected";
}
catch (const NodeValidationFailure& error)
{
} catch (const NodeValidationFailure& error) {
EXPECT_HAS_SUBSTRING(error.what(), "out of the tensor rank range");
}
catch (...)
{
} catch (...) {
FAIL() << "Axes input values validation check failed for unexpected reason";
}
}
TYPED_TEST_P(ReduceTest, reduce_invalid_axes_shape)
{
TYPED_TEST_P(ReduceTest, reduce_invalid_axes_shape) {
PartialShape data_ps{1, 2, 3};
element::Type data_et = element::dynamic;
@ -248,23 +224,17 @@ TYPED_TEST_P(ReduceTest, reduce_invalid_axes_shape)
bool keep_dims = true;
const ReduceParams params{data_ps, data_et, axes_ps, axes, axes_et, keep_dims};
try
{
try {
auto reduce_op = makeReduceOp<TypeParam>(params);
FAIL() << "Invalid shape of axes input not detected";
}
catch (const NodeValidationFailure& error)
{
} catch (const NodeValidationFailure& error) {
EXPECT_HAS_SUBSTRING(error.what(), "Axes input must be a scalar or 1D input.");
}
catch (...)
{
} catch (...) {
FAIL() << "Axes input shape validation check failed for unexpected reason";
}
}
TYPED_TEST_P(ReduceTest, reduce_invalid_axes_et)
{
TYPED_TEST_P(ReduceTest, reduce_invalid_axes_et) {
element::Type data_et = element::dynamic;
PartialShape data_ps{1, 2, 3};
@ -275,17 +245,12 @@ TYPED_TEST_P(ReduceTest, reduce_invalid_axes_et)
bool keep_dims = true;
const ReduceParams params{data_ps, data_et, axes_ps, axes, axes_et, keep_dims};
try
{
try {
auto reduce_op = makeReduceOp<TypeParam>(params);
FAIL() << "Invalid element type of axes input not detected";
}
catch (const NodeValidationFailure& error)
{
} catch (const NodeValidationFailure& error) {
EXPECT_HAS_SUBSTRING(error.what(), "Element type of axes input must be integer.");
}
catch (...)
{
} catch (...) {
FAIL() << "Axes input element type validation check failed for unexpected reason";
}
}
@ -305,14 +270,11 @@ REGISTER_TYPED_TEST_SUITE_P(ReduceTest,
reduce_invalid_axes_et);
template <class T>
class ReduceArithmeticTest : public testing::Test
{
};
class ReduceArithmeticTest : public testing::Test {};
TYPED_TEST_SUITE_P(ReduceArithmeticTest);
TYPED_TEST_P(ReduceArithmeticTest, reduce_arithmetic_invalid_data_et)
{
TYPED_TEST_P(ReduceArithmeticTest, reduce_arithmetic_invalid_data_et) {
element::Type data_et = element::boolean;
PartialShape data_ps{1, 2, 3};
@ -323,17 +285,12 @@ TYPED_TEST_P(ReduceArithmeticTest, reduce_arithmetic_invalid_data_et)
bool keep_dims = true;
const ReduceParams params{data_ps, data_et, axes_ps, axes, axes_et, keep_dims};
try
{
try {
auto reduce_op = makeReduceOp<TypeParam>(params);
FAIL() << "Invalid element type of data input not detected";
}
catch (const NodeValidationFailure& error)
{
} catch (const NodeValidationFailure& error) {
EXPECT_HAS_SUBSTRING(error.what(), "Element type of data input must be numeric.");
}
catch (...)
{
} catch (...) {
FAIL() << "Data input element type validation check failed for unexpected reason";
}
}
@ -341,14 +298,11 @@ TYPED_TEST_P(ReduceArithmeticTest, reduce_arithmetic_invalid_data_et)
REGISTER_TYPED_TEST_SUITE_P(ReduceArithmeticTest, reduce_arithmetic_invalid_data_et);
template <class T>
class ReduceLogicalTest : public testing::Test
{
};
class ReduceLogicalTest : public testing::Test {};
TYPED_TEST_SUITE_P(ReduceLogicalTest);
TYPED_TEST_P(ReduceLogicalTest, reduce_logical_invalid_data_et)
{
TYPED_TEST_P(ReduceLogicalTest, reduce_logical_invalid_data_et) {
std::vector<element::Type> element_types{element::f32, element::i32, element::u32};
PartialShape data_ps{1, 2, 3};
@ -358,20 +312,14 @@ TYPED_TEST_P(ReduceLogicalTest, reduce_logical_invalid_data_et)
bool keep_dims = true;
for (const auto& data_et : element_types)
{
for (const auto& data_et : element_types) {
const ReduceParams params{data_ps, data_et, axes_ps, axes, axes_et, keep_dims};
try
{
try {
auto reduce_op = makeReduceOp<TypeParam>(params);
FAIL() << "Invalid element type of data input not detected";
}
catch (const NodeValidationFailure& error)
{
} catch (const NodeValidationFailure& error) {
EXPECT_HAS_SUBSTRING(error.what(), "Element type of data input must be boolean.");
}
catch (...)
{
} catch (...) {
FAIL() << "Data input element type validation check failed for unexpected reason";
}
}

View File

@ -7,7 +7,6 @@
#include "gtest/gtest.h"
#include "ngraph/ngraph.hpp"
using namespace ngraph;
template <class T>

View File

@ -8,24 +8,19 @@
#include "util/visitor.hpp"
template <typename T, ngraph::element::Type_t ELEMENT_TYPE>
class BinaryOperatorType
{
class BinaryOperatorType {
public:
using op_type = T;
static constexpr ngraph::element::Type_t element_type = ELEMENT_TYPE;
};
template <typename T>
class BinaryOperatorVisitor : public testing::Test
{
};
class BinaryOperatorVisitor : public testing::Test {};
class BinaryOperatorTypeName
{
class BinaryOperatorTypeName {
public:
template <typename T>
static std::string GetName(int)
{
static std::string GetName(int) {
using OP_Type = typename T::op_type;
constexpr ngraph::element::Type precision(T::element_type);
const ngraph::Node::type_info_t typeinfo = OP_Type::get_type_info_static();
@ -35,16 +30,13 @@ public:
TYPED_TEST_SUITE_P(BinaryOperatorVisitor);
TYPED_TEST_P(BinaryOperatorVisitor, Auto_Broadcast)
{
TYPED_TEST_P(BinaryOperatorVisitor, Auto_Broadcast) {
using OP_Type = typename TypeParam::op_type;
const ngraph::element::Type_t element_type = TypeParam::element_type;
ngraph::test::NodeBuilder::get_ops().register_factory<OP_Type>();
const auto A =
std::make_shared<ngraph::op::Parameter>(element_type, ngraph::PartialShape{1, 2, 3});
const auto B =
std::make_shared<ngraph::op::Parameter>(element_type, ngraph::PartialShape{3, 2, 1});
const auto A = std::make_shared<ngraph::op::Parameter>(element_type, ngraph::PartialShape{1, 2, 3});
const auto B = std::make_shared<ngraph::op::Parameter>(element_type, ngraph::PartialShape{3, 2, 1});
auto auto_broadcast = ngraph::op::AutoBroadcastType::NUMPY;
@ -57,16 +49,13 @@ TYPED_TEST_P(BinaryOperatorVisitor, Auto_Broadcast)
EXPECT_EQ(op_func->get_autob(), g_op_func->get_autob());
}
TYPED_TEST_P(BinaryOperatorVisitor, No_Broadcast)
{
TYPED_TEST_P(BinaryOperatorVisitor, No_Broadcast) {
using OP_Type = typename TypeParam::op_type;
const ngraph::element::Type_t element_type = TypeParam::element_type;
ngraph::test::NodeBuilder::get_ops().register_factory<OP_Type>();
const auto A =
std::make_shared<ngraph::op::Parameter>(element_type, ngraph::PartialShape{1, 2, 3});
const auto B =
std::make_shared<ngraph::op::Parameter>(element_type, ngraph::PartialShape{1, 2, 3});
const auto A = std::make_shared<ngraph::op::Parameter>(element_type, ngraph::PartialShape{1, 2, 3});
const auto B = std::make_shared<ngraph::op::Parameter>(element_type, ngraph::PartialShape{1, 2, 3});
const auto op_func = std::make_shared<OP_Type>(A, B);
ngraph::test::NodeBuilder builder(op_func, {A, B});

View File

@ -2,10 +2,9 @@
// SPDX-License-Identifier: Apache-2.0
//
#include "unary_ops.hpp"
#include "openvino/opsets/opset10.hpp"
#include "unary_ops.hpp"
using Types = ::testing::Types<UnaryOperatorType<ov::op::v10::IsFinite, ngraph::element::f32>>;
INSTANTIATE_TYPED_TEST_SUITE_P(visitor_without_attribute, UnaryOperatorVisitor, Types, UnaryOperatorTypeName);

View File

@ -3,10 +3,8 @@
//
#include "gtest/gtest.h"
#include "ngraph/ngraph.hpp"
#include "ngraph/op/util/attr_types.hpp"
#include "util/visitor.hpp"
using namespace std;
@ -15,24 +13,19 @@ using ngraph::test::NodeBuilder;
using ngraph::test::ValueMap;
template <typename T, ngraph::element::Type_t ELEMENT_TYPE>
class ReduceOperatorType
{
class ReduceOperatorType {
public:
using op_type = T;
static constexpr ngraph::element::Type_t element_type = ELEMENT_TYPE;
};
template <typename T>
class ReduceOperatorVisitor : public ::testing::Test
{
};
class ReduceOperatorVisitor : public ::testing::Test {};
class ReduceOperatorTypeName
{
class ReduceOperatorTypeName {
public:
template <typename T>
static std::string GetName(int)
{
static std::string GetName(int) {
using OP_Type = typename T::op_type;
constexpr ngraph::element::Type precision(T::element_type);
const ngraph::Node::type_info_t typeinfo = OP_Type::get_type_info_static();
@ -42,8 +35,7 @@ public:
TYPED_TEST_SUITE_P(ReduceOperatorVisitor);
TYPED_TEST_P(ReduceOperatorVisitor, keep_dims_3D)
{
TYPED_TEST_P(ReduceOperatorVisitor, keep_dims_3D) {
using OP_Type = typename TypeParam::op_type;
Shape in_shape{3, 4, 5};
@ -66,8 +58,7 @@ TYPED_TEST_P(ReduceOperatorVisitor, keep_dims_3D)
EXPECT_EQ(g_reduce_op->get_keep_dims(), reduce_op->get_keep_dims());
}
TYPED_TEST_P(ReduceOperatorVisitor, do_not_keep_dims_3D)
{
TYPED_TEST_P(ReduceOperatorVisitor, do_not_keep_dims_3D) {
using OP_Type = typename TypeParam::op_type;
Shape in_shape{3, 4, 5};
@ -90,6 +81,4 @@ TYPED_TEST_P(ReduceOperatorVisitor, do_not_keep_dims_3D)
EXPECT_EQ(g_reduce_op->get_keep_dims(), reduce_op->get_keep_dims());
}
REGISTER_TYPED_TEST_SUITE_P(ReduceOperatorVisitor,
keep_dims_3D,
do_not_keep_dims_3D);
REGISTER_TYPED_TEST_SUITE_P(ReduceOperatorVisitor, keep_dims_3D, do_not_keep_dims_3D);

View File

@ -18,5 +18,6 @@ ov_add_test_target(
"${CMAKE_CURRENT_SOURCE_DIR}/../include"
ADD_CLANG_FORMAT
LABELS
IR_FRONTEND
OV
IR_FE
)

View File

@ -122,6 +122,8 @@ foreach(BACKEND_NAME ${ACTIVE_BACKEND_LIST})
endforeach()
add_executable(ov_onnx_frontend_tests ${SRC})
add_test(NAME ov_onnx_frontend_tests COMMAND ov_onnx_frontend_tests)
set_property(TEST ov_onnx_frontend_tests PROPERTY LABELS OV ONNX_FE)
add_dependencies(ov_onnx_frontend_tests template_extension)

View File

@ -4,19 +4,24 @@
set(TARGET_NAME "paddle_tests")
file(GLOB SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
add_executable(${TARGET_NAME} ${SRC})
target_link_libraries(${TARGET_NAME} PRIVATE cnpy frontend_shared_test_classes
openvino_paddle_frontend openvino::runtime gtest_main_manifest)
add_clang_format_target(${TARGET_NAME}_clang FOR_TARGETS ${TARGET_NAME})
install(TARGETS ${TARGET_NAME}
RUNTIME DESTINATION tests
COMPONENT tests
EXCLUDE_FROM_ALL)
ov_add_test_target(
NAME ${TARGET_NAME}
ROOT ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDENCIES
paddle_test_models
openvino_paddle_frontend
paddle_fe_standalone_build_test
LINK_LIBRARIES
cnpy
frontend_shared_test_classes
openvino_paddle_frontend
openvino::runtime
gtest_main_manifest
ADD_CLANG_FORMAT
LABELS
OV
PADDLE_FE
)
# Test model generating
ov_check_pip_packages(REQUIREMENTS_FILE "${CMAKE_CURRENT_SOURCE_DIR}/requirements.txt"
@ -72,13 +77,9 @@ else()
add_custom_target(paddle_test_models DEPENDS unable_build_paddle_models.txt)
endif()
add_dependencies(${TARGET_NAME} paddle_test_models)
add_dependencies(${TARGET_NAME} openvino_paddle_frontend)
# Fuzzy tests for PaddlePaddle use IE_CPU engine
if(ENABLE_INTEL_CPU)
add_dependencies(${TARGET_NAME} openvino_intel_cpu_plugin)
endif()
add_subdirectory(standalone_build)
add_dependencies(${TARGET_NAME} paddle_fe_standalone_build_test)

View File

@ -7,4 +7,3 @@
#include <string>
static const std::string PADDLE_FE = "paddle";

View File

@ -4,20 +4,22 @@
set(TARGET_NAME "ov_tensorflow_frontend_tests")
file(GLOB SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
add_executable(${TARGET_NAME} ${SRC})
target_link_libraries(${TARGET_NAME} PRIVATE
gtest_main_manifest frontend_shared_test_classes openvino_tensorflow_frontend
openvino_tensorflow_frontend_static_tests)
add_clang_format_target(${TARGET_NAME}_clang FOR_TARGETS ${TARGET_NAME})
install(TARGETS ${TARGET_NAME}
RUNTIME DESTINATION tests
COMPONENT tests
EXCLUDE_FROM_ALL)
ov_add_test_target(
NAME ${TARGET_NAME}
ROOT ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDENCIES
tensorflow_test_models
tensorflow_fe_standalone_build_test
LINK_LIBRARIES
gtest_main_manifest
frontend_shared_test_classes
openvino_tensorflow_frontend
openvino_tensorflow_frontend_static_tests
ADD_CLANG_FORMAT
LABELS
OV
TF_FE
)
# Test model generating
ov_check_pip_package(REQUIREMENT tensorflow
@ -67,12 +69,9 @@ else()
add_custom_target(tensorflow_test_models DEPENDS unable_build_tensorflow_models.txt)
endif()
add_dependencies(${TARGET_NAME} tensorflow_test_models)
get_target_property(TENSORFLOW_FRONTEND_SRC_DIR openvino_tensorflow_frontend SOURCE_DIR)
add_subdirectory(standalone_build)
add_dependencies(${TARGET_NAME} tensorflow_fe_standalone_build_test)
#
# Install TensorFlow frontend for tests reasons

View File

@ -63,6 +63,7 @@ addIeTargetTest(
DEPENDENCIES ${DEPENDENCIES}
LABELS
IE
OV
)
target_compile_definitions(${TARGET_NAME} PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:"BUILD_SHARED_LIBS">)

View File

@ -24,6 +24,7 @@ addIeTargetTest(
mock_engine
LABELS
IE
OV
)
if(SUGGEST_OVERRIDE_SUPPORTED)