1 /**
2 * Copyright 2020 Huawei Technologies Co., Ltd
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 #include <iostream>
17 #include <memory>
18
19 #include "common/common_test.h"
20
21 #include "abstract/dshape.h"
22 #include "utils/log_adapter.h"
23
24 namespace mindspore {
25 namespace abstract {
26 class TestDShape : public UT::Common {
27 public:
28 Shape shp_1;
29 Shape shp_2;
30 Shape shp_3;
31 Shape shp_4;
32 Shape shp_5;
33
34 NoShape shp_noshp_1;
35 NoShape shp_noshp_2;
36
37 TupleShape shp_tuple_1;
38 TupleShape shp_tuple_2;
39 TupleShape shp_tuple_3;
40 TupleShape shp_tuple_4;
TestDShape()41 TestDShape()
42 : shp_1({1, 1}),
43 shp_2({1, 1}),
44 shp_3({1, 2}),
45 shp_4({1}),
46 shp_5({-1, 2}, {1, 2}, {3, 3}),
47
48 shp_noshp_1(),
49 shp_noshp_2(),
50
51 shp_tuple_1({NoShape().Clone(), Shape({1, 1}).Clone()}),
52 shp_tuple_2({NoShape().Clone(), Shape({1, 1, 1}).Clone()}),
53 shp_tuple_3({NoShape().Clone(), Shape({1, 2, 1}).Clone()}),
54 shp_tuple_4({NoShape().Clone()}) {}
55 };
56
TEST_F(TestDShape,EqualTest)57 TEST_F(TestDShape, EqualTest) {
58 ASSERT_TRUE(shp_1 == shp_2);
59 ASSERT_FALSE(shp_1 == shp_3);
60 ASSERT_FALSE(shp_1 == shp_noshp_1);
61
62 ASSERT_TRUE(shp_noshp_1 == shp_noshp_2);
63
64 ASSERT_FALSE(shp_tuple_1 == shp_1);
65 ASSERT_FALSE(shp_tuple_1 == shp_tuple_2);
66 ASSERT_FALSE(shp_tuple_1 == shp_tuple_4);
67 }
TEST_F(TestDShape,ToString)68 TEST_F(TestDShape, ToString) {
69 ASSERT_EQ(shp_3.ToString(), "(1, 2)");
70 ASSERT_EQ(shp_noshp_1.ToString(), "NoShape");
71 ASSERT_EQ(shp_tuple_2.ToString(), "TupleShape(NoShape, (1, 1, 1))");
72 ASSERT_EQ(shp_5.ToString(), "{shape:(-1, 2)|min shape:(1, 2)|max shape:(3, 3)}");
73 }
74
TEST_F(TestDShape,Clone)75 TEST_F(TestDShape, Clone) {
76 ASSERT_EQ(*shp_3.Clone(), shp_3);
77 ASSERT_EQ(*shp_noshp_1.Clone(), shp_noshp_1);
78 ASSERT_EQ(*shp_tuple_2.Clone(), shp_tuple_2);
79 }
80
81 } // namespace abstract
82 } // namespace mindspore
83