Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
LMM Testing:
authorLoic Guegan <manzerberdes@gmx.com>
Fri, 7 Jun 2019 12:09:47 +0000 (14:09 +0200)
committerLoic Guegan <manzerberdes@gmx.com>
Tue, 11 Jun 2019 10:24:39 +0000 (12:24 +0200)
    - Refactoring
    - Add lmm_basic.cpp to the compilation chain

teshsuite/surf/lmm_usage/lmm_basic.cpp
tools/cmake/Tests.cmake

index 9129ce6..3d05676 100644 (file)
@@ -1,42 +1,38 @@
+/* Copyright (c) 2019. The SimGrid Team. All rights reserved.               */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
 #include "src/include/catch.hpp"
 #include "src/kernel/lmm/maxmin.hpp"
 #include "src/surf/surf_interface.hpp"
 #include "xbt/log.h"
 
-#define DOUBLE_PRECISION 0.00001
-
-// Namespace shortcut
 namespace lmm = simgrid::kernel::lmm;
 
-// XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, "Messages specific for surf example");
-// XBT_INFO("V1=%g V2=%g V3=%g",V1->get_value(),V2->get_value(),V3->get_value());
-
-TEST_CASE("Test on small systems", "[lmm-small-systems]")
+TEST_CASE("kernel::lmm Test on small systems", "[kernel-lmm-small-sys]")
 {
   lmm::System* Sys = lmm::make_new_maxmin_system(false);
 
-  SECTION("Check variables weight (sharing_weight)")
+  SECTION("Basic variable weight")
   {
-
-    // Create constraint
-    lmm::Constraint* C = Sys->constraint_new(nullptr, 10);
-
-    // Create the 3 variables (with increasing weight from 1 to 3)
-    lmm::Variable* V1 =
-        Sys->variable_new(nullptr, 1, 0.0, 1); // id=nullptr, weight_value=1, bound=0, number_of_constraints=1
-    lmm::Variable* V2 = Sys->variable_new(nullptr, 2, 0.0, 1);
-    lmm::Variable* V3 = Sys->variable_new(nullptr, 3, 0.0, 1);
-
-    // Link Variables to Constraint with constant weight 1
-    Sys->expand(C, V1, 1);
-    Sys->expand(C, V2, 1);
-    Sys->expand(C, V3, 1);
-
+    /*
+     * System under consideration:
+     * 1\times\rho_1^{1} + 1\times\rho_2^{2} + 1\times\rho_3^{3} \le 10
+     */
+
+    lmm::Constraint* sys_cnst = Sys->constraint_new(nullptr, 10);
+    lmm::Variable* sys_var_1  = Sys->variable_new(nullptr, 1, 0.0, 1);
+    lmm::Variable* sys_var_2  = Sys->variable_new(nullptr, 2, 0.0, 1);
+    lmm::Variable* sys_var_3  = Sys->variable_new(nullptr, 3, 0.0, 1);
+
+    Sys->expand(sys_cnst, sys_var_1, 1);
+    Sys->expand(sys_cnst, sys_var_2, 1);
+    Sys->expand(sys_cnst, sys_var_3, 1);
     Sys->solve();
 
-    // Compare with theorical values
-    REQUIRE(double_equals(V1->get_value(), 5.45455, DOUBLE_PRECISION));
-    REQUIRE(double_equals(V2->get_value(), 2.72727, DOUBLE_PRECISION));
-    REQUIRE(double_equals(V3->get_value(), 1.81818, DOUBLE_PRECISION));
+    REQUIRE(double_equals(sys_var_1->get_value(), 5.45455, sg_maxmin_precision));
+    REQUIRE(double_equals(sys_var_2->get_value(), 2.72727, sg_maxmin_precision));
+    REQUIRE(double_equals(sys_var_3->get_value(), 1.81818, sg_maxmin_precision));
   }
 }
index 2988ed0..085a635 100644 (file)
@@ -100,7 +100,8 @@ set(UNIT_TESTS  src/xbt/unit-tests_main.cpp
                 src/xbt/config_test.cpp
                 src/xbt/dict_test.cpp
                 src/xbt/dynar_test.cpp
-                src/xbt/xbt_str_test.cpp)
+                src/xbt/xbt_str_test.cpp
+                teshsuite/surf/lmm_usage/lmm_basic.cpp)
 if (SIMGRID_HAVE_MC)
   set(UNIT_TESTS ${UNIT_TESTS} src/mc/sosp/Snapshot_test.cpp src/mc/sosp/PageStore_test.cpp)
 else()