From e4c01874a3f92256b52362fd0be9a3123cbf19b7 Mon Sep 17 00:00:00 2001
From: NAUD Maxence <maxence.naud@cea.fr>
Date: Thu, 5 Dec 2024 23:37:17 +0000
Subject: [PATCH] restore absolute precision value in test, change std::pow
 values to get float in Test_Adam

---
 unit_tests/optimizer/Test_Adam.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/unit_tests/optimizer/Test_Adam.cpp b/unit_tests/optimizer/Test_Adam.cpp
index caacb9c..cd171e3 100644
--- a/unit_tests/optimizer/Test_Adam.cpp
+++ b/unit_tests/optimizer/Test_Adam.cpp
@@ -130,8 +130,8 @@ TEST_CASE("[learning/Adam] update", "[Optimizer][Adam]") {
 
             for (std::size_t step = 0; step < 10; ++step) {
                 // truth
-                float lr2 = lr * std::sqrt(1.0f - std::pow(beta2, step + 1)) / (1.0f - std::pow(beta1, step + 1));
-                float epsilon2 = epsilon * std::sqrt(1.0f - std::pow(beta2, step + 1));
+                float lr2 = lr * std::sqrt(1.0f - std::pow(beta2, static_cast<float>(step + 1))) / (1.0f - std::pow(beta1, static_cast<float>(step + 1)));
+                float epsilon2 = epsilon * std::sqrt(1.0f - std::pow(beta2, static_cast<float>(step + 1)));
                 for (std::size_t t = 0; t < nb_tensors; ++t) {
                     for (std::size_t i = 0; i < size_tensors[t]; ++i) {
                         val_momentum1_tensors[t][i] = beta1 * val_momentum1_tensors[t][i] + (1.0f - beta1) * val_grad_tensors[t][i];
@@ -146,7 +146,7 @@ TEST_CASE("[learning/Adam] update", "[Optimizer][Adam]") {
                 for (std::size_t t = 0; t < nb_tensors; ++t) {
                     const Tensor tmpt1= *(opt.parameters().at(t));
                     const Tensor tmpt2= *tensors[t];
-                    REQUIRE(approxEq<float,float>(tmpt2, tmpt1, 1e-5f, 1e-7f));
+                    REQUIRE(approxEq<float,float>(tmpt2, tmpt1, 1e-5f, 1e-8f));
                 }
             }
         }
-- 
GitLab