2 * Copyright (c) 2021 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/Service/CircleNodeClone.h"
19 #include <gtest/gtest.h>
21 TEST(CloneNodeTest, clone_TransposeConv)
23 auto g = loco::make_graph();
24 auto node_trconv = g->nodes()->create<luci::CircleTransposeConv>();
25 node_trconv->padding(luci::Padding::SAME);
27 auto gc = loco::make_graph();
28 auto cloned = luci::clone_node(node_trconv, gc.get());
29 ASSERT_NE(nullptr, cloned);
30 ASSERT_EQ(gc.get(), cloned->graph());
32 auto cloned_trconv = dynamic_cast<luci::CircleTransposeConv *>(cloned);
33 ASSERT_NE(nullptr, cloned_trconv);
34 ASSERT_EQ(node_trconv->padding(), cloned_trconv->padding());
35 ASSERT_EQ(node_trconv->fusedActivationFunction(), cloned_trconv->fusedActivationFunction());
38 TEST(CloneNodeTest, clone_TransposeConv_padding_NEG)
40 auto g = loco::make_graph();
41 auto node_trconv = g->nodes()->create<luci::CircleTransposeConv>();
42 node_trconv->padding(luci::Padding::UNDEFINED);
44 auto gc = loco::make_graph();
45 auto cloned = luci::clone_node(node_trconv, gc.get());
46 ASSERT_EQ(nullptr, cloned);
49 TEST(CloneNodeTest, clone_TransposeConv_fAF_NEG)
51 auto g = loco::make_graph();
52 auto node_trconv = g->nodes()->create<luci::CircleTransposeConv>();
53 node_trconv->fusedActivationFunction(luci::FusedActFunc::UNDEFINED);
55 auto gc = loco::make_graph();
56 auto cloned = luci::clone_node(node_trconv, gc.get());
57 ASSERT_EQ(nullptr, cloned);