@@ -230,4 +230,44 @@ TEST(ConcatLayerTests, ConcatResNetStyle) {
230230 EXPECT_FLOAT_EQ (output[0 ].get <float >({0 , 3 , 0 , 1 }), 14 .0f );
231231 EXPECT_FLOAT_EQ (output[0 ].get <float >({0 , 3 , 1 , 0 }), 15 .0f );
232232 EXPECT_FLOAT_EQ (output[0 ].get <float >({0 , 3 , 1 , 1 }), 16 .0f );
233- }
233+ }
234+
235+ TEST (ConcatLayerTests, ConcatSetOrderMultipleCalls) {
236+ ConcatLayer layer (1 );
237+ std::vector<int > order1 = {0 , 1 , 2 };
238+ std::vector<int > order2 = {2 , 1 , 0 };
239+ std::vector<int > order3;
240+
241+ EXPECT_NO_THROW (layer.setInputOrder (order1));
242+ EXPECT_NO_THROW (layer.setInputOrder (order2));
243+ EXPECT_NO_THROW (layer.setInputOrder (order3));
244+ }
245+
246+ TEST (ConcatLayerTests, ConcatSetOrderAfterRun) {
247+ ConcatLayer layer (0 );
248+ Tensor input1 = make_tensor<int >({1 , 2 , 3 , 4 }, {2 , 2 });
249+ Tensor input2 = make_tensor<int >({5 , 6 , 7 , 8 }, {2 , 2 });
250+ Tensor output;
251+ std::vector<Tensor> inputs{input1, input2};
252+ std::vector<Tensor> outputs{output};
253+ EXPECT_NO_THROW (layer.run (inputs, outputs));
254+ std::vector<int > order = {1 , 0 };
255+ EXPECT_NO_THROW (layer.setInputOrder (order));
256+ EXPECT_NO_THROW (layer.run (inputs, outputs));
257+ }
258+
259+ TEST (ConcatLayerTests, ReorderInputsWithInvalidOrderSize) {
260+ ConcatLayer layer (0 );
261+ Tensor input1 = make_tensor<int >({1 , 2 }, {2 });
262+ Tensor input2 = make_tensor<int >({3 , 4 }, {2 });
263+ std::vector<int > order = {0 };
264+ EXPECT_NO_THROW (layer.setInputOrder (order));
265+ }
266+
267+ TEST (ConcatLayerTests, ReorderInputsWithInvalidIndex) {
268+ ConcatLayer layer (0 );
269+ Tensor input1 = make_tensor<int >({1 , 2 }, {2 });
270+ Tensor input2 = make_tensor<int >({3 , 4 }, {2 });
271+ std::vector<int > order = {0 , 5 };
272+ EXPECT_NO_THROW (layer.setInputOrder (order););
273+ }
0 commit comments