Imported Upstream version 1.7.0
[platform/core/ml/nnfw.git] / compiler / luci / lang / src / Nodes / CircleLogistic.test.cpp
1 /*
2  * Copyright (c) 2020 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 "luci/IR/Nodes/CircleLogistic.h"
18
19 #include "luci/IR/CircleDialect.h"
20 #include "luci/IR/CircleNodeVisitor.h"
21
22 #include <gtest/gtest.h>
23
24 TEST(CircleLogisticTest, constructor)
25 {
26   luci::CircleLogistic logistic_node;
27
28   ASSERT_EQ(luci::CircleDialect::get(), logistic_node.dialect());
29   ASSERT_EQ(luci::CircleOpcode::LOGISTIC, logistic_node.opcode());
30
31   ASSERT_EQ(nullptr, logistic_node.x());
32 }
33
34 TEST(CircleLogisticTest, input_NEG)
35 {
36   luci::CircleLogistic logistic_node;
37   luci::CircleLogistic node;
38
39   logistic_node.x(&node);
40   ASSERT_NE(nullptr, logistic_node.x());
41
42   logistic_node.x(nullptr);
43   ASSERT_EQ(nullptr, logistic_node.x());
44 }
45
46 TEST(CircleLogisticTest, arity_NEG)
47 {
48   luci::CircleLogistic logistic_node;
49
50   ASSERT_NO_THROW(logistic_node.arg(0));
51   ASSERT_THROW(logistic_node.arg(1), std::out_of_range);
52 }
53
54 TEST(CircleLogisticTest, visit_mutable_NEG)
55 {
56   struct TestVisitor final : public luci::CircleNodeMutableVisitor<void>
57   {
58   };
59
60   luci::CircleLogistic logistic_node;
61
62   TestVisitor tv;
63   ASSERT_THROW(logistic_node.accept(&tv), std::exception);
64 }
65
66 TEST(CircleLogisticTest, visit_NEG)
67 {
68   struct TestVisitor final : public luci::CircleNodeVisitor<void>
69   {
70   };
71
72   luci::CircleLogistic logistic_node;
73
74   TestVisitor tv;
75   ASSERT_THROW(logistic_node.accept(&tv), std::exception);
76 }