Skip to content

Commit 4cde14a

Browse files
committed
fix name and add tests
1 parent 5f8287c commit 4cde14a

File tree

3 files changed

+66
-2
lines changed

3 files changed

+66
-2
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "layers/ConCatLayer.hpp"
1+
#include "layers/ConñatLayer.hpp"
22

33
namespace it_lab_ai {
44

test/single_layer/test_concatlayer.cpp

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,75 @@
11
#include <vector>
22

33
#include "gtest/gtest.h"
4-
#include "layers/ConCatLayer.hpp"
4+
#include "layers/ConсatLayer.hpp"
55
#include "layers/Tensor.hpp"
66

77
using namespace it_lab_ai;
88

9+
TEST(ConcatLayerTests, ConcatEmptyTensors) {
10+
ConcatLayer layer(0);
11+
12+
Tensor empty1 = make_tensor<float>({}, {0});
13+
Tensor empty2 = make_tensor<float>({}, {2, 0, 3});
14+
15+
Tensor output;
16+
17+
EXPECT_THROW(layer.run({empty1, empty2}, output), std::runtime_error);
18+
}
19+
20+
TEST(ConcatLayerTests, ConcatSingleElementTensors) {
21+
ConcatLayer layer(0);
22+
23+
Tensor single1 = make_tensor<float>({42.0f}, {1});
24+
Tensor single2 = make_tensor<float>({99.0f}, {1});
25+
26+
Tensor output;
27+
28+
layer.run({single1, single2}, output);
29+
30+
ASSERT_EQ(output.get_shape(), Shape({2}));
31+
EXPECT_FLOAT_EQ(output.get<float>({0}), 42.0f);
32+
EXPECT_FLOAT_EQ(output.get<float>({1}), 99.0f);
33+
}
34+
35+
TEST(ConcatLayerTests, ConcatAlongAxisWithSize1) {
36+
ConcatLayer layer(0);
37+
38+
Tensor input1 = make_tensor<float>({1, 2, 3, 4, 5, 6}, {1, 3, 2});
39+
Tensor input2 = make_tensor<float>({7, 8, 9, 10, 11, 12}, {1, 3, 2});
40+
41+
Tensor output;
42+
43+
layer.run({input1, input2}, output);
44+
45+
ASSERT_EQ(output.get_shape(), Shape({2, 3, 2}));
46+
47+
EXPECT_FLOAT_EQ(output.get<float>({0, 0, 0}), 1.0f);
48+
EXPECT_FLOAT_EQ(output.get<float>({0, 0, 1}), 2.0f);
49+
EXPECT_FLOAT_EQ(output.get<float>({0, 1, 0}), 3.0f);
50+
EXPECT_FLOAT_EQ(output.get<float>({0, 1, 1}), 4.0f);
51+
EXPECT_FLOAT_EQ(output.get<float>({0, 2, 0}), 5.0f);
52+
EXPECT_FLOAT_EQ(output.get<float>({0, 2, 1}), 6.0f);
53+
54+
EXPECT_FLOAT_EQ(output.get<float>({1, 0, 0}), 7.0f);
55+
EXPECT_FLOAT_EQ(output.get<float>({1, 0, 1}), 8.0f);
56+
EXPECT_FLOAT_EQ(output.get<float>({1, 1, 0}), 9.0f);
57+
EXPECT_FLOAT_EQ(output.get<float>({1, 1, 1}), 10.0f);
58+
EXPECT_FLOAT_EQ(output.get<float>({1, 2, 0}), 11.0f);
59+
EXPECT_FLOAT_EQ(output.get<float>({1, 2, 1}), 12.0f);
60+
}
61+
62+
TEST(ConcatLayerTests, ConcatScalars) {
63+
ConcatLayer layer(0);
64+
65+
Tensor scalar1 = make_tensor<float>({42.0f}, {});
66+
Tensor scalar2 = make_tensor<float>({99.0f}, {});
67+
68+
Tensor output;
69+
70+
EXPECT_THROW(layer.run({scalar1, scalar2}, output), std::runtime_error);
71+
}
72+
973
TEST(ConcatLayerTests, ConcatSameShapeFloatAxis0) {
1074
ConcatLayer layer;
1175
Tensor input1 = make_tensor<float>({1.0f, 2.0f, 3.0f, 4.0f}, {2, 2});

0 commit comments

Comments
 (0)