From e42548137e237535e156cd3d6f2187a2dfb4bec7 Mon Sep 17 00:00:00 2001 From: Katarzyna Mitrus Date: Fri, 7 Jul 2023 12:53:52 +0200 Subject: [PATCH] [Pad-12] Negative pads_begin/end tests for Pad reference implementation (#18344) * Pad ref impl tests for negative pads begin end * Adjust indentation * Remove redundant line from the output * Add tests with removal on middle axis * Add tests with empty result --------- Co-authored-by: Michal Lukaszewski --- .../tests/functional/op_reference/pad.cpp | 276 ++++++++++++++++++ 1 file changed, 276 insertions(+) diff --git a/src/plugins/template/tests/functional/op_reference/pad.cpp b/src/plugins/template/tests/functional/op_reference/pad.cpp index 437618c5f4c..1ca30e499d9 100644 --- a/src/plugins/template/tests/functional/op_reference/pad.cpp +++ b/src/plugins/template/tests/functional/op_reference/pad.cpp @@ -877,6 +877,7 @@ std::vector generateParams() { reference_tests::Tensor(ET, {3, 3}, std::vector{ 1, 2, 3, 4, 5, 6, + 7, 8, 9, }), reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -1}), reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -1}), @@ -1003,6 +1004,281 @@ std::vector generateParams() { op::PadMode::SYMMETRIC, reference_tests::Tensor(ET, {}, std::vector{2112}), "pad_symmetric"), + PadParams( + reference_tests::Tensor(ET, {4, 3}, std::vector{ + 1, 2, 3, + 4, 5, 6, + 7, 8, 9, + 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -1}), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -1}), + reference_tests::Tensor(ET, {2, 1}, std::vector{ + 5, 8 + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_4x3_mode_const"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -1}), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -1}), + reference_tests::Tensor(ET, {1, 2}, std::vector{ + 6, 7 + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_3x4_mode_const"), + PadParams( + reference_tests::Tensor(ET, {2, 2, 3}, std::vector{ + 1, 2, 3, + 4, 5, 6, + + 7, 8, 9, + 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {3}, std::vector{0, 0, 0}), + reference_tests::Tensor(ET_INT, {3}, std::vector{-1, 0, 0}), + reference_tests::Tensor(ET, {1, 2, 3}, std::vector{ + 1, 2, 3, + 4, 5, 6, + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_2x2x3_mode_const_remove_last"), + PadParams( + reference_tests::Tensor(ET, {2, 2, 3}, std::vector{ + 1, 2, 3, + 4, 5, 6, + + 7, 8, 9, + 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {3}, std::vector{-1, 0, 0}), + reference_tests::Tensor(ET_INT, {3}, std::vector{0, 0, 0}), + reference_tests::Tensor(ET, {1, 2, 3}, std::vector{ + 7, 8, 9, + 10, 11, 12 + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_2x2x3_mode_const_remove_first"), + PadParams( + reference_tests::Tensor(ET, {2, 2, 3}, std::vector{ + 1, 2, 3, + 4, 5, 6, + + 7, 8, 9, + 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {3}, std::vector{0, -1, 0}), + reference_tests::Tensor(ET_INT, {3}, std::vector{0, 0, 0}), + reference_tests::Tensor(ET, {2, 1, 3}, std::vector{ + 4, 5, 6, + + 10, 11, 12 + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_2x2x3_mode_const_remove_middle_begin"), + PadParams( + reference_tests::Tensor(ET, {2, 2, 3}, std::vector{ + 1, 2, 3, + 4, 5, 6, + + 7, 8, 9, + 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {3}, std::vector{0, 0, 0}), + reference_tests::Tensor(ET_INT, {3}, std::vector{0, -1, 0}), + reference_tests::Tensor(ET, {2, 1, 3}, std::vector{ + 1, 2, 3, + + 7, 8, 9, + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_2x2x3_mode_const_remove_middle_end"), + PadParams( + reference_tests::Tensor(ET, {2, 2}, std::vector{ + 1, 2, + 3, 4, + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 0}), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 0}), + reference_tests::Tensor(ET, {0, 2}, std::vector{}), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{10}), + "pad_neg_2x2_reult_empty_mode_const"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-2, -2}), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -2}), + reference_tests::Tensor(ET, {0, 0}, std::vector{}), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{10}), + "pad_neg_3x4_reult_empty_mode_const"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 0}), + reference_tests::Tensor(ET_INT, {2}, std::vector{0, -2}), + reference_tests::Tensor(ET, {2, 2}, std::vector{ + 5, 6, + 9, 10 + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_mix_cross_3x4_mode_const"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -2}), + reference_tests::Tensor(ET_INT, {2}, std::vector{2, 3}), + reference_tests::Tensor(ET, {4, 5}, std::vector{ + 7, 8, 0, 0, 0, + 11, 12, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_begin_3x4_mode_const"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{2, 3}), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, -2}), + reference_tests::Tensor(ET, {4, 5}, std::vector{ + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 0, 0, 0, 1, 2, + 0, 0, 0, 5, 6, + }), + op::PadMode::CONSTANT, + reference_tests::Tensor(ET, {}, std::vector{0}), + "pad_neg_end_3x4_mode_const"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{2, -1}), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 3}), + reference_tests::Tensor(ET, {4, 6}, std::vector{ + 10, 11, 12, 11, 10, 9, + 6, 7, 8, 7, 6, 5, + 2, 3, 4, 3, 2, 1, + 6, 7, 8, 7, 6, 5, + }), + op::PadMode::REFLECT, + "pad_neg_ones_cross_3x4_mode_reflect"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12, + + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-4, 3}), + reference_tests::Tensor(ET_INT, {2}, std::vector{2, -5}), + reference_tests::Tensor(ET, {1, 2}, std::vector{ + 4, 3, + }), + op::PadMode::REFLECT, + "pad_neg_mix_cross_3x4_mode_reflect"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{2, -1}), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 3}), + reference_tests::Tensor(ET, {4, 6}, std::vector{ + 2, 3, 4, 4, 4, 4, + 2, 3, 4, 4, 4, 4, + 2, 3, 4, 4, 4, 4, + 6, 7, 8, 8, 8, 8, + }), + op::PadMode::EDGE, + "pad_neg_ones_cross_3x4_mode_edge"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 0}), + reference_tests::Tensor(ET_INT, {2}, std::vector{0, -2}), + reference_tests::Tensor(ET, {2, 2}, std::vector{ + 5, 6, + 9, 10 + }), + op::PadMode::EDGE, + "pad_neg_mix_cross_3x4_mode_edge"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 0}), + reference_tests::Tensor(ET_INT, {2}, std::vector{0, -2}), + reference_tests::Tensor(ET, {2, 2}, std::vector{ + 5, 6, + 9, 10 + }), + op::PadMode::REFLECT, + "pad_neg_mix_cross_3x4_mode_reflect"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 0}), + reference_tests::Tensor(ET_INT, {2}, std::vector{0, -2}), + reference_tests::Tensor(ET, {2, 2}, std::vector{ + 5, 6, + 9, 10 + }), + op::PadMode::SYMMETRIC, + "pad_neg_mix_cross_3x4_mode_symmetric"), + PadParams( + reference_tests::Tensor(ET, {3, 4}, std::vector{ + 1, 2, 3, 4, + 5, 6, 7, 8, + 9, 10, 11, 12 + }), + reference_tests::Tensor(ET_INT, {2}, std::vector{2, -1}), + reference_tests::Tensor(ET_INT, {2}, std::vector{-1, 3}), + reference_tests::Tensor(ET, {4, 6}, std::vector{ + 6, 7, 8, 8, 7, 6, + 2, 3, 4, 4, 3, 2, + 2, 3, 4, 4, 3, 2, + 6, 7, 8, 8, 7, 6, + }), + op::PadMode::SYMMETRIC, + "pad_neg_ones_cross_3x4_mode_symmetric"), }; return params; }