[AppContext] Integrate layer-devel
[platform/core/ml/nntrainer.git] / test / unittest / layers / layers_common_tests.cpp
1 // SPDX-License-Identifier: Apache-2.0
2 /**
3  * Copyright (C) 2020 Jihoon Lee <jhoon.it.lee@samsung.com>
4  *
5  * @file layer_common_tests.cpp
6  * @date 15 June 2021
7  * @brief Common test for nntrainer layers (Param Tests)
8  * @see https://github.com/nnstreamer/nntrainer
9  * @author Jihoon Lee <jhoon.it.lee@samsung.com>
10  * @bug No known bugs except for NYI items
11  */
12
13 #include <layers_common_tests.h>
14
15 #include <app_context.h>
16 #include <layer_devel.h>
17
18 constexpr unsigned SAMPLE_TRIES = 10;
19
20 LayerSemantics::~LayerSemantics() {}
21
22 void LayerSemantics::SetUp() {
23   auto f = std::get<0>(GetParam());
24   layer = std::move(f({}));
25   std::tie(std::ignore, expected_type, valid_properties, invalid_properties,
26            options) = GetParam();
27 }
28
29 void LayerSemantics::TearDown() {}
30
31 TEST_P(LayerSemantics, createFromAppContext_pn) {
32   auto ac = nntrainer::AppContext::Global(); /// copy intended
33   if (~(options & LayerCreateSetPropertyOptions::AVAILABLE_FROM_APP_CONTEXT)) {
34     EXPECT_THROW(ac.createObject<nntrainer::Layer>(expected_type),
35                  std::invalid_argument);
36     ac.registerFactory<nntrainer::Layer>(std::get<0>(GetParam()));
37   }
38   EXPECT_EQ(ac.createObject<nntrainer::Layer>(expected_type)->getType(),
39             expected_type);
40 }
41
42 TEST_P(LayerSemantics, setProperties_p) {
43   /// @todo check if setProperties does not collide with layerNode designated
44   /// properties
45 }
46
47 TEST_P(LayerSemantics, setPropertiesValidWithInvalid_n) {}
48
49 TEST_P(LayerSemantics, setPropertiesValidInvalidOnly_n) {}
50
51 TEST_P(LayerSemantics, finalizeTwice_p) {}
52
53 TEST_P(LayerGoldenTest, HelloWorld) { EXPECT_TRUE(true); }