[test] Add finalize tests for lr schedulers
authorParichay Kapoor <pk.kapoor@samsung.com>
Fri, 10 Dec 2021 03:59:32 +0000 (12:59 +0900)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Thu, 24 Feb 2022 06:58:55 +0000 (15:58 +0900)
Add tests for finalize member function for the learning rate schedulers.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
test/unittest/unittest_nntrainer_lr_scheduler.cpp

index 6064a37..7dec83c 100644 (file)
@@ -91,6 +91,30 @@ TEST(lr_constant, prop_03_p) {
  * @brief test set and get learning rate
  *
  */
+TEST(lr_constant, final_01_n) {
+  auto &ac = nntrainer::AppContext::Global();
+  auto lr = ac.createObject<nntrainer::LearningRateScheduler>("constant");
+
+  /** fails as learning rate property is not set */
+  EXPECT_ANY_THROW(lr->finalize());
+}
+
+/**
+ * @brief test set and get learning rate
+ *
+ */
+TEST(lr_constant, final_02_p) {
+  auto &ac = nntrainer::AppContext::Global();
+  auto lr = ac.createObject<nntrainer::LearningRateScheduler>("constant");
+
+  EXPECT_NO_THROW(lr->setProperty({"learning_rate=1.0"}));
+  EXPECT_NO_THROW(lr->finalize());
+}
+
+/**
+ * @brief test set and get learning rate
+ *
+ */
 TEST(lr_exponential, prop_01_n) {
   auto &ac = nntrainer::AppContext::Global();
   auto lr = ac.createObject<nntrainer::LearningRateScheduler>("exponential");
@@ -107,12 +131,15 @@ TEST(lr_exponential, prop_02_p) {
   auto lr = ac.createObject<nntrainer::LearningRateScheduler>("exponential");
 
   EXPECT_NO_THROW(lr->setProperty({"learning_rate=1.0"}));
+  EXPECT_ANY_THROW(lr->finalize());
   EXPECT_ANY_THROW(lr->getLearningRate(0));
 
   EXPECT_NO_THROW(lr->setProperty({"decay_steps=1"}));
+  EXPECT_ANY_THROW(lr->finalize());
   EXPECT_ANY_THROW(lr->getLearningRate(0));
 
   EXPECT_NO_THROW(lr->setProperty({"decay_rate=0.9"}));
+  EXPECT_NO_THROW(lr->finalize());
   EXPECT_NO_THROW(lr->getLearningRate(0));
 
   EXPECT_FLOAT_EQ(lr->getLearningRate(0), 1.0f);