2 * Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #include "luci/IR/Nodes/CircleUnpack.h"
19 #include "luci/IR/CircleDialect.h"
20 #include "luci/IR/CircleNodeVisitor.h"
22 #include <gtest/gtest.h>
24 TEST(CircleUnpackTest, constructor)
26 luci::CircleUnpack unpack_node;
28 ASSERT_EQ(luci::CircleDialect::get(), unpack_node.dialect());
29 ASSERT_EQ(luci::CircleOpcode::UNPACK, unpack_node.opcode());
31 ASSERT_EQ(nullptr, unpack_node.value());
32 ASSERT_EQ(0, unpack_node.num());
33 ASSERT_EQ(0, unpack_node.axis());
36 TEST(CircleUnpackTest, input_NEG)
38 luci::CircleUnpack unpack_node;
39 luci::CircleUnpack node;
41 unpack_node.value(&node);
42 ASSERT_NE(nullptr, unpack_node.value());
44 unpack_node.value(nullptr);
45 ASSERT_EQ(nullptr, unpack_node.value());
49 ASSERT_NE(0, unpack_node.num());
50 ASSERT_NE(0, unpack_node.axis());
53 TEST(CircleUnpackTest, arity_NEG)
55 luci::CircleUnpack unpack_node;
57 ASSERT_NO_THROW(unpack_node.arg(0));
58 ASSERT_THROW(unpack_node.arg(1), std::out_of_range);
61 TEST(CircleUnpackTest, visit_mutable_NEG)
63 struct TestVisitor final : public luci::CircleNodeMutableVisitor<void>
67 luci::CircleUnpack unpack_node;
70 ASSERT_THROW(unpack_node.accept(&tv), std::exception);
73 TEST(CircleUnpackTest, visit_NEG)
75 struct TestVisitor final : public luci::CircleNodeVisitor<void>
79 luci::CircleUnpack unpack_node;
82 ASSERT_THROW(unpack_node.accept(&tv), std::exception);