Imported Upstream version 1.7.0
[platform/core/ml/nnfw.git] / compiler / angkor / src / ADT / kernel / Shape.test.cpp
1 /*
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *    http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <nncc/core/ADT/kernel/Shape.h>
18
19 #include <gtest/gtest.h>
20
21 TEST(ADT_KERNEL_SHAPE, ctor)
22 {
23   const uint32_t N = 1;
24   const uint32_t C = 3;
25   const uint32_t H = 4;
26   const uint32_t W = 5;
27
28   nncc::core::ADT::kernel::Shape shape{N, C, H, W};
29
30   ASSERT_EQ(N, shape.count());
31   ASSERT_EQ(C, shape.depth());
32   ASSERT_EQ(H, shape.height());
33   ASSERT_EQ(W, shape.width());
34 }
35
36 TEST(ADT_KERNEL_SHAPE, num_elements)
37 {
38   const uint32_t N = 1;
39   const uint32_t C = 3;
40   const uint32_t H = 4;
41   const uint32_t W = 5;
42
43   using nncc::core::ADT::kernel::Shape;
44   using nncc::core::ADT::kernel::num_elements;
45
46   ASSERT_EQ(N * C * H * W, num_elements(Shape{N, C, H, W}));
47 }
48
49 TEST(ADT_KERNEL_SHAPE, operator_eq)
50 {
51   using nncc::core::ADT::kernel::Shape;
52
53   EXPECT_TRUE(Shape(1, 1, 1, 1) == Shape(1, 1, 1, 1));
54   EXPECT_FALSE(Shape(1, 1, 1, 1) == Shape(1, 1, 1, 2));
55   EXPECT_FALSE(Shape(1, 1, 1, 1) == Shape(1, 1, 2, 1));
56   EXPECT_FALSE(Shape(1, 1, 1, 1) == Shape(1, 2, 1, 1));
57   EXPECT_FALSE(Shape(1, 1, 1, 1) == Shape(2, 1, 1, 1));
58 }