* @author Parichay Kapoor <pk.kapoor@samsung.com>
* @bug No known bugs
*/
+
#include <gtest/gtest.h>
+#include <fc_layer.h>
+#include <layer_node.h>
+#include <nntrainer_error.h>
+#include <tensor_dim.h>
+#include <var_grad.h>
+
/**
* @brief test distribute property
*/
TEST(nntrainer_LayerNode, setDistribute_01_p) {
- int status = ML_ERROR_NONE;
-
auto lnode = nntrainer::createLayerNode(nntrainer::FullyConnectedLayer::type);
EXPECT_EQ(false, lnode->getDistribute());
- status = lnode->setProperty({"distribute=true"});
- EXPECT_EQ(status, ML_ERROR_NONE);
+ EXPECT_NO_THROW(lnode->setProperty({"distribute=true"}));
EXPECT_EQ(true, lnode->getDistribute());
}
* @brief test flatten property
*/
TEST(nntrainer_LayerNode, setFlatten_01_p) {
- int status = ML_ERROR_NONE;
-
auto lnode = nntrainer::createLayerNode(nntrainer::FullyConnectedLayer::type);
- status = lnode->setProperty({"flatten=true"});
- EXPECT_EQ(status, ML_ERROR_NONE);
+ EXPECT_NO_THROW(lnode->setProperty({"flatten=true"}));
}
/**
* @brief test finalize with wrong context
*/
TEST(nntrainer_LayerNode, finalize_01_n) {
- int status = ML_ERROR_NONE;
-
auto lnode = nntrainer::createLayerNode(nntrainer::FullyConnectedLayer::type);
- EXPECT_THROW(lnode->finalize(), std::runtime_error);
+ EXPECT_ANY_THROW(lnode->finalize());
}
/**
- * @brief test finalize with right context
+ * @brief test finalize with wrong context
*/
-TEST(nntrainer_LayerNode, finalize_02_p) {
- int status = ML_ERROR_NONE;
-
+TEST(nntrainer_LayerNode, finalize_02_n) {
auto lnode = nntrainer::createLayerNode(nntrainer::FullyConnectedLayer::type);
- lnode->setProperty("input_shape=1:1:1");
- EXPECT_NO_THROW(lnode->finalize());
+ lnode->setProperty({"name=abc"});
+ EXPECT_ANY_THROW(lnode->finalize());
}
/**
- * @brief test double finalize
+ * @brief test finalize with wrong context
*/
-TEST(nntrainer_LayerNode, finalize_01_n) {
- int status = ML_ERROR_NONE;
+TEST(nntrainer_LayerNode, finalize_03_n) {
+ auto lnode = nntrainer::createLayerNode(nntrainer::FullyConnectedLayer::type);
+ lnode->setProperty({"input_shape=1:1:1"});
+ EXPECT_ANY_THROW(lnode->finalize());
+}
+/**
+ * @brief test finalize with right context
+ */
+TEST(nntrainer_LayerNode, finalize_04_p) {
auto lnode = nntrainer::createLayerNode(nntrainer::FullyConnectedLayer::type);
- lnode->setProperty("input_shape=1:1:1");
+ lnode->setProperty({"input_shape=1:1:1", "name=abc", "unit=4"});
EXPECT_NO_THROW(lnode->finalize());
- EXPECT_THROW(lnode->finalize(), std::runtime_error);
}
/**
- * @brief Main gtest
+ * @brief test double finalize
*/
-int main(int argc, char **argv) {
- int result = -1;
-
- try {
- testing::InitGoogleTest(&argc, argv);
- } catch (...) {
- std::cerr << "Error duing IniGoogleTest" << std::endl;
- return 0;
- }
-
- try {
- result = RUN_ALL_TESTS();
- } catch (...) {
- std::cerr << "Error duing RUN_ALL_TSETS()" << std::endl;
- }
-
- return result;
+TEST(nntrainer_LayerNode, finalize_05_n) {
+ auto lnode = nntrainer::createLayerNode(nntrainer::FullyConnectedLayer::type);
+ lnode->setProperty({"input_shape=1:1:1", "name=abc", "unit=4"});
+ EXPECT_NO_THROW(lnode->finalize());
+ nntrainer::Var_Grad input =
+ nntrainer::Var_Grad(nntrainer::TensorDim({1, 1, 1, 1}));
+ lnode->configureRunContext({}, {&input}, {}, {});
+ EXPECT_ANY_THROW(lnode->finalize());
}