From 2c8178e5bf50e48c1a008efb9ccfd7efd73fe43d Mon Sep 17 00:00:00 2001 From: Peter Mitri Date: Mon, 3 Feb 2025 14:58:42 +0100 Subject: [PATCH 1/8] move expressions code Signed-off-by: Peter Mitri --- src/CMakeLists.txt | 7 +- src/expressions/CMakeLists.txt | 100 ++++++++++++++++++ src/expressions/NodeRegistry.cpp | 14 +++ src/{solver => }/expressions/hashable.cpp | 6 +- .../antares}/expressions/NodeRegistry.h | 8 +- .../include/antares/expressions}/expression.h | 10 +- .../expressions/iterators/pre-order.h | 4 +- .../antares}/expressions/nodes/BinaryNode.h | 6 +- .../expressions/nodes/ComparisonNode.h | 6 +- .../expressions/nodes/ComponentNode.h | 6 +- .../antares}/expressions/nodes/DivisionNode.h | 6 +- .../antares}/expressions/nodes/EqualNode.h | 6 +- .../expressions/nodes/ExpressionsNodes.h | 30 +++--- .../nodes/GreaterThanOrEqualNode.h | 6 +- .../include/antares}/expressions/nodes/Leaf.h | 6 +- .../expressions/nodes/LessThanOrEqualNode.h | 6 +- .../antares}/expressions/nodes/LiteralNode.h | 6 +- .../expressions/nodes/MultiplicationNode.h | 6 +- .../antares}/expressions/nodes/NegationNode.h | 6 +- .../include/antares}/expressions/nodes/Node.h | 6 +- .../nodes/NodesForwardDeclaration.h | 4 +- .../expressions/nodes/ParameterNode.h | 10 +- .../expressions/nodes/PortFieldNode.h | 8 +- .../expressions/nodes/PortFieldSumNode.h | 8 +- .../expressions/nodes/SubtractionNode.h | 6 +- .../antares}/expressions/nodes/SumNode.h | 6 +- .../antares}/expressions/nodes/UnaryNode.h | 6 +- .../antares}/expressions/nodes/VariableNode.h | 10 +- .../expressions/visitors/AstDOTStyleVisitor.h | 6 +- .../expressions/visitors/CloneVisitor.h | 8 +- .../expressions/visitors/CompareVisitor.h | 8 +- .../expressions/visitors/EvalVisitor.h | 8 +- .../expressions/visitors/LinearityVisitor.h | 8 +- .../expressions/visitors/NodeVisitor.h | 14 +-- .../visitors/PortFieldSubstitutionVisitor.h | 6 +- .../PortFieldSumSubstitutionVisitor.h | 6 +- .../expressions/visitors/PrintVisitor.h | 6 +- .../visitors/SubstitutionVisitor.h | 10 +- .../expressions/visitors/TimeIndexVisitor.h | 8 +- .../expressions/iterators/pre-order.cpp | 8 +- .../expressions/nodes/BinaryNode.cpp | 6 +- .../expressions/nodes/ComponentNode.cpp | 6 +- .../expressions/nodes/PortFieldNode.cpp | 6 +- .../expressions/nodes/PortFieldSumNode.cpp | 6 +- .../expressions/nodes/SumNode.cpp | 6 +- .../expressions/nodes/UnaryNode.cpp | 6 +- .../visitors/AstDOTStyleVisitor.cpp | 8 +- .../expressions/visitors/CloneVisitor.cpp | 8 +- .../expressions/visitors/CompareVisitor.cpp | 14 +-- .../expressions/visitors/EvalVisitor.cpp | 8 +- .../visitors/EvaluationContext.cpp | 6 +- src/expressions/visitors/InvalidNode.cpp | 10 ++ .../expressions/visitors/LinearityVisitor.cpp | 10 +- .../expressions/visitors/NodeVisitor.cpp | 6 +- .../visitors/PortFieldSubstitutionVisitor.cpp | 8 +- .../PortFieldSumSubstitutionVisitor.cpp | 8 +- .../expressions/visitors/PrintVisitor.cpp | 8 +- .../visitors/SubstitutionVisitor.cpp | 8 +- .../expressions/visitors/TimeIndexVisitor.cpp | 8 +- src/solver/CMakeLists.txt | 1 - src/solver/expressions/CMakeLists.txt | 99 ----------------- src/solver/expressions/NodeRegistry.cpp | 14 --- .../expressions/visitors/InvalidNode.cpp | 10 -- src/solver/modelConverter/CMakeLists.txt | 2 +- .../modelConverter/convertorVisitor.cpp | 27 ++--- .../solver/modelConverter/convertorVisitor.h | 5 +- .../solver/modelConverter/modelConverter.h | 4 +- src/solver/modelConverter/modelConverter.cpp | 3 +- .../solver/modeler/api/linearProblemFiller.h | 7 +- src/solver/optim-model-filler/CMakeLists.txt | 2 +- .../optim-model-filler/ComponentFiller.cpp | 16 +-- .../ReadLinearConstraintVisitor.cpp | 6 +- .../ReadLinearExpressionVisitor.cpp | 10 +- .../optim-model-filler/ComponentFiller.h | 8 +- .../ReadLinearConstraintVisitor.h | 38 +++---- .../ReadLinearExpressionVisitor.h | 40 +++---- src/study/system-model/CMakeLists.txt | 3 +- .../antares/study/system-model/constraint.h | 5 +- .../antares/study/system-model/model.h | 3 +- .../antares/study/system-model/variable.h | 18 ++-- src/tests/src/CMakeLists.txt | 1 + .../{solver => }/expressions/CMakeLists.txt | 4 +- .../expressions/test_AstDOTStyleVisitor.cpp | 12 +-- .../expressions/test_CloneVisitor.cpp | 14 +-- .../expressions/test_CompareVisitor.cpp | 16 +-- .../expressions/test_DeepWideTrees.cpp | 14 +-- .../expressions/test_Iterators.cpp | 10 +- .../expressions/test_LinearVisitor.cpp | 22 ++-- .../expressions/test_PrintAndEvalNodes.cpp | 16 +-- .../expressions/test_SubstitutionVisitor.cpp | 22 ++-- .../expressions/test_TimeIndexVisitor.cpp | 18 ++-- .../{solver => }/expressions/test_main.cpp | 0 .../{solver => }/expressions/test_nodes.cpp | 8 +- src/tests/src/solver/CMakeLists.txt | 1 - .../src/solver/modelParser/CMakeLists.txt | 2 +- .../modelParser/testConvertorVisitor.cpp | 7 +- .../modelParser/testModelTranslator.cpp | 4 +- .../src/solver/modelParser/test_full.cpp | 2 +- .../test_componentFiller.cpp | 28 ++--- .../test_readLinearConstraintVisitor.cpp | 10 +- .../test_readLinearExpressionVisitor.cpp | 10 +- 101 files changed, 551 insertions(+), 542 deletions(-) create mode 100644 src/expressions/CMakeLists.txt create mode 100644 src/expressions/NodeRegistry.cpp rename src/{solver => }/expressions/hashable.cpp (92%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/NodeRegistry.h (67%) rename src/{study/system-model/include/antares/study/system-model => expressions/include/antares/expressions}/expression.h (85%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/iterators/pre-order.h (93%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/BinaryNode.h (93%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/ComparisonNode.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/ComponentNode.h (94%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/DivisionNode.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/EqualNode.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/ExpressionsNodes.h (50%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/GreaterThanOrEqualNode.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/Leaf.h (92%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/LessThanOrEqualNode.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/LiteralNode.h (68%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/MultiplicationNode.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/NegationNode.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/Node.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/NodesForwardDeclaration.h (94%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/ParameterNode.h (75%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/PortFieldNode.h (91%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/PortFieldSumNode.h (91%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/SubtractionNode.h (89%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/SumNode.h (94%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/UnaryNode.h (91%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/nodes/VariableNode.h (75%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/AstDOTStyleVisitor.h (98%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/CloneVisitor.h (92%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/CompareVisitor.h (93%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/EvalVisitor.h (93%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/LinearityVisitor.h (91%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/NodeVisitor.h (96%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/PortFieldSubstitutionVisitor.h (92%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/PortFieldSumSubstitutionVisitor.h (92%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/PrintVisitor.h (93%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/SubstitutionVisitor.h (87%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/TimeIndexVisitor.h (93%) rename src/{solver => }/expressions/iterators/pre-order.cpp (91%) rename src/{solver => }/expressions/nodes/BinaryNode.cpp (89%) rename src/{solver => }/expressions/nodes/ComponentNode.cpp (90%) rename src/{solver => }/expressions/nodes/PortFieldNode.cpp (90%) rename src/{solver => }/expressions/nodes/PortFieldSumNode.cpp (90%) rename src/{solver => }/expressions/nodes/SumNode.cpp (90%) rename src/{solver => }/expressions/nodes/UnaryNode.cpp (88%) rename src/{solver => }/expressions/visitors/AstDOTStyleVisitor.cpp (97%) rename src/{solver => }/expressions/visitors/CloneVisitor.cpp (95%) rename src/{solver => }/expressions/visitors/CompareVisitor.cpp (90%) rename src/{solver => }/expressions/visitors/EvalVisitor.cpp (95%) rename src/{solver => }/expressions/visitors/EvaluationContext.cpp (75%) create mode 100644 src/expressions/visitors/InvalidNode.cpp rename src/{solver => }/expressions/visitors/LinearityVisitor.cpp (92%) rename src/{solver => }/expressions/visitors/NodeVisitor.cpp (90%) rename src/{solver => }/expressions/visitors/PortFieldSubstitutionVisitor.cpp (87%) rename src/{solver => }/expressions/visitors/PortFieldSumSubstitutionVisitor.cpp (87%) rename src/{solver => }/expressions/visitors/PrintVisitor.cpp (94%) rename src/{solver => }/expressions/visitors/SubstitutionVisitor.cpp (89%) rename src/{solver => }/expressions/visitors/TimeIndexVisitor.cpp (94%) delete mode 100644 src/solver/expressions/CMakeLists.txt delete mode 100644 src/solver/expressions/NodeRegistry.cpp delete mode 100644 src/solver/expressions/visitors/InvalidNode.cpp rename src/tests/src/{solver => }/expressions/CMakeLists.txt (87%) rename src/tests/src/{solver => }/expressions/test_AstDOTStyleVisitor.cpp (95%) rename src/tests/src/{solver => }/expressions/test_CloneVisitor.cpp (87%) rename src/tests/src/{solver => }/expressions/test_CompareVisitor.cpp (94%) rename src/tests/src/{solver => }/expressions/test_DeepWideTrees.cpp (89%) rename src/tests/src/{solver => }/expressions/test_Iterators.cpp (94%) rename src/tests/src/{solver => }/expressions/test_LinearVisitor.cpp (95%) rename src/tests/src/{solver => }/expressions/test_PrintAndEvalNodes.cpp (97%) rename src/tests/src/{solver => }/expressions/test_SubstitutionVisitor.cpp (91%) rename src/tests/src/{solver => }/expressions/test_TimeIndexVisitor.cpp (95%) rename src/tests/src/{solver => }/expressions/test_main.cpp (100%) rename src/tests/src/{solver => }/expressions/test_nodes.cpp (95%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5ee40ae998..ae63acd11d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -270,9 +270,10 @@ if(BUILD_UI) add_subdirectory(ui) #all antares ui libs + antares simulator endif() -add_subdirectory(study) #antares study model -add_subdirectory(solver) #antares solver and all associated libs -add_subdirectory(analyzer) #antares analyser +add_subdirectory(expressions) #modeler expressions (AST) +add_subdirectory(study) #antares study model +add_subdirectory(solver) #antares solver and all associated libs +add_subdirectory(analyzer) #antares analyser # Tools if (BUILD_TOOLS) diff --git a/src/expressions/CMakeLists.txt b/src/expressions/CMakeLists.txt new file mode 100644 index 0000000000..b18f56a98d --- /dev/null +++ b/src/expressions/CMakeLists.txt @@ -0,0 +1,100 @@ +project(Expressions) + + +set(SRC_Expressions + nodes/PortFieldNode.cpp + nodes/PortFieldSumNode.cpp + nodes/ComponentNode.cpp + nodes/BinaryNode.cpp + nodes/UnaryNode.cpp + nodes/SumNode.cpp + + visitors/CloneVisitor.cpp + visitors/CompareVisitor.cpp + visitors/EvalVisitor.cpp + visitors/EvaluationContext.cpp + visitors/LinearityVisitor.cpp + visitors/TimeIndexVisitor.cpp + visitors/PrintVisitor.cpp + visitors/SubstitutionVisitor.cpp + visitors/PortFieldSubstitutionVisitor.cpp + visitors/PortFieldSumSubstitutionVisitor.cpp + visitors/AstDOTStyleVisitor.cpp + visitors/InvalidNode.cpp + visitors/NodeVisitor.cpp + + hashable.cpp + + NodeRegistry.cpp + include/antares/expressions/NodeRegistry.h + include/antares/expressions/nodes/SumNode.h + include/antares/expressions/nodes/BinaryNode.h + include/antares/expressions/nodes/ComparisonNode.h + include/antares/expressions/nodes/ComponentNode.h + include/antares/expressions/nodes/DivisionNode.h + include/antares/expressions/nodes/EqualNode.h + include/antares/expressions/nodes/ExpressionsNodes.h + include/antares/expressions/nodes/GreaterThanOrEqualNode.h + include/antares/expressions/nodes/Leaf.h + include/antares/expressions/nodes/LessThanOrEqualNode.h + include/antares/expressions/nodes/LiteralNode.h + include/antares/expressions/nodes/MultiplicationNode.h + include/antares/expressions/nodes/NegationNode.h + include/antares/expressions/nodes/Node.h + include/antares/expressions/nodes/NodesForwardDeclaration.h + include/antares/expressions/nodes/ParameterNode.h + include/antares/expressions/nodes/PortFieldNode.h + include/antares/expressions/nodes/PortFieldSumNode.h + include/antares/expressions/nodes/SubtractionNode.h + include/antares/expressions/nodes/UnaryNode.h + include/antares/expressions/nodes/VariableNode.h + + include/antares/expressions/visitors/CloneVisitor.h + include/antares/expressions/visitors/CompareVisitor.h + include/antares/expressions/visitors/EvalVisitor.h + include/antares/expressions/visitors/EvaluationContext.h + include/antares/expressions/visitors/LinearStatus.h + include/antares/expressions/visitors/LinearityVisitor.h + include/antares/expressions/visitors/NodeVisitor.h + include/antares/expressions/visitors/PrintVisitor.h + include/antares/expressions/visitors/TimeIndexVisitor.h + include/antares/expressions/visitors/TimeIndex.h + include/antares/expressions/visitors/SubstitutionVisitor.h + include/antares/expressions/visitors/PortFieldSubstitutionVisitor.h + include/antares/expressions/visitors/PortFieldSumSubstitutionVisitor.h + include/antares/expressions/visitors/AstDOTStyleVisitor.h + include/antares/expressions/visitors/InvalidNode.h + + include/antares/expressions/Registry.hxx + include/antares/expressions/IName.h + include/antares/expressions/hashable.h + include/antares/expressions/expression.h +) + +source_group("expressions" FILES ${SRC_Expressions}) +add_library(expressions + ${SRC_Expressions}) +add_library(Antares::expressions ALIAS expressions) + +target_include_directories(expressions + PUBLIC + $ +) +target_link_libraries(expressions + PUBLIC + Boost::headers + Antares::logs +) + + +add_library(expressions-iterators + iterators/pre-order.cpp + include/antares/expressions/iterators/pre-order.h +) + +target_link_libraries(expressions-iterators PRIVATE expressions) + +install(DIRECTORY include/antares + DESTINATION "include" +) + diff --git a/src/expressions/NodeRegistry.cpp b/src/expressions/NodeRegistry.cpp new file mode 100644 index 0000000000..68ce7e5f0f --- /dev/null +++ b/src/expressions/NodeRegistry.cpp @@ -0,0 +1,14 @@ +#include +#include +#include + +namespace Antares::Expressions +{ +NodeRegistry::NodeRegistry(Antares::Expressions::Nodes::Node* node, + Antares::Expressions::Registry registry): + node(node), + registry(std::move(registry)) +{ +} + +} // namespace Antares::Expressions diff --git a/src/solver/expressions/hashable.cpp b/src/expressions/hashable.cpp similarity index 92% rename from src/solver/expressions/hashable.cpp rename to src/expressions/hashable.cpp index 3757ed4547..4d0025a02e 100644 --- a/src/solver/expressions/hashable.cpp +++ b/src/expressions/hashable.cpp @@ -20,9 +20,9 @@ */ #include -#include +#include -namespace Antares::Solver +namespace Antares::Expressions { Hashable::Hashable(const std::string& s1, const std::string& s2): @@ -46,4 +46,4 @@ std::size_t PortFieldHash::operator()(const Hashable& n) const return seed; } -} // namespace Antares::Solver +} // namespace Antares::Expressions diff --git a/src/solver/expressions/include/antares/solver/expressions/NodeRegistry.h b/src/expressions/include/antares/expressions/NodeRegistry.h similarity index 67% rename from src/solver/expressions/include/antares/solver/expressions/NodeRegistry.h rename to src/expressions/include/antares/expressions/NodeRegistry.h index 22b40bf011..41d9b9f550 100644 --- a/src/solver/expressions/include/antares/solver/expressions/NodeRegistry.h +++ b/src/expressions/include/antares/expressions/NodeRegistry.h @@ -1,9 +1,9 @@ #pragma once -#include -#include +#include +#include -namespace Antares::Solver +namespace Antares::Expressions { class NodeRegistry { @@ -18,4 +18,4 @@ class NodeRegistry Nodes::Node* node; Registry registry; }; -} // namespace Antares::Solver +} // namespace Antares::Expressions diff --git a/src/study/system-model/include/antares/study/system-model/expression.h b/src/expressions/include/antares/expressions/expression.h similarity index 85% rename from src/study/system-model/include/antares/study/system-model/expression.h rename to src/expressions/include/antares/expressions/expression.h index cf8ea30a61..c7f3347b9e 100644 --- a/src/study/system-model/include/antares/study/system-model/expression.h +++ b/src/expressions/include/antares/expressions/expression.h @@ -22,9 +22,9 @@ #include -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { class Node; } @@ -38,7 +38,7 @@ class Expression public: Expression() = default; - explicit Expression(const std::string& value, Solver::NodeRegistry root): + explicit Expression(const std::string& value, Expressions::NodeRegistry root): value_(value), root_(std::move(root)), empty_(false) @@ -50,7 +50,7 @@ class Expression return value_; } - Solver::Nodes::Node* RootNode() const + Expressions::Nodes::Node* RootNode() const { return root_.node; } @@ -62,7 +62,7 @@ class Expression private: std::string value_; - Solver::NodeRegistry root_; + Expressions::NodeRegistry root_; bool empty_ = true; }; diff --git a/src/solver/expressions/include/antares/solver/expressions/iterators/pre-order.h b/src/expressions/include/antares/expressions/iterators/pre-order.h similarity index 93% rename from src/solver/expressions/include/antares/solver/expressions/iterators/pre-order.h rename to src/expressions/include/antares/expressions/iterators/pre-order.h index a3beb9efcc..728b5a6fd4 100644 --- a/src/solver/expressions/include/antares/solver/expressions/iterators/pre-order.h +++ b/src/expressions/include/antares/expressions/iterators/pre-order.h @@ -3,7 +3,7 @@ #include #include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { // Forward-declaration is enough @@ -55,4 +55,4 @@ class AST // End iterator (indicating traversal is complete) ASTPreOrderIterator end(); }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/BinaryNode.h b/src/expressions/include/antares/expressions/nodes/BinaryNode.h similarity index 93% rename from src/solver/expressions/include/antares/solver/expressions/nodes/BinaryNode.h rename to src/expressions/include/antares/expressions/nodes/BinaryNode.h index 1ce7e05bd1..50dcd3dc46 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/BinaryNode.h +++ b/src/expressions/include/antares/expressions/nodes/BinaryNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { class BinaryNode: public Node { @@ -61,4 +61,4 @@ class BinaryNode: public Node */ Node* rightOperand_ = nullptr; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/ComparisonNode.h b/src/expressions/include/antares/expressions/nodes/ComparisonNode.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/ComparisonNode.h rename to src/expressions/include/antares/expressions/nodes/ComparisonNode.h index 7fd6ac9cb2..1e31c664ca 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/ComparisonNode.h +++ b/src/expressions/include/antares/expressions/nodes/ComparisonNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a comparison node in a syntax tree. @@ -32,4 +32,4 @@ class ComparisonNode: public BinaryNode public: using BinaryNode::BinaryNode; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/ComponentNode.h b/src/expressions/include/antares/expressions/nodes/ComponentNode.h similarity index 94% rename from src/solver/expressions/include/antares/solver/expressions/nodes/ComponentNode.h rename to src/expressions/include/antares/expressions/nodes/ComponentNode.h index 50e25439a8..ad5a142085 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/ComponentNode.h +++ b/src/expressions/include/antares/expressions/nodes/ComponentNode.h @@ -21,9 +21,9 @@ #pragma once #include -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a component node in a syntax tree. @@ -86,4 +86,4 @@ class ComponentParameterNode: public ComponentNode return "ComponentParameterNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/DivisionNode.h b/src/expressions/include/antares/expressions/nodes/DivisionNode.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/DivisionNode.h rename to src/expressions/include/antares/expressions/nodes/DivisionNode.h index 989324756e..d353864c40 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/DivisionNode.h +++ b/src/expressions/include/antares/expressions/nodes/DivisionNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a division node in a syntax tree. @@ -37,4 +37,4 @@ class DivisionNode: public BinaryNode return "DivisionNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/EqualNode.h b/src/expressions/include/antares/expressions/nodes/EqualNode.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/EqualNode.h rename to src/expressions/include/antares/expressions/nodes/EqualNode.h index 75eb2e43a5..64ccc1a144 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/EqualNode.h +++ b/src/expressions/include/antares/expressions/nodes/EqualNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents an equality comparison node in a syntax tree. @@ -37,4 +37,4 @@ class EqualNode: public ComparisonNode return "EqualNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/ExpressionsNodes.h b/src/expressions/include/antares/expressions/nodes/ExpressionsNodes.h similarity index 50% rename from src/solver/expressions/include/antares/solver/expressions/nodes/ExpressionsNodes.h rename to src/expressions/include/antares/expressions/nodes/ExpressionsNodes.h index 7909f5ffb6..3919dfb7b1 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/ExpressionsNodes.h +++ b/src/expressions/include/antares/expressions/nodes/ExpressionsNodes.h @@ -19,18 +19,18 @@ ** along with Antares_Simulator. If not, see . */ #pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/GreaterThanOrEqualNode.h b/src/expressions/include/antares/expressions/nodes/GreaterThanOrEqualNode.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/GreaterThanOrEqualNode.h rename to src/expressions/include/antares/expressions/nodes/GreaterThanOrEqualNode.h index bee2c16413..b3fe4a4c48 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/GreaterThanOrEqualNode.h +++ b/src/expressions/include/antares/expressions/nodes/GreaterThanOrEqualNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a greater than or equal comparison node in a syntax tree. @@ -37,4 +37,4 @@ class GreaterThanOrEqualNode: public ComparisonNode return "GreaterThanOrEqualNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/Leaf.h b/src/expressions/include/antares/expressions/nodes/Leaf.h similarity index 92% rename from src/solver/expressions/include/antares/solver/expressions/nodes/Leaf.h rename to src/expressions/include/antares/expressions/nodes/Leaf.h index c971be8fb4..e943049d51 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/Leaf.h +++ b/src/expressions/include/antares/expressions/nodes/Leaf.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a leaf node in a syntax tree. @@ -60,4 +60,4 @@ class Leaf: public Node T value_; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/LessThanOrEqualNode.h b/src/expressions/include/antares/expressions/nodes/LessThanOrEqualNode.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/LessThanOrEqualNode.h rename to src/expressions/include/antares/expressions/nodes/LessThanOrEqualNode.h index 25cc479529..27f68169cd 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/LessThanOrEqualNode.h +++ b/src/expressions/include/antares/expressions/nodes/LessThanOrEqualNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a less than or equal comparison node in a syntax tree. @@ -37,4 +37,4 @@ class LessThanOrEqualNode: public ComparisonNode return "LessThanOrEqualNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/LiteralNode.h b/src/expressions/include/antares/expressions/nodes/LiteralNode.h similarity index 68% rename from src/solver/expressions/include/antares/solver/expressions/nodes/LiteralNode.h rename to src/expressions/include/antares/expressions/nodes/LiteralNode.h index f875b754b9..7268ac8344 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/LiteralNode.h +++ b/src/expressions/include/antares/expressions/nodes/LiteralNode.h @@ -1,8 +1,8 @@ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a literal node in a syntax tree, storing a double value. @@ -17,4 +17,4 @@ class LiteralNode: public Leaf return "LiteralNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/MultiplicationNode.h b/src/expressions/include/antares/expressions/nodes/MultiplicationNode.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/MultiplicationNode.h rename to src/expressions/include/antares/expressions/nodes/MultiplicationNode.h index 4b6e877dd0..e5102d0589 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/MultiplicationNode.h +++ b/src/expressions/include/antares/expressions/nodes/MultiplicationNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a multiplication node in a syntax tree. @@ -37,4 +37,4 @@ class MultiplicationNode: public BinaryNode return "MultiplicationNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/NegationNode.h b/src/expressions/include/antares/expressions/nodes/NegationNode.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/NegationNode.h rename to src/expressions/include/antares/expressions/nodes/NegationNode.h index d8eec04a24..f8beb0771d 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/NegationNode.h +++ b/src/expressions/include/antares/expressions/nodes/NegationNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a negation node in a syntax tree. @@ -37,4 +37,4 @@ class NegationNode final: public UnaryNode return "NegationNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/Node.h b/src/expressions/include/antares/expressions/nodes/Node.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/Node.h rename to src/expressions/include/antares/expressions/nodes/Node.h index 410a1cd7e6..55c9b9aed8 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/Node.h +++ b/src/expressions/include/antares/expressions/nodes/Node.h @@ -19,9 +19,9 @@ ** along with Antares_Simulator. If not, see . */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Base class for nodes in a syntax tree. @@ -31,4 +31,4 @@ class Node: public IName public: virtual ~Node() = default; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/NodesForwardDeclaration.h b/src/expressions/include/antares/expressions/nodes/NodesForwardDeclaration.h similarity index 94% rename from src/solver/expressions/include/antares/solver/expressions/nodes/NodesForwardDeclaration.h rename to src/expressions/include/antares/expressions/nodes/NodesForwardDeclaration.h index f9124c3d91..314c0a2738 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/NodesForwardDeclaration.h +++ b/src/expressions/include/antares/expressions/nodes/NodesForwardDeclaration.h @@ -20,7 +20,7 @@ */ #pragma once -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { class Node; class BinaryNode; @@ -40,4 +40,4 @@ class ParameterNode; class VariableNode; class PortFieldNode; class PortFieldSumNode; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/ParameterNode.h b/src/expressions/include/antares/expressions/nodes/ParameterNode.h similarity index 75% rename from src/solver/expressions/include/antares/solver/expressions/nodes/ParameterNode.h rename to src/expressions/include/antares/expressions/nodes/ParameterNode.h index de1ba2d08a..d55479fa9a 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/ParameterNode.h +++ b/src/expressions/include/antares/expressions/nodes/ParameterNode.h @@ -2,15 +2,15 @@ #include -#include -#include "antares/solver/expressions/visitors/TimeIndex.h" +#include +#include "antares/expressions/visitors/TimeIndex.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { enum class TimeIndex : unsigned int; } -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a parameter node in a syntax tree, storing a string value. @@ -39,4 +39,4 @@ class ParameterNode final: public Leaf private: Visitors::TimeIndex time_index_; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/PortFieldNode.h b/src/expressions/include/antares/expressions/nodes/PortFieldNode.h similarity index 91% rename from src/solver/expressions/include/antares/solver/expressions/nodes/PortFieldNode.h rename to src/expressions/include/antares/expressions/nodes/PortFieldNode.h index 762f37a1c3..2ec2f75d18 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/PortFieldNode.h +++ b/src/expressions/include/antares/expressions/nodes/PortFieldNode.h @@ -21,10 +21,10 @@ #pragma once #include -#include -#include +#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a port field node in a syntax tree. @@ -65,4 +65,4 @@ class PortFieldNode: public Node, public Hashable std::string port_name_; std::string field_name_; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/PortFieldSumNode.h b/src/expressions/include/antares/expressions/nodes/PortFieldSumNode.h similarity index 91% rename from src/solver/expressions/include/antares/solver/expressions/nodes/PortFieldSumNode.h rename to src/expressions/include/antares/expressions/nodes/PortFieldSumNode.h index eda6372e0f..a607679a4a 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/PortFieldSumNode.h +++ b/src/expressions/include/antares/expressions/nodes/PortFieldSumNode.h @@ -21,10 +21,10 @@ #pragma once #include -#include -#include +#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a port field node where the expression is a sum. @@ -65,4 +65,4 @@ class PortFieldSumNode: public Node, public Hashable std::string port_name_; std::string field_name_; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/SubtractionNode.h b/src/expressions/include/antares/expressions/nodes/SubtractionNode.h similarity index 89% rename from src/solver/expressions/include/antares/solver/expressions/nodes/SubtractionNode.h rename to src/expressions/include/antares/expressions/nodes/SubtractionNode.h index 822bf2620c..b72e53c3c9 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/SubtractionNode.h +++ b/src/expressions/include/antares/expressions/nodes/SubtractionNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a subtraction node in a syntax tree. @@ -37,4 +37,4 @@ class SubtractionNode: public BinaryNode return "SubtractionNode"; } }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/SumNode.h b/src/expressions/include/antares/expressions/nodes/SumNode.h similarity index 94% rename from src/solver/expressions/include/antares/solver/expressions/nodes/SumNode.h rename to src/expressions/include/antares/expressions/nodes/SumNode.h index 25a3ae5091..11fcc50067 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/SumNode.h +++ b/src/expressions/include/antares/expressions/nodes/SumNode.h @@ -22,9 +22,9 @@ #include -#include "antares/solver/expressions/nodes/Node.h" +#include "antares/expressions/nodes/Node.h" -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { template @@ -85,4 +85,4 @@ class SumNode: public Node private: std::vector operands_ = {}; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/UnaryNode.h b/src/expressions/include/antares/expressions/nodes/UnaryNode.h similarity index 91% rename from src/solver/expressions/include/antares/solver/expressions/nodes/UnaryNode.h rename to src/expressions/include/antares/expressions/nodes/UnaryNode.h index c02969554e..5e18ea7309 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/UnaryNode.h +++ b/src/expressions/include/antares/expressions/nodes/UnaryNode.h @@ -20,9 +20,9 @@ */ #pragma once -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** * @brief Represents a unary node in a syntax tree. @@ -49,4 +49,4 @@ class UnaryNode: public Node */ Node* child_ = nullptr; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/nodes/VariableNode.h b/src/expressions/include/antares/expressions/nodes/VariableNode.h similarity index 75% rename from src/solver/expressions/include/antares/solver/expressions/nodes/VariableNode.h rename to src/expressions/include/antares/expressions/nodes/VariableNode.h index a7d31ddb78..469b540897 100644 --- a/src/solver/expressions/include/antares/solver/expressions/nodes/VariableNode.h +++ b/src/expressions/include/antares/expressions/nodes/VariableNode.h @@ -2,15 +2,15 @@ #include -#include -#include "antares/solver/expressions/visitors/TimeIndex.h" +#include +#include "antares/expressions/visitors/TimeIndex.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { enum class TimeIndex : unsigned int; } -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { /** @@ -40,4 +40,4 @@ class VariableNode final: public Leaf private: Visitors::TimeIndex time_index_; }; -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/AstDOTStyleVisitor.h b/src/expressions/include/antares/expressions/visitors/AstDOTStyleVisitor.h similarity index 98% rename from src/solver/expressions/include/antares/solver/expressions/visitors/AstDOTStyleVisitor.h rename to src/expressions/include/antares/expressions/visitors/AstDOTStyleVisitor.h index f2a0240e69..2c894d5eff 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/AstDOTStyleVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/AstDOTStyleVisitor.h @@ -24,9 +24,9 @@ #include #include -#include "antares/solver/expressions/visitors/NodeVisitor.h" +#include "antares/expressions/visitors/NodeVisitor.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @struct BoxStyle @@ -202,4 +202,4 @@ class AstDOTStyleVisitor: public NodeVisitor */ unsigned int nodeCount_ = 0; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/CloneVisitor.h b/src/expressions/include/antares/expressions/visitors/CloneVisitor.h similarity index 92% rename from src/solver/expressions/include/antares/solver/expressions/visitors/CloneVisitor.h rename to src/expressions/include/antares/expressions/visitors/CloneVisitor.h index ff5ac538a2..88b56382d5 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/CloneVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/CloneVisitor.h @@ -20,10 +20,10 @@ */ #pragma once -#include -#include "antares/solver/expressions/visitors/NodeVisitor.h" +#include +#include "antares/expressions/visitors/NodeVisitor.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents a visitor for cloning nodes in a syntax tree. @@ -58,4 +58,4 @@ class CloneVisitor: public NodeVisitor private: Registry& registry_; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/CompareVisitor.h b/src/expressions/include/antares/expressions/visitors/CompareVisitor.h similarity index 93% rename from src/solver/expressions/include/antares/solver/expressions/visitors/CompareVisitor.h rename to src/expressions/include/antares/expressions/visitors/CompareVisitor.h index ec19095b02..c11f1f0534 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/CompareVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/CompareVisitor.h @@ -20,10 +20,10 @@ */ #pragma once -#include -#include "antares/solver/expressions/visitors/NodeVisitor.h" +#include +#include "antares/expressions/visitors/NodeVisitor.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents a visitor for comparing nodes in a syntax tree. @@ -52,4 +52,4 @@ class CompareVisitor: public NodeVisitor bool visit(const Nodes::ComponentParameterNode* component_node, const Nodes::Node* other) override; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/EvalVisitor.h b/src/expressions/include/antares/expressions/visitors/EvalVisitor.h similarity index 93% rename from src/solver/expressions/include/antares/solver/expressions/visitors/EvalVisitor.h rename to src/expressions/include/antares/expressions/visitors/EvalVisitor.h index 5dbc1c06ed..9dcf3d377c 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/EvalVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/EvalVisitor.h @@ -20,10 +20,10 @@ */ #pragma once -#include -#include "antares/solver/expressions/visitors/NodeVisitor.h" +#include +#include "antares/expressions/visitors/NodeVisitor.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { class EvalVisitorDivisionException: public std::runtime_error @@ -75,4 +75,4 @@ class EvalVisitor: public NodeVisitor double visit(const Nodes::ComponentVariableNode* node) override; double visit(const Nodes::ComponentParameterNode* node) override; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/LinearityVisitor.h b/src/expressions/include/antares/expressions/visitors/LinearityVisitor.h similarity index 91% rename from src/solver/expressions/include/antares/solver/expressions/visitors/LinearityVisitor.h rename to src/expressions/include/antares/expressions/visitors/LinearityVisitor.h index 8355d27734..7d4e5bb7f9 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/LinearityVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/LinearityVisitor.h @@ -20,10 +20,10 @@ */ #pragma once -#include "antares/solver/expressions/visitors/LinearStatus.h" -#include "antares/solver/expressions/visitors/NodeVisitor.h" +#include "antares/expressions/visitors/LinearStatus.h" +#include "antares/expressions/visitors/NodeVisitor.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents a visitor for determining the linearity of nodes (expression). @@ -50,4 +50,4 @@ class LinearityVisitor: public NodeVisitor LinearStatus visit(const Nodes::ComponentVariableNode* component_variable_node) override; LinearStatus visit(const Nodes::ComponentParameterNode* component_parameter_node) override; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/NodeVisitor.h b/src/expressions/include/antares/expressions/visitors/NodeVisitor.h similarity index 96% rename from src/solver/expressions/include/antares/solver/expressions/visitors/NodeVisitor.h rename to src/expressions/include/antares/expressions/visitors/NodeVisitor.h index 3681224ee6..6a9c7516b8 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/NodeVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/NodeVisitor.h @@ -24,12 +24,12 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { // we use LogSink because the inclusion of somehow results in the // inclusion of (very bad idea in a header!) which conflict with antlr4 headers (defines @@ -132,7 +132,7 @@ class NodeVisitor: public IName } catch (std::exception&) { - log_.error("Antares::Solver::Visitor: could not visit the node!"); + log_.error("Antares::Expressions::Visitor: could not visit the node!"); throw; } } @@ -289,4 +289,4 @@ class NodeVisitor: public IName // (defines in the former become enums in the latter etc...) LogSink log_ = RedirectToAntaresLogs(); }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/PortFieldSubstitutionVisitor.h b/src/expressions/include/antares/expressions/visitors/PortFieldSubstitutionVisitor.h similarity index 92% rename from src/solver/expressions/include/antares/solver/expressions/visitors/PortFieldSubstitutionVisitor.h rename to src/expressions/include/antares/expressions/visitors/PortFieldSubstitutionVisitor.h index ce897945ea..f33166496b 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/PortFieldSubstitutionVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/PortFieldSubstitutionVisitor.h @@ -22,9 +22,9 @@ #include -#include "antares/solver/expressions/visitors/CloneVisitor.h" +#include "antares/expressions/visitors/CloneVisitor.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** @@ -51,4 +51,4 @@ class PortFieldSubstitutionVisitor: public CloneVisitor // Only override visit method for PortField, clone the rest Nodes::Node* visit(const Nodes::PortFieldNode* node) override; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/PortFieldSumSubstitutionVisitor.h b/src/expressions/include/antares/expressions/visitors/PortFieldSumSubstitutionVisitor.h similarity index 92% rename from src/solver/expressions/include/antares/solver/expressions/visitors/PortFieldSumSubstitutionVisitor.h rename to src/expressions/include/antares/expressions/visitors/PortFieldSumSubstitutionVisitor.h index 4444da94e6..a28097f4d2 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/PortFieldSumSubstitutionVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/PortFieldSumSubstitutionVisitor.h @@ -22,9 +22,9 @@ #include -#include "antares/solver/expressions/visitors/CloneVisitor.h" +#include "antares/expressions/visitors/CloneVisitor.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** @@ -54,4 +54,4 @@ class PortFieldSumSubstitutionVisitor: public CloneVisitor Registry& registry_; PortFieldSumSubstitutionContext& ctx_; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/PrintVisitor.h b/src/expressions/include/antares/expressions/visitors/PrintVisitor.h similarity index 93% rename from src/solver/expressions/include/antares/solver/expressions/visitors/PrintVisitor.h rename to src/expressions/include/antares/expressions/visitors/PrintVisitor.h index dfcca80823..6876b2d4f2 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/PrintVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/PrintVisitor.h @@ -20,9 +20,9 @@ */ #pragma once -#include "antares/solver/expressions/visitors/NodeVisitor.h" +#include "antares/expressions/visitors/NodeVisitor.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents a visitor for printing nodes in a syntax tree as strings. @@ -49,4 +49,4 @@ class PrintVisitor: public NodeVisitor std::string visit(const Nodes::ComponentVariableNode* node) override; std::string visit(const Nodes::ComponentParameterNode* node) override; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/SubstitutionVisitor.h b/src/expressions/include/antares/expressions/visitors/SubstitutionVisitor.h similarity index 87% rename from src/solver/expressions/include/antares/solver/expressions/visitors/SubstitutionVisitor.h rename to src/expressions/include/antares/expressions/visitors/SubstitutionVisitor.h index 14ea70de3c..1afc008b5d 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/SubstitutionVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/SubstitutionVisitor.h @@ -22,11 +22,11 @@ #include -#include -#include -#include +#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents the context for performing substitutions in a syntax tree. @@ -55,4 +55,4 @@ class SubstitutionVisitor: public CloneVisitor // Only override visit method for ComponentVariableNode, clone the rest Nodes::Node* visit(const Nodes::ComponentVariableNode* node) override; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/TimeIndexVisitor.h b/src/expressions/include/antares/expressions/visitors/TimeIndexVisitor.h similarity index 93% rename from src/solver/expressions/include/antares/solver/expressions/visitors/TimeIndexVisitor.h rename to src/expressions/include/antares/expressions/visitors/TimeIndexVisitor.h index ae1d49c8fc..a536a36b6c 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/TimeIndexVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/TimeIndexVisitor.h @@ -20,10 +20,10 @@ */ #pragma once -#include "antares/solver/expressions/visitors/NodeVisitor.h" -#include "antares/solver/expressions/visitors/TimeIndex.h" +#include "antares/expressions/visitors/NodeVisitor.h" +#include "antares/expressions/visitors/TimeIndex.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents a visitor for determining the time and scenario dependency of nodes in a syntax @@ -61,4 +61,4 @@ class TimeIndexVisitor: public NodeVisitor TimeIndex visit(const Nodes::ComponentVariableNode* component_variable_node) override; TimeIndex visit(const Nodes::ComponentParameterNode* component_parameter_node) override; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/iterators/pre-order.cpp b/src/expressions/iterators/pre-order.cpp similarity index 91% rename from src/solver/expressions/iterators/pre-order.cpp rename to src/expressions/iterators/pre-order.cpp index 57d27203a0..e9530e6695 100644 --- a/src/solver/expressions/iterators/pre-order.cpp +++ b/src/expressions/iterators/pre-order.cpp @@ -1,9 +1,9 @@ #include -#include -#include +#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { namespace { @@ -104,4 +104,4 @@ ASTPreOrderIterator AST::end() { return ASTPreOrderIterator(nullptr); } -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/nodes/BinaryNode.cpp b/src/expressions/nodes/BinaryNode.cpp similarity index 89% rename from src/solver/expressions/nodes/BinaryNode.cpp rename to src/expressions/nodes/BinaryNode.cpp index 31f22a7fc0..9a953e9bc3 100644 --- a/src/solver/expressions/nodes/BinaryNode.cpp +++ b/src/expressions/nodes/BinaryNode.cpp @@ -18,9 +18,9 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { BinaryNode::BinaryNode(Node* left, Node* right): leftOperand_(left), @@ -38,4 +38,4 @@ Node* BinaryNode::left() const return leftOperand_; } -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/nodes/ComponentNode.cpp b/src/expressions/nodes/ComponentNode.cpp similarity index 90% rename from src/solver/expressions/nodes/ComponentNode.cpp rename to src/expressions/nodes/ComponentNode.cpp index 4f72ffe940..6751b63884 100644 --- a/src/solver/expressions/nodes/ComponentNode.cpp +++ b/src/expressions/nodes/ComponentNode.cpp @@ -18,9 +18,9 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { ComponentNode::ComponentNode(const std::string& component_id, const std::string& component_name): component_id_(component_id), @@ -37,4 +37,4 @@ const std::string& ComponentNode::getComponentName() const { return component_name_; } -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/nodes/PortFieldNode.cpp b/src/expressions/nodes/PortFieldNode.cpp similarity index 90% rename from src/solver/expressions/nodes/PortFieldNode.cpp rename to src/expressions/nodes/PortFieldNode.cpp index 15ca1ff39c..f93b1a50be 100644 --- a/src/solver/expressions/nodes/PortFieldNode.cpp +++ b/src/expressions/nodes/PortFieldNode.cpp @@ -18,9 +18,9 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { PortFieldNode::PortFieldNode(const std::string& port_name, const std::string& field_name): Hashable(port_name_, field_name_), @@ -38,4 +38,4 @@ const std::string& PortFieldNode::getFieldName() const { return field_name_; } -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/nodes/PortFieldSumNode.cpp b/src/expressions/nodes/PortFieldSumNode.cpp similarity index 90% rename from src/solver/expressions/nodes/PortFieldSumNode.cpp rename to src/expressions/nodes/PortFieldSumNode.cpp index b396ebfbb6..bb743e541d 100644 --- a/src/solver/expressions/nodes/PortFieldSumNode.cpp +++ b/src/expressions/nodes/PortFieldSumNode.cpp @@ -18,9 +18,9 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { PortFieldSumNode::PortFieldSumNode(const std::string& port_name, const std::string& field_name): Hashable(port_name_, field_name_), @@ -38,4 +38,4 @@ const std::string& PortFieldSumNode::getFieldName() const { return field_name_; } -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/nodes/SumNode.cpp b/src/expressions/nodes/SumNode.cpp similarity index 90% rename from src/solver/expressions/nodes/SumNode.cpp rename to src/expressions/nodes/SumNode.cpp index ab1050a7da..e017380f7d 100644 --- a/src/solver/expressions/nodes/SumNode.cpp +++ b/src/expressions/nodes/SumNode.cpp @@ -18,9 +18,9 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { SumNode::SumNode(const std::vector& operands): @@ -43,4 +43,4 @@ Node* SumNode::operator[](std::size_t idx) const return operands_[idx]; } -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/nodes/UnaryNode.cpp b/src/expressions/nodes/UnaryNode.cpp similarity index 88% rename from src/solver/expressions/nodes/UnaryNode.cpp rename to src/expressions/nodes/UnaryNode.cpp index c52b2d973b..505e66d4fb 100644 --- a/src/solver/expressions/nodes/UnaryNode.cpp +++ b/src/expressions/nodes/UnaryNode.cpp @@ -18,9 +18,9 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include +#include -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { UnaryNode::UnaryNode(Node* n): child_(n) @@ -31,4 +31,4 @@ Node* UnaryNode::child() const { return child_; } -} // namespace Antares::Solver::Nodes +} // namespace Antares::Expressions::Nodes diff --git a/src/solver/expressions/visitors/AstDOTStyleVisitor.cpp b/src/expressions/visitors/AstDOTStyleVisitor.cpp similarity index 97% rename from src/solver/expressions/visitors/AstDOTStyleVisitor.cpp rename to src/expressions/visitors/AstDOTStyleVisitor.cpp index 2538ec1360..ab03120e17 100644 --- a/src/solver/expressions/visitors/AstDOTStyleVisitor.cpp +++ b/src/expressions/visitors/AstDOTStyleVisitor.cpp @@ -18,13 +18,13 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include "antares/solver/expressions/visitors/AstDOTStyleVisitor.h" +#include "antares/expressions/visitors/AstDOTStyleVisitor.h" #include -#include "antares/solver/expressions/nodes/ExpressionsNodes.h" +#include "antares/expressions/nodes/ExpressionsNodes.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { namespace NodeStyle { @@ -264,4 +264,4 @@ void AstDOTStyleVisitor::operator()(std::ostream& os, const Nodes::Node* root) dispatch(root, os); EndTreeGraph(os); } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/CloneVisitor.cpp b/src/expressions/visitors/CloneVisitor.cpp similarity index 95% rename from src/solver/expressions/visitors/CloneVisitor.cpp rename to src/expressions/visitors/CloneVisitor.cpp index 789f912eb9..672d5b93c0 100644 --- a/src/solver/expressions/visitors/CloneVisitor.cpp +++ b/src/expressions/visitors/CloneVisitor.cpp @@ -18,10 +18,10 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include -#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { CloneVisitor::CloneVisitor(Registry& registry): registry_(registry) @@ -125,4 +125,4 @@ std::string CloneVisitor::name() const return "CloneVisitor"; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/CompareVisitor.cpp b/src/expressions/visitors/CompareVisitor.cpp similarity index 90% rename from src/solver/expressions/visitors/CompareVisitor.cpp rename to src/expressions/visitors/CompareVisitor.cpp index 5fa4a090e6..05bf36c29a 100644 --- a/src/solver/expressions/visitors/CompareVisitor.cpp +++ b/src/expressions/visitors/CompareVisitor.cpp @@ -18,11 +18,11 @@ * You should have received a copy of the Mozilla Public Licence 2.0 * along with Antares_Simulator. If not, see . */ -#include -#include +#include +#include template -static bool compareBinaryNode(V& visitor, const T* node, const Antares::Solver::Nodes::Node* other) +static bool compareBinaryNode(V& visitor, const T* node, const Antares::Expressions::Nodes::Node* other) { if (const T* other_node = dynamic_cast(other)) { @@ -34,7 +34,7 @@ static bool compareBinaryNode(V& visitor, const T* node, const Antares::Solver:: } template -static bool compareGetValue(const T* node, const Antares::Solver::Nodes::Node* other) +static bool compareGetValue(const T* node, const Antares::Expressions::Nodes::Node* other) { if (const T* other_node = dynamic_cast(other)) { @@ -44,7 +44,7 @@ static bool compareGetValue(const T* node, const Antares::Solver::Nodes::Node* o } template -static bool compareEqualOperator(const T* node, const Antares::Solver::Nodes::Node* other) +static bool compareEqualOperator(const T* node, const Antares::Expressions::Nodes::Node* other) { if (const T* other_node = dynamic_cast(other)) { @@ -53,7 +53,7 @@ static bool compareEqualOperator(const T* node, const Antares::Solver::Nodes::No return false; } -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { bool CompareVisitor::visit(const Nodes::SumNode* node, const Nodes::Node* other) { @@ -154,4 +154,4 @@ std::string CompareVisitor::name() const return "CompareVisitor"; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/EvalVisitor.cpp b/src/expressions/visitors/EvalVisitor.cpp similarity index 95% rename from src/solver/expressions/visitors/EvalVisitor.cpp rename to src/expressions/visitors/EvalVisitor.cpp index aa89bd5cc9..29cbf430b9 100644 --- a/src/solver/expressions/visitors/EvalVisitor.cpp +++ b/src/expressions/visitors/EvalVisitor.cpp @@ -19,14 +19,14 @@ ** along with Antares_Simulator. If not, see . */ -#include "antares/solver/expressions/visitors/EvalVisitor.h" +#include "antares/expressions/visitors/EvalVisitor.h" #include #include -#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { EvalVisitor::EvalVisitor(EvaluationContext context): context_(std::move(context)) @@ -146,4 +146,4 @@ EvalVisitorNotImplemented::EvalVisitorNotImplemented(const std::string& visitor, std::invalid_argument("Visitor" + visitor + " not implemented for node type " + node) { } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/EvaluationContext.cpp b/src/expressions/visitors/EvaluationContext.cpp similarity index 75% rename from src/solver/expressions/visitors/EvaluationContext.cpp rename to src/expressions/visitors/EvaluationContext.cpp index d25f9ec603..96870c4e39 100644 --- a/src/solver/expressions/visitors/EvaluationContext.cpp +++ b/src/expressions/visitors/EvaluationContext.cpp @@ -1,6 +1,6 @@ -#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { EvaluationContext::EvaluationContext(std::map parameters, std::map variables): @@ -18,4 +18,4 @@ double EvaluationContext::getParameterValue(const std::string& key) const { return parameters_.at(key); } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/expressions/visitors/InvalidNode.cpp b/src/expressions/visitors/InvalidNode.cpp new file mode 100644 index 0000000000..2944c59aec --- /dev/null +++ b/src/expressions/visitors/InvalidNode.cpp @@ -0,0 +1,10 @@ +#include + +namespace Antares::Expressions::Visitors +{ + +InvalidNode::InvalidNode(const std::string& node_name): + std::invalid_argument("Antares::Expressions::Nodes Visitor: invalid node type " + node_name) +{ +} +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/LinearityVisitor.cpp b/src/expressions/visitors/LinearityVisitor.cpp similarity index 92% rename from src/solver/expressions/visitors/LinearityVisitor.cpp rename to src/expressions/visitors/LinearityVisitor.cpp index 51fddfaffd..ca7c1682b8 100644 --- a/src/solver/expressions/visitors/LinearityVisitor.cpp +++ b/src/expressions/visitors/LinearityVisitor.cpp @@ -19,14 +19,14 @@ ** along with Antares_Simulator. If not, see . */ -#include "antares/solver/expressions/visitors/LinearityVisitor.h" +#include "antares/expressions/visitors/LinearityVisitor.h" #include -#include -#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { LinearStatus LinearityVisitor::visit(const Nodes::SumNode* node) @@ -113,4 +113,4 @@ std::string LinearityVisitor::name() const { return "LinearityVisitor"; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/NodeVisitor.cpp b/src/expressions/visitors/NodeVisitor.cpp similarity index 90% rename from src/solver/expressions/visitors/NodeVisitor.cpp rename to src/expressions/visitors/NodeVisitor.cpp index 6499f72328..b9281e6640 100644 --- a/src/solver/expressions/visitors/NodeVisitor.cpp +++ b/src/expressions/visitors/NodeVisitor.cpp @@ -20,9 +20,9 @@ */ #include -#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { static void ToYuniInfo(const std::string& msg) { @@ -43,4 +43,4 @@ LogSink RedirectToAntaresLogs() { return {.info = ToYuniInfo, .warning = ToYuniWarning, .error = ToYuniError}; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/PortFieldSubstitutionVisitor.cpp b/src/expressions/visitors/PortFieldSubstitutionVisitor.cpp similarity index 87% rename from src/solver/expressions/visitors/PortFieldSubstitutionVisitor.cpp rename to src/expressions/visitors/PortFieldSubstitutionVisitor.cpp index d7dc95c5f1..094b8b386e 100644 --- a/src/solver/expressions/visitors/PortFieldSubstitutionVisitor.cpp +++ b/src/expressions/visitors/PortFieldSubstitutionVisitor.cpp @@ -19,10 +19,10 @@ ** along with Antares_Simulator. If not, see . */ -#include -#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { PortFieldSubstitutionVisitor::PortFieldSubstitutionVisitor(Registry& registry, @@ -47,4 +47,4 @@ std::string PortFieldSubstitutionVisitor::name() const return "PortFieldSubstitutionVisitor"; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/PortFieldSumSubstitutionVisitor.cpp b/src/expressions/visitors/PortFieldSumSubstitutionVisitor.cpp similarity index 87% rename from src/solver/expressions/visitors/PortFieldSumSubstitutionVisitor.cpp rename to src/expressions/visitors/PortFieldSumSubstitutionVisitor.cpp index cc984e1a43..e877cb13a9 100644 --- a/src/solver/expressions/visitors/PortFieldSumSubstitutionVisitor.cpp +++ b/src/expressions/visitors/PortFieldSumSubstitutionVisitor.cpp @@ -18,10 +18,10 @@ ** You should have received a copy of the Mozilla Public Licence 2.0 ** along with Antares_Simulator. If not, see . */ -#include -#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { PortFieldSumSubstitutionVisitor::PortFieldSumSubstitutionVisitor( @@ -48,4 +48,4 @@ std::string PortFieldSumSubstitutionVisitor::name() const return "PortFieldSumSubstitutionVisitor"; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/PrintVisitor.cpp b/src/expressions/visitors/PrintVisitor.cpp similarity index 94% rename from src/solver/expressions/visitors/PrintVisitor.cpp rename to src/expressions/visitors/PrintVisitor.cpp index 6e3a2992b3..fab9fac9a2 100644 --- a/src/solver/expressions/visitors/PrintVisitor.cpp +++ b/src/expressions/visitors/PrintVisitor.cpp @@ -21,10 +21,10 @@ #include #include -#include -#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { std::string PrintVisitor::visit(const Nodes::SumNode* node) { @@ -115,4 +115,4 @@ std::string PrintVisitor::name() const { return "PrintVisitor"; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/SubstitutionVisitor.cpp b/src/expressions/visitors/SubstitutionVisitor.cpp similarity index 89% rename from src/solver/expressions/visitors/SubstitutionVisitor.cpp rename to src/expressions/visitors/SubstitutionVisitor.cpp index 417f77a417..a24cc12c02 100644 --- a/src/solver/expressions/visitors/SubstitutionVisitor.cpp +++ b/src/expressions/visitors/SubstitutionVisitor.cpp @@ -21,10 +21,10 @@ #include -#include -#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { SubstitutionVisitor::SubstitutionVisitor(Registry& registry, SubstitutionContext& ctx): CloneVisitor(registry), @@ -56,4 +56,4 @@ std::string SubstitutionVisitor::name() const { return "SubstitutionVisitor"; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/visitors/TimeIndexVisitor.cpp b/src/expressions/visitors/TimeIndexVisitor.cpp similarity index 94% rename from src/solver/expressions/visitors/TimeIndexVisitor.cpp rename to src/expressions/visitors/TimeIndexVisitor.cpp index a26c334a7b..7ab55a6b9a 100644 --- a/src/solver/expressions/visitors/TimeIndexVisitor.cpp +++ b/src/expressions/visitors/TimeIndexVisitor.cpp @@ -21,10 +21,10 @@ #include -#include -#include +#include +#include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { TimeIndex TimeIndexVisitor::visit(const Nodes::SumNode* node) @@ -121,4 +121,4 @@ std::string TimeIndexVisitor::name() const return "TimeIndexVisitor"; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/CMakeLists.txt b/src/solver/CMakeLists.txt index 01c4dd23a2..3c62692503 100644 --- a/src/solver/CMakeLists.txt +++ b/src/solver/CMakeLists.txt @@ -9,7 +9,6 @@ endif (MSVC) add_subdirectory(application) add_subdirectory(constraints-builder) -add_subdirectory(expressions) add_subdirectory(hydro) add_subdirectory(infeasible-problem-analysis) add_subdirectory(lps) diff --git a/src/solver/expressions/CMakeLists.txt b/src/solver/expressions/CMakeLists.txt deleted file mode 100644 index 58643f6529..0000000000 --- a/src/solver/expressions/CMakeLists.txt +++ /dev/null @@ -1,99 +0,0 @@ -project(Expressions) - - -set(SRC_Expressions - nodes/PortFieldNode.cpp - nodes/PortFieldSumNode.cpp - nodes/ComponentNode.cpp - nodes/BinaryNode.cpp - nodes/UnaryNode.cpp - nodes/SumNode.cpp - - visitors/CloneVisitor.cpp - visitors/CompareVisitor.cpp - visitors/EvalVisitor.cpp - visitors/EvaluationContext.cpp - visitors/LinearityVisitor.cpp - visitors/TimeIndexVisitor.cpp - visitors/PrintVisitor.cpp - visitors/SubstitutionVisitor.cpp - visitors/PortFieldSubstitutionVisitor.cpp - visitors/PortFieldSumSubstitutionVisitor.cpp - visitors/AstDOTStyleVisitor.cpp - visitors/InvalidNode.cpp - visitors/NodeVisitor.cpp - - hashable.cpp - - NodeRegistry.cpp - include/antares/solver/expressions/NodeRegistry.h - include/antares/solver/expressions/nodes/SumNode.h - include/antares/solver/expressions/nodes/BinaryNode.h - include/antares/solver/expressions/nodes/ComparisonNode.h - include/antares/solver/expressions/nodes/ComponentNode.h - include/antares/solver/expressions/nodes/DivisionNode.h - include/antares/solver/expressions/nodes/EqualNode.h - include/antares/solver/expressions/nodes/ExpressionsNodes.h - include/antares/solver/expressions/nodes/GreaterThanOrEqualNode.h - include/antares/solver/expressions/nodes/Leaf.h - include/antares/solver/expressions/nodes/LessThanOrEqualNode.h - include/antares/solver/expressions/nodes/LiteralNode.h - include/antares/solver/expressions/nodes/MultiplicationNode.h - include/antares/solver/expressions/nodes/NegationNode.h - include/antares/solver/expressions/nodes/Node.h - include/antares/solver/expressions/nodes/NodesForwardDeclaration.h - include/antares/solver/expressions/nodes/ParameterNode.h - include/antares/solver/expressions/nodes/PortFieldNode.h - include/antares/solver/expressions/nodes/PortFieldSumNode.h - include/antares/solver/expressions/nodes/SubtractionNode.h - include/antares/solver/expressions/nodes/UnaryNode.h - include/antares/solver/expressions/nodes/VariableNode.h - - include/antares/solver/expressions/visitors/CloneVisitor.h - include/antares/solver/expressions/visitors/CompareVisitor.h - include/antares/solver/expressions/visitors/EvalVisitor.h - include/antares/solver/expressions/visitors/EvaluationContext.h - include/antares/solver/expressions/visitors/LinearStatus.h - include/antares/solver/expressions/visitors/LinearityVisitor.h - include/antares/solver/expressions/visitors/NodeVisitor.h - include/antares/solver/expressions/visitors/PrintVisitor.h - include/antares/solver/expressions/visitors/TimeIndexVisitor.h - include/antares/solver/expressions/visitors/TimeIndex.h - include/antares/solver/expressions/visitors/SubstitutionVisitor.h - include/antares/solver/expressions/visitors/PortFieldSubstitutionVisitor.h - include/antares/solver/expressions/visitors/PortFieldSumSubstitutionVisitor.h - include/antares/solver/expressions/visitors/AstDOTStyleVisitor.h - include/antares/solver/expressions/visitors/InvalidNode.h - - include/antares/solver/expressions/Registry.hxx - include/antares/solver/expressions/IName.h - include/antares/solver/expressions/hashable.h -) - -source_group("expressions" FILES ${SRC_Expressions}) -add_library(solver-expressions - ${SRC_Expressions}) -add_library(Antares::solver-expressions ALIAS solver-expressions) - -target_include_directories(solver-expressions - PUBLIC - $ -) -target_link_libraries(solver-expressions - PUBLIC - Boost::headers - Antares::logs -) - - -add_library(solver-expressions-iterators - iterators/pre-order.cpp - include/antares/solver/expressions/iterators/pre-order.h -) - -target_link_libraries(solver-expressions-iterators PRIVATE solver-expressions) - -install(DIRECTORY include/antares - DESTINATION "include" -) - diff --git a/src/solver/expressions/NodeRegistry.cpp b/src/solver/expressions/NodeRegistry.cpp deleted file mode 100644 index 0fdbdea819..0000000000 --- a/src/solver/expressions/NodeRegistry.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include - -namespace Antares::Solver -{ -NodeRegistry::NodeRegistry(Antares::Solver::Nodes::Node* node, - Antares::Solver::Registry registry): - node(node), - registry(std::move(registry)) -{ -} - -} // namespace Antares::Solver diff --git a/src/solver/expressions/visitors/InvalidNode.cpp b/src/solver/expressions/visitors/InvalidNode.cpp deleted file mode 100644 index 5245a5ebc9..0000000000 --- a/src/solver/expressions/visitors/InvalidNode.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include - -namespace Antares::Solver::Visitors -{ - -InvalidNode::InvalidNode(const std::string& node_name): - std::invalid_argument("Antares::Solver::Nodes Visitor: invalid node type " + node_name) -{ -} -} // namespace Antares::Solver::Visitors diff --git a/src/solver/modelConverter/CMakeLists.txt b/src/solver/modelConverter/CMakeLists.txt index 005a47e55d..672504e185 100644 --- a/src/solver/modelConverter/CMakeLists.txt +++ b/src/solver/modelConverter/CMakeLists.txt @@ -21,7 +21,7 @@ target_link_libraries(modelConverter Antares::antares-study-system-model Antares::modelParser Antares::antlr-interface - Antares::solver-expressions + Antares::expressions ) install(DIRECTORY include/antares diff --git a/src/solver/modelConverter/convertorVisitor.cpp b/src/solver/modelConverter/convertorVisitor.cpp index 8782340f1a..962ff88f67 100644 --- a/src/solver/modelConverter/convertorVisitor.cpp +++ b/src/solver/modelConverter/convertorVisitor.cpp @@ -19,9 +19,8 @@ * along with Antares_Simulator. If not, see . */ -#include +#include #include -#include "antares/solver/expressions/visitors/TimeIndex.h" #include "ExprLexer.h" #include "ExprParser.h" @@ -30,13 +29,13 @@ namespace Antares::Solver::ModelConverter { -using namespace Antares::Solver::Nodes; +using namespace Antares::Expressions::Nodes; -/// Visitor to convert ANTLR expressions to Antares::Solver::Nodes +/// Visitor to convert ANTLR expressions to Antares::Expressions::Nodes class ConvertorVisitor: public ExprVisitor { public: - ConvertorVisitor(Registry& registry, const ModelParser::Model& model); + ConvertorVisitor(Expressions::Registry& registry, const ModelParser::Model& model); std::any visit(antlr4::tree::ParseTree* tree) override; @@ -66,11 +65,12 @@ class ConvertorVisitor: public ExprVisitor std::any visitRightExpression(ExprParser::RightExpressionContext* context) override; private: - Registry& registry_; + Expressions::Registry& registry_; const ModelParser::Model& model_; }; -NodeRegistry convertExpressionToNode(const std::string& exprStr, const ModelParser::Model& model) +Expressions::NodeRegistry convertExpressionToNode(const std::string& exprStr, + const ModelParser::Model& model) { if (exprStr.empty()) { @@ -82,13 +82,13 @@ NodeRegistry convertExpressionToNode(const std::string& exprStr, const ModelPars ExprParser parser(&tokens); ExprParser::ExprContext* tree = parser.expr(); - Antares::Solver::Registry registry; + Expressions::Registry registry; ConvertorVisitor visitor(registry, model); auto root = std::any_cast(visitor.visit(tree)); - return NodeRegistry(root, std::move(registry)); + return Expressions::NodeRegistry(root, std::move(registry)); } -ConvertorVisitor::ConvertorVisitor(Antares::Solver::Registry& registry, +ConvertorVisitor::ConvertorVisitor(Expressions::Registry& registry, const ModelParser::Model& model): registry_(registry), model_(model) @@ -115,10 +115,11 @@ static constexpr unsigned int convertBool(bool in) return in ? 1 : 0; } -static constexpr Visitors::TimeIndex convertToTimeIndex(bool timedependent, bool scenariodependent) +static constexpr Expressions::Visitors::TimeIndex convertToTimeIndex(bool timedependent, + bool scenariodependent) { - return static_cast((convertBool(scenariodependent) << 1) - | convertBool(timedependent)); + return static_cast((convertBool(scenariodependent) << 1) + | convertBool(timedependent)); } std::any ConvertorVisitor::visitIdentifier(ExprParser::IdentifierContext* context) diff --git a/src/solver/modelConverter/include/antares/solver/modelConverter/convertorVisitor.h b/src/solver/modelConverter/include/antares/solver/modelConverter/convertorVisitor.h index 5ee862d02b..926690beda 100644 --- a/src/solver/modelConverter/include/antares/solver/modelConverter/convertorVisitor.h +++ b/src/solver/modelConverter/include/antares/solver/modelConverter/convertorVisitor.h @@ -23,11 +23,12 @@ #include -#include +#include #include "antares/solver/modelParser/Library.h" namespace Antares::Solver::ModelConverter { -NodeRegistry convertExpressionToNode(const std::string& exprStr, const ModelParser::Model& model); +Expressions::NodeRegistry convertExpressionToNode(const std::string& exprStr, + const ModelParser::Model& model); } // namespace Antares::Solver::ModelConverter diff --git a/src/solver/modelConverter/include/antares/solver/modelConverter/modelConverter.h b/src/solver/modelConverter/include/antares/solver/modelConverter/modelConverter.h index ffa0b66a71..87418e3b80 100644 --- a/src/solver/modelConverter/include/antares/solver/modelConverter/modelConverter.h +++ b/src/solver/modelConverter/include/antares/solver/modelConverter/modelConverter.h @@ -37,7 +37,7 @@ class Library; } } // namespace Antares -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { class Node; } @@ -50,5 +50,5 @@ class UnknownTypeException: public std::runtime_error explicit UnknownTypeException(ModelParser::ValueType type); }; -Antares::Study::SystemModel::Library convert(const Antares::Solver::ModelParser::Library& library); +Study::SystemModel::Library convert(const ModelParser::Library& library); } // namespace Antares::Solver::ModelConverter diff --git a/src/solver/modelConverter/modelConverter.cpp b/src/solver/modelConverter/modelConverter.cpp index d44201fcdc..e3de2967af 100644 --- a/src/solver/modelConverter/modelConverter.cpp +++ b/src/solver/modelConverter/modelConverter.cpp @@ -21,10 +21,9 @@ #include "antares/solver/modelConverter/modelConverter.h" -#include "antares/solver/expressions/visitors/TimeIndex.h" +#include "antares/expressions/expression.h" #include "antares/solver/modelConverter/convertorVisitor.h" #include "antares/study/system-model/constraint.h" -#include "antares/study/system-model/expression.h" #include "antares/study/system-model/library.h" #include "antares/study/system-model/model.h" #include "antares/study/system-model/parameter.h" diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemFiller.h b/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemFiller.h index 80b141dd30..f0c1cf6658 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemFiller.h +++ b/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemFiller.h @@ -27,12 +27,12 @@ #include #include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { enum class TimeIndex : unsigned int; } -namespace Antares::Solver::Nodes +namespace Antares::Expressions::Nodes { class Node; } @@ -67,7 +67,8 @@ struct FillContext private: unsigned firstTimeStep = 0; unsigned lastTimeStep = 0; - std::unordered_map nodesTimeIndex; + std::unordered_map + nodesTimeIndex; }; class LinearProblemFiller diff --git a/src/solver/optim-model-filler/CMakeLists.txt b/src/solver/optim-model-filler/CMakeLists.txt index 8fb6bdc0e0..b45aee4585 100644 --- a/src/solver/optim-model-filler/CMakeLists.txt +++ b/src/solver/optim-model-filler/CMakeLists.txt @@ -18,7 +18,7 @@ set_target_properties(${PROJ} PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(${PROJ} PRIVATE - Antares::solver-expressions + Antares::expressions Antares::antares-study-system-model Antares::modeler_api ) diff --git a/src/solver/optim-model-filler/ComponentFiller.cpp b/src/solver/optim-model-filler/ComponentFiller.cpp index a26c394800..6983750d93 100644 --- a/src/solver/optim-model-filler/ComponentFiller.cpp +++ b/src/solver/optim-model-filler/ComponentFiller.cpp @@ -21,12 +21,12 @@ #include -#include -#include +#include +#include #include #include #include -#include "antares/solver/expressions/visitors/TimeIndexVisitor.h" +#include "antares/expressions/visitors/TimeIndexVisitor.h" namespace Antares::Optimization { @@ -54,7 +54,7 @@ void ComponentFiller::addVariables(Solver::Modeler::Api::ILinearProblem& pb, return; } - Solver::Visitors::EvalVisitor evaluator(evaluationContext_); + Expressions::Visitors::EvalVisitor evaluator(evaluationContext_); for (const auto& variable: component_.getModel()->Variables() | std::views::values) { if (variable.isTimeDependent()) @@ -183,12 +183,12 @@ void ComponentFiller::addObjective(Solver::Modeler::Api::ILinearProblem& pb, } } -bool ComponentFiller::IsThisConstraintTimeDependent(const Solver::Nodes::Node* node) +bool ComponentFiller::IsThisConstraintTimeDependent(const Expressions::Nodes::Node* node) { - Solver::Visitors::TimeIndexVisitor timeIndexVisitor; + Expressions::Visitors::TimeIndexVisitor timeIndexVisitor; const auto ret = timeIndexVisitor.dispatch(node); - return ret == Solver::Visitors::TimeIndex::VARYING_IN_TIME_ONLY - || ret == Solver::Visitors::TimeIndex::VARYING_IN_TIME_AND_SCENARIO; + return ret == Expressions::Visitors::TimeIndex::VARYING_IN_TIME_ONLY + || ret == Expressions::Visitors::TimeIndex::VARYING_IN_TIME_AND_SCENARIO; } // return false if the variable with the id var_id is not found or if it is not time-dependent diff --git a/src/solver/optim-model-filler/ReadLinearConstraintVisitor.cpp b/src/solver/optim-model-filler/ReadLinearConstraintVisitor.cpp index 9e33b5868e..5643c67a8e 100644 --- a/src/solver/optim-model-filler/ReadLinearConstraintVisitor.cpp +++ b/src/solver/optim-model-filler/ReadLinearConstraintVisitor.cpp @@ -19,17 +19,17 @@ * along with Antares_Simulator. If not, see . */ -#include +#include #include #include -using namespace Antares::Solver::Nodes; +using namespace Antares::Expressions::Nodes; namespace Antares::Optimization { ReadLinearConstraintVisitor::ReadLinearConstraintVisitor( - Solver::Visitors::EvaluationContext context): + Expressions::Visitors::EvaluationContext context): linear_expression_visitor_(std::move(context)) { } diff --git a/src/solver/optim-model-filler/ReadLinearExpressionVisitor.cpp b/src/solver/optim-model-filler/ReadLinearExpressionVisitor.cpp index ccc722bdc0..2634d05fe0 100644 --- a/src/solver/optim-model-filler/ReadLinearExpressionVisitor.cpp +++ b/src/solver/optim-model-filler/ReadLinearExpressionVisitor.cpp @@ -21,18 +21,18 @@ #include -#include -#include -#include +#include +#include +#include #include -using namespace Antares::Solver::Nodes; +using namespace Antares::Expressions::Nodes; namespace Antares::Optimization { ReadLinearExpressionVisitor::ReadLinearExpressionVisitor( - Solver::Visitors::EvaluationContext context): + Expressions::Visitors::EvaluationContext context): context_(std::move(context)) { } diff --git a/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ComponentFiller.h b/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ComponentFiller.h index 318da32fb1..14be3584a0 100644 --- a/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ComponentFiller.h +++ b/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ComponentFiller.h @@ -23,7 +23,7 @@ #include #include -#include "antares/solver/expressions/visitors/EvaluationContext.h" +#include "antares/expressions/visitors/EvaluationContext.h" #include "ReadLinearConstraintVisitor.h" @@ -33,7 +33,7 @@ class Component; class Variable; } // namespace Antares::Study::SystemModel -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { class EvalVisitor; } @@ -74,12 +74,12 @@ class ComponentFiller: public Solver::Modeler::Api::LinearProblemFiller Solver::Modeler::Api::FillContext& ctx) override; private: - static bool IsThisConstraintTimeDependent(const Solver::Nodes::Node* node); + static bool IsThisConstraintTimeDependent(const Expressions::Nodes::Node* node); bool IsThisVariableTimeDependent(const std::string& var_id) const; const Study::SystemModel::Component& component_; - Solver::Visitors::EvaluationContext evaluationContext_; + Expressions::Visitors::EvaluationContext evaluationContext_; const std::map& modelVariable_; }; } // namespace Antares::Optimization diff --git a/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ReadLinearConstraintVisitor.h b/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ReadLinearConstraintVisitor.h index 2951f7d1bf..0c6342061b 100644 --- a/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ReadLinearConstraintVisitor.h +++ b/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ReadLinearConstraintVisitor.h @@ -23,8 +23,8 @@ #include -#include -#include +#include +#include #include "ReadLinearExpressionVisitor.h" @@ -50,29 +50,29 @@ struct LinearConstraint double ub = std::numeric_limits::infinity(); }; -class ReadLinearConstraintVisitor: public Solver::Visitors::NodeVisitor +class ReadLinearConstraintVisitor: public Expressions::Visitors::NodeVisitor { public: ReadLinearConstraintVisitor() = default; - explicit ReadLinearConstraintVisitor(Solver::Visitors::EvaluationContext context); + explicit ReadLinearConstraintVisitor(Expressions::Visitors::EvaluationContext context); std::string name() const override; private: ReadLinearExpressionVisitor linear_expression_visitor_; - LinearConstraint visit(const Solver::Nodes::SumNode* node) override; - LinearConstraint visit(const Solver::Nodes::SubtractionNode* node) override; - LinearConstraint visit(const Solver::Nodes::MultiplicationNode* node) override; - LinearConstraint visit(const Solver::Nodes::DivisionNode* node) override; - LinearConstraint visit(const Solver::Nodes::EqualNode* node) override; - LinearConstraint visit(const Solver::Nodes::LessThanOrEqualNode* node) override; - LinearConstraint visit(const Solver::Nodes::GreaterThanOrEqualNode* node) override; - LinearConstraint visit(const Solver::Nodes::NegationNode* node) override; - LinearConstraint visit(const Solver::Nodes::VariableNode* node) override; - LinearConstraint visit(const Solver::Nodes::ParameterNode* node) override; - LinearConstraint visit(const Solver::Nodes::LiteralNode* node) override; - LinearConstraint visit(const Solver::Nodes::PortFieldNode* node) override; - LinearConstraint visit(const Solver::Nodes::PortFieldSumNode* node) override; - LinearConstraint visit(const Solver::Nodes::ComponentVariableNode* node) override; - LinearConstraint visit(const Solver::Nodes::ComponentParameterNode* node) override; + LinearConstraint visit(const Expressions::Nodes::SumNode* node) override; + LinearConstraint visit(const Expressions::Nodes::SubtractionNode* node) override; + LinearConstraint visit(const Expressions::Nodes::MultiplicationNode* node) override; + LinearConstraint visit(const Expressions::Nodes::DivisionNode* node) override; + LinearConstraint visit(const Expressions::Nodes::EqualNode* node) override; + LinearConstraint visit(const Expressions::Nodes::LessThanOrEqualNode* node) override; + LinearConstraint visit(const Expressions::Nodes::GreaterThanOrEqualNode* node) override; + LinearConstraint visit(const Expressions::Nodes::NegationNode* node) override; + LinearConstraint visit(const Expressions::Nodes::VariableNode* node) override; + LinearConstraint visit(const Expressions::Nodes::ParameterNode* node) override; + LinearConstraint visit(const Expressions::Nodes::LiteralNode* node) override; + LinearConstraint visit(const Expressions::Nodes::PortFieldNode* node) override; + LinearConstraint visit(const Expressions::Nodes::PortFieldSumNode* node) override; + LinearConstraint visit(const Expressions::Nodes::ComponentVariableNode* node) override; + LinearConstraint visit(const Expressions::Nodes::ComponentParameterNode* node) override; }; } // namespace Antares::Optimization diff --git a/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ReadLinearExpressionVisitor.h b/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ReadLinearExpressionVisitor.h index ed86bf9617..4a6126294f 100644 --- a/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ReadLinearExpressionVisitor.h +++ b/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ReadLinearExpressionVisitor.h @@ -21,8 +21,8 @@ #pragma once -#include -#include +#include +#include #include /** @@ -34,29 +34,29 @@ namespace Antares::Optimization { -class ReadLinearExpressionVisitor: public Solver::Visitors::NodeVisitor +class ReadLinearExpressionVisitor: public Expressions::Visitors::NodeVisitor { public: ReadLinearExpressionVisitor() = default; - explicit ReadLinearExpressionVisitor(Solver::Visitors::EvaluationContext context); + explicit ReadLinearExpressionVisitor(Expressions::Visitors::EvaluationContext context); std::string name() const override; private: - const Solver::Visitors::EvaluationContext context_; - LinearExpression visit(const Solver::Nodes::SumNode* node) override; - LinearExpression visit(const Solver::Nodes::SubtractionNode* node) override; - LinearExpression visit(const Solver::Nodes::MultiplicationNode* node) override; - LinearExpression visit(const Solver::Nodes::DivisionNode* node) override; - LinearExpression visit(const Solver::Nodes::EqualNode* node) override; - LinearExpression visit(const Solver::Nodes::LessThanOrEqualNode* node) override; - LinearExpression visit(const Solver::Nodes::GreaterThanOrEqualNode* node) override; - LinearExpression visit(const Solver::Nodes::NegationNode* node) override; - LinearExpression visit(const Solver::Nodes::VariableNode* node) override; - LinearExpression visit(const Solver::Nodes::ParameterNode* node) override; - LinearExpression visit(const Solver::Nodes::LiteralNode* node) override; - LinearExpression visit(const Solver::Nodes::PortFieldNode* node) override; - LinearExpression visit(const Solver::Nodes::PortFieldSumNode* node) override; - LinearExpression visit(const Solver::Nodes::ComponentVariableNode* node) override; - LinearExpression visit(const Solver::Nodes::ComponentParameterNode* node) override; + const Expressions::Visitors::EvaluationContext context_; + LinearExpression visit(const Expressions::Nodes::SumNode* node) override; + LinearExpression visit(const Expressions::Nodes::SubtractionNode* node) override; + LinearExpression visit(const Expressions::Nodes::MultiplicationNode* node) override; + LinearExpression visit(const Expressions::Nodes::DivisionNode* node) override; + LinearExpression visit(const Expressions::Nodes::EqualNode* node) override; + LinearExpression visit(const Expressions::Nodes::LessThanOrEqualNode* node) override; + LinearExpression visit(const Expressions::Nodes::GreaterThanOrEqualNode* node) override; + LinearExpression visit(const Expressions::Nodes::NegationNode* node) override; + LinearExpression visit(const Expressions::Nodes::VariableNode* node) override; + LinearExpression visit(const Expressions::Nodes::ParameterNode* node) override; + LinearExpression visit(const Expressions::Nodes::LiteralNode* node) override; + LinearExpression visit(const Expressions::Nodes::PortFieldNode* node) override; + LinearExpression visit(const Expressions::Nodes::PortFieldSumNode* node) override; + LinearExpression visit(const Expressions::Nodes::ComponentVariableNode* node) override; + LinearExpression visit(const Expressions::Nodes::ComponentParameterNode* node) override; }; } // namespace Antares::Optimization diff --git a/src/study/system-model/CMakeLists.txt b/src/study/system-model/CMakeLists.txt index 1eb8909b6b..666f7511c3 100644 --- a/src/study/system-model/CMakeLists.txt +++ b/src/study/system-model/CMakeLists.txt @@ -11,7 +11,6 @@ set(SRC_model include/antares/study/system-model/valueType.h include/antares/study/system-model/variable.h include/antares/study/system-model/constraint.h - include/antares/study/system-model/expression.h include/antares/study/system-model/port.h include/antares/study/system-model/portField.h include/antares/study/system-model/portFieldDefinition.h @@ -32,7 +31,7 @@ target_include_directories(antares-study-system-model ) target_link_libraries(antares-study-system-model PUBLIC - Antares::solver-expressions + Antares::expressions ) install(DIRECTORY include/antares DESTINATION "include" diff --git a/src/study/system-model/include/antares/study/system-model/constraint.h b/src/study/system-model/include/antares/study/system-model/constraint.h index 5b14891cc7..250e328354 100644 --- a/src/study/system-model/include/antares/study/system-model/constraint.h +++ b/src/study/system-model/include/antares/study/system-model/constraint.h @@ -23,10 +23,11 @@ #include #include -#include "expression.h" +#include + #include "parameter.h" -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { enum class TimeIndex : unsigned int; } diff --git a/src/study/system-model/include/antares/study/system-model/model.h b/src/study/system-model/include/antares/study/system-model/model.h index a878838315..fc5db0048e 100644 --- a/src/study/system-model/include/antares/study/system-model/model.h +++ b/src/study/system-model/include/antares/study/system-model/model.h @@ -23,8 +23,9 @@ #include #include +#include + #include "constraint.h" -#include "expression.h" #include "parameter.h" #include "port.h" #include "variable.h" diff --git a/src/study/system-model/include/antares/study/system-model/variable.h b/src/study/system-model/include/antares/study/system-model/variable.h index 45bf093197..9bf14c6022 100644 --- a/src/study/system-model/include/antares/study/system-model/variable.h +++ b/src/study/system-model/include/antares/study/system-model/variable.h @@ -22,9 +22,10 @@ #include -#include "expression.h" -#include "valueType.h" +#include + #include "timeAndScenarioType.h" +#include "valueType.h" namespace Antares::Study::SystemModel { @@ -38,12 +39,13 @@ class Variable Expression upper_bound, ValueType type, TimeDependent timeDependent, - ScenarioDependent scenarioDependent): id_(std::move(id)), - type_(type), - lowerBound_(std::move(lower_bound)), - upperBound_(std::move(upper_bound)), - timeDependent(timeDependent), - scenarioDependent(scenarioDependent) + ScenarioDependent scenarioDependent): + id_(std::move(id)), + type_(type), + lowerBound_(std::move(lower_bound)), + upperBound_(std::move(upper_bound)), + timeDependent(timeDependent), + scenarioDependent(scenarioDependent) { } diff --git a/src/tests/src/CMakeLists.txt b/src/tests/src/CMakeLists.txt index 02418c5997..f4d313936d 100644 --- a/src/tests/src/CMakeLists.txt +++ b/src/tests/src/CMakeLists.txt @@ -6,4 +6,5 @@ add_subdirectory(libs) add_subdirectory(solver) +add_subdirectory(expressions) add_subdirectory(study) diff --git a/src/tests/src/solver/expressions/CMakeLists.txt b/src/tests/src/expressions/CMakeLists.txt similarity index 87% rename from src/tests/src/solver/expressions/CMakeLists.txt rename to src/tests/src/expressions/CMakeLists.txt index c41dde6d3b..bb261ee7b7 100644 --- a/src/tests/src/solver/expressions/CMakeLists.txt +++ b/src/tests/src/expressions/CMakeLists.txt @@ -13,5 +13,5 @@ add_boost_test(test-expressions test_Iterators.cpp test_AstDOTStyleVisitor.cpp LIBS - solver-expressions - solver-expressions-iterators) + expressions + expressions-iterators) diff --git a/src/tests/src/solver/expressions/test_AstDOTStyleVisitor.cpp b/src/tests/src/expressions/test_AstDOTStyleVisitor.cpp similarity index 95% rename from src/tests/src/solver/expressions/test_AstDOTStyleVisitor.cpp rename to src/tests/src/expressions/test_AstDOTStyleVisitor.cpp index c227cda025..c01db11b14 100644 --- a/src/tests/src/solver/expressions/test_AstDOTStyleVisitor.cpp +++ b/src/tests/src/expressions/test_AstDOTStyleVisitor.cpp @@ -23,13 +23,13 @@ #include -#include -#include -#include +#include +#include +#include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; BOOST_AUTO_TEST_SUITE(_AstGraphVisitor_) diff --git a/src/tests/src/solver/expressions/test_CloneVisitor.cpp b/src/tests/src/expressions/test_CloneVisitor.cpp similarity index 87% rename from src/tests/src/solver/expressions/test_CloneVisitor.cpp rename to src/tests/src/expressions/test_CloneVisitor.cpp index c251662b5a..ff84c375ba 100644 --- a/src/tests/src/solver/expressions/test_CloneVisitor.cpp +++ b/src/tests/src/expressions/test_CloneVisitor.cpp @@ -23,14 +23,14 @@ #include -#include -#include -#include -#include +#include +#include +#include +#include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; BOOST_AUTO_TEST_SUITE(_CloneVisitor_) diff --git a/src/tests/src/solver/expressions/test_CompareVisitor.cpp b/src/tests/src/expressions/test_CompareVisitor.cpp similarity index 94% rename from src/tests/src/solver/expressions/test_CompareVisitor.cpp rename to src/tests/src/expressions/test_CompareVisitor.cpp index b0da099b80..efccfb1b74 100644 --- a/src/tests/src/solver/expressions/test_CompareVisitor.cpp +++ b/src/tests/src/expressions/test_CompareVisitor.cpp @@ -23,14 +23,14 @@ #include -#include -#include -#include -#include - -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +#include +#include +#include +#include + +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; struct ComparisonFixture { diff --git a/src/tests/src/solver/expressions/test_DeepWideTrees.cpp b/src/tests/src/expressions/test_DeepWideTrees.cpp similarity index 89% rename from src/tests/src/solver/expressions/test_DeepWideTrees.cpp rename to src/tests/src/expressions/test_DeepWideTrees.cpp index cf3fabd84d..99f0716d06 100644 --- a/src/tests/src/solver/expressions/test_DeepWideTrees.cpp +++ b/src/tests/src/expressions/test_DeepWideTrees.cpp @@ -23,14 +23,14 @@ #include -#include -#include -#include -#include +#include +#include +#include +#include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; BOOST_AUTO_TEST_SUITE(_DeepTree_) diff --git a/src/tests/src/solver/expressions/test_Iterators.cpp b/src/tests/src/expressions/test_Iterators.cpp similarity index 94% rename from src/tests/src/solver/expressions/test_Iterators.cpp rename to src/tests/src/expressions/test_Iterators.cpp index 9460f5e465..c5541f74d8 100644 --- a/src/tests/src/solver/expressions/test_Iterators.cpp +++ b/src/tests/src/expressions/test_Iterators.cpp @@ -23,12 +23,12 @@ #include -#include -#include -#include +#include +#include +#include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; BOOST_AUTO_TEST_SUITE(_Iterator_) diff --git a/src/tests/src/solver/expressions/test_LinearVisitor.cpp b/src/tests/src/expressions/test_LinearVisitor.cpp similarity index 95% rename from src/tests/src/solver/expressions/test_LinearVisitor.cpp rename to src/tests/src/expressions/test_LinearVisitor.cpp index 590a6e4e85..ca7d8980fd 100644 --- a/src/tests/src/solver/expressions/test_LinearVisitor.cpp +++ b/src/tests/src/expressions/test_LinearVisitor.cpp @@ -24,21 +24,21 @@ #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; namespace bdata = boost::unit_test::data; // Only necessary for BOOST_CHECK_EQUAL -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { static std::ostream& operator<<(std::ostream& os, LinearStatus s) { @@ -54,7 +54,7 @@ static std::ostream& operator<<(std::ostream& os, LinearStatus s) return os << ""; } } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors BOOST_AUTO_TEST_SUITE(_LinearVisitor_) diff --git a/src/tests/src/solver/expressions/test_PrintAndEvalNodes.cpp b/src/tests/src/expressions/test_PrintAndEvalNodes.cpp similarity index 97% rename from src/tests/src/solver/expressions/test_PrintAndEvalNodes.cpp rename to src/tests/src/expressions/test_PrintAndEvalNodes.cpp index 8ea1a61b1e..1204fce651 100644 --- a/src/tests/src/solver/expressions/test_PrintAndEvalNodes.cpp +++ b/src/tests/src/expressions/test_PrintAndEvalNodes.cpp @@ -23,14 +23,14 @@ #include -#include -#include -#include -#include - -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +#include +#include +#include +#include + +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; BOOST_AUTO_TEST_SUITE(_PrintAndEvalNodes_) diff --git a/src/tests/src/solver/expressions/test_SubstitutionVisitor.cpp b/src/tests/src/expressions/test_SubstitutionVisitor.cpp similarity index 91% rename from src/tests/src/solver/expressions/test_SubstitutionVisitor.cpp rename to src/tests/src/expressions/test_SubstitutionVisitor.cpp index dc310c7aa1..f45659f58c 100644 --- a/src/tests/src/solver/expressions/test_SubstitutionVisitor.cpp +++ b/src/tests/src/expressions/test_SubstitutionVisitor.cpp @@ -23,17 +23,17 @@ #include -#include -#include -#include -#include -#include -#include -#include - -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +#include +#include +#include +#include +#include +#include +#include + +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; // Only necessary for BOOST_CHECK_EQUAL diff --git a/src/tests/src/solver/expressions/test_TimeIndexVisitor.cpp b/src/tests/src/expressions/test_TimeIndexVisitor.cpp similarity index 95% rename from src/tests/src/solver/expressions/test_TimeIndexVisitor.cpp rename to src/tests/src/expressions/test_TimeIndexVisitor.cpp index ffdcde49fa..873feee7e7 100644 --- a/src/tests/src/solver/expressions/test_TimeIndexVisitor.cpp +++ b/src/tests/src/expressions/test_TimeIndexVisitor.cpp @@ -24,18 +24,18 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; namespace bdata = boost::unit_test::data; -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { static std::ostream& operator<<(std::ostream& os, TimeIndex s) { @@ -53,7 +53,7 @@ static std::ostream& operator<<(std::ostream& os, TimeIndex s) return os << ""; } } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors BOOST_AUTO_TEST_SUITE(_TimeIndexVisitor_) BOOST_FIXTURE_TEST_CASE(simple_time_dependant_expression, Registry) diff --git a/src/tests/src/solver/expressions/test_main.cpp b/src/tests/src/expressions/test_main.cpp similarity index 100% rename from src/tests/src/solver/expressions/test_main.cpp rename to src/tests/src/expressions/test_main.cpp diff --git a/src/tests/src/solver/expressions/test_nodes.cpp b/src/tests/src/expressions/test_nodes.cpp similarity index 95% rename from src/tests/src/solver/expressions/test_nodes.cpp rename to src/tests/src/expressions/test_nodes.cpp index b21caac631..9d4e75c59c 100644 --- a/src/tests/src/solver/expressions/test_nodes.cpp +++ b/src/tests/src/expressions/test_nodes.cpp @@ -24,11 +24,11 @@ #include #include -#include -#include +#include +#include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; BOOST_AUTO_TEST_SUITE(_Nodes_) diff --git a/src/tests/src/solver/CMakeLists.txt b/src/tests/src/solver/CMakeLists.txt index 78390c0902..5cb3cf4373 100644 --- a/src/tests/src/solver/CMakeLists.txt +++ b/src/tests/src/solver/CMakeLists.txt @@ -1,4 +1,3 @@ -add_subdirectory(expressions) add_subdirectory(infeasible-problem-analysis) add_subdirectory(lps) add_subdirectory(modelParser) diff --git a/src/tests/src/solver/modelParser/CMakeLists.txt b/src/tests/src/solver/modelParser/CMakeLists.txt index 5969d66c16..8586a937e4 100644 --- a/src/tests/src/solver/modelParser/CMakeLists.txt +++ b/src/tests/src/solver/modelParser/CMakeLists.txt @@ -10,7 +10,7 @@ add_boost_test(TestModelParser testSystemParser.cpp testSystemConverter.cpp LIBS - Antares::solver-expressions + Antares::expressions Antares::modelConverter Antares::modelParser Antares::systemParser diff --git a/src/tests/src/solver/modelParser/testConvertorVisitor.cpp b/src/tests/src/solver/modelParser/testConvertorVisitor.cpp index 8eddcda921..64bf3cdcf3 100644 --- a/src/tests/src/solver/modelParser/testConvertorVisitor.cpp +++ b/src/tests/src/solver/modelParser/testConvertorVisitor.cpp @@ -22,12 +22,13 @@ #include -#include -#include "antares/solver/expressions/Registry.hxx" -#include "antares/solver/expressions/visitors/CompareVisitor.h" +#include +#include "antares/expressions/Registry.hxx" +#include "antares/expressions/visitors/CompareVisitor.h" #include "antares/solver/modelConverter/convertorVisitor.h" #include "antares/solver/modelParser/Library.h" +using namespace Antares::Expressions; using namespace Antares::Solver; class ExpressionToNodeConvertorEmptyModel diff --git a/src/tests/src/solver/modelParser/testModelTranslator.cpp b/src/tests/src/solver/modelParser/testModelTranslator.cpp index 9233b90767..b7620a4310 100644 --- a/src/tests/src/solver/modelParser/testModelTranslator.cpp +++ b/src/tests/src/solver/modelParser/testModelTranslator.cpp @@ -24,7 +24,7 @@ #include -#include "antares/solver/expressions/nodes/Node.h" +#include "antares/expressions/nodes/Node.h" #include "antares/solver/modelConverter/modelConverter.h" #include "antares/solver/modelParser/Library.h" #include "antares/study/system-model/library.h" @@ -174,7 +174,7 @@ BOOST_FIXTURE_TEST_CASE(model_variables_properly_translated, Fixture) BOOST_AUTO_TEST_CASE(model_ports_properly_translated, *boost::unit_test::disabled()) { ModelParser::Library library; - Registry registry; + Antares::Expressions::Registry registry; ModelParser::Model model1{.id = "model1", .description = "description", .parameters = {}, diff --git a/src/tests/src/solver/modelParser/test_full.cpp b/src/tests/src/solver/modelParser/test_full.cpp index 3054509698..1d185810a0 100644 --- a/src/tests/src/solver/modelParser/test_full.cpp +++ b/src/tests/src/solver/modelParser/test_full.cpp @@ -25,7 +25,7 @@ #include -#include "antares/solver/expressions/nodes/Node.h" +#include "antares/expressions/nodes/Node.h" #include "antares/solver/modelConverter/modelConverter.h" #include "antares/solver/modelParser/Library.h" #include "antares/solver/modelParser/parser.h" diff --git a/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp b/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp index b3912d03ab..bd43e96943 100644 --- a/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp +++ b/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp @@ -23,8 +23,8 @@ #include -#include "antares/solver/expressions/nodes/ExpressionsNodes.h" -#include "antares/solver/expressions/visitors/TimeIndex.h" +#include "antares/expressions/nodes/ExpressionsNodes.h" +#include "antares/expressions/visitors/TimeIndex.h" #include "antares/solver/modeler/api/linearProblemBuilder.h" #include "antares/solver/modeler/dataSeries/linearProblemData.h" #include "antares/solver/modeler/ortoolsImpl/linearProblem.h" @@ -39,7 +39,8 @@ using namespace Antares::Solver::Modeler::Api; using namespace Antares::Solver::Modeler::DataSeries; using namespace Antares::Study::SystemModel; using namespace Antares::Optimization; -using namespace Antares::Solver::Nodes; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; using namespace std; struct VariableData @@ -61,7 +62,7 @@ struct ConstraintData struct LinearProblemBuildingFixture { map models; - Antares::Solver::Registry nodes; + Registry nodes; vector components; unique_ptr pb; @@ -96,16 +97,16 @@ struct LinearProblemBuildingFixture return nodes.create(value); } - Node* parameter(const string& paramId, - const Antares::Solver::Visitors::TimeIndex& timeIndex = Antares::Solver:: - Visitors::TimeIndex::CONSTANT_IN_TIME_AND_SCENARIO) + Node* parameter( + const string& paramId, + const Visitors::TimeIndex& timeIndex = Visitors::TimeIndex::CONSTANT_IN_TIME_AND_SCENARIO) { return nodes.create(paramId, timeIndex); } - Node* variable(const string& varId, - const Antares::Solver::Visitors::TimeIndex& timeIndex = Antares::Solver:: - Visitors::TimeIndex::CONSTANT_IN_TIME_AND_SCENARIO) + Node* variable( + const string& varId, + const Visitors::TimeIndex& timeIndex = Visitors::TimeIndex::CONSTANT_IN_TIME_AND_SCENARIO) { return nodes.create(varId, timeIndex); } @@ -137,7 +138,7 @@ void LinearProblemBuildingFixture::createModel(string modelId, { auto createExpression = [this](Node* node) { - Antares::Solver::NodeRegistry node_registry(node, move(nodes)); + Antares::Expressions::NodeRegistry node_registry(node, move(nodes)); Expression expression("expression", move(node_registry)); return expression; }; @@ -441,7 +442,8 @@ BOOST_AUTO_TEST_CASE(ct_one_var__pb_contains_the_ct) BOOST_AUTO_TEST_CASE(ct_with_ten_vars__pb_contains_ten_ct) { // var1 <= 3 - auto var_node = variable("var1", Antares::Solver::Visitors::TimeIndex::VARYING_IN_TIME_ONLY); + auto var_node = variable("var1", + Antares::Expressions::Visitors::TimeIndex::VARYING_IN_TIME_ONLY); auto three = literal(3); auto ct_node = nodes.create(var_node, three); @@ -613,7 +615,7 @@ BOOST_AUTO_TEST_CASE(one_var_with_objective) BOOST_AUTO_TEST_CASE(one_time_dependent_var_with_objective) { - auto objective = variable("x", Antares::Solver::Visitors::TimeIndex::VARYING_IN_TIME_ONLY); + auto objective = variable("x", Antares::Expressions::Visitors::TimeIndex::VARYING_IN_TIME_ONLY); createModelWithOneFloatVar("model", {}, "x", literal(-50), literal(-40), {}, objective, true); createComponent("model", "componentA", {}); diff --git a/src/tests/src/solver/optim-model-filler/test_readLinearConstraintVisitor.cpp b/src/tests/src/solver/optim-model-filler/test_readLinearConstraintVisitor.cpp index da7b16eb86..ec638b32ef 100644 --- a/src/tests/src/solver/optim-model-filler/test_readLinearConstraintVisitor.cpp +++ b/src/tests/src/solver/optim-model-filler/test_readLinearConstraintVisitor.cpp @@ -25,13 +25,13 @@ #include -#include -#include +#include +#include #include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; using namespace Antares::Optimization; diff --git a/src/tests/src/solver/optim-model-filler/test_readLinearExpressionVisitor.cpp b/src/tests/src/solver/optim-model-filler/test_readLinearExpressionVisitor.cpp index e9ce35c934..ce71430158 100644 --- a/src/tests/src/solver/optim-model-filler/test_readLinearExpressionVisitor.cpp +++ b/src/tests/src/solver/optim-model-filler/test_readLinearExpressionVisitor.cpp @@ -25,13 +25,13 @@ #include -#include -#include +#include +#include #include -using namespace Antares::Solver; -using namespace Antares::Solver::Nodes; -using namespace Antares::Solver::Visitors; +using namespace Antares::Expressions; +using namespace Antares::Expressions::Nodes; +using namespace Antares::Expressions::Visitors; using namespace Antares::Optimization; From 7910be319e5e2e467d6eb3735213528506387186 Mon Sep 17 00:00:00 2001 From: Peter Mitri Date: Mon, 3 Feb 2025 14:58:53 +0100 Subject: [PATCH 2/8] move expressions code Signed-off-by: Peter Mitri --- .../include/antares}/expressions/IName.h | 4 ++-- .../include/antares}/expressions/Registry.hxx | 4 ++-- .../include/antares}/expressions/hashable.h | 4 ++-- .../include/antares}/expressions/visitors/EvaluationContext.h | 4 ++-- .../include/antares}/expressions/visitors/InvalidNode.h | 4 ++-- .../include/antares}/expressions/visitors/LinearStatus.h | 4 ++-- .../include/antares}/expressions/visitors/TimeIndex.h | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/IName.h (94%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/Registry.hxx (96%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/hashable.h (94%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/EvaluationContext.h (94%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/InvalidNode.h (92%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/LinearStatus.h (98%) rename src/{solver/expressions/include/antares/solver => expressions/include/antares}/expressions/visitors/TimeIndex.h (94%) diff --git a/src/solver/expressions/include/antares/solver/expressions/IName.h b/src/expressions/include/antares/expressions/IName.h similarity index 94% rename from src/solver/expressions/include/antares/solver/expressions/IName.h rename to src/expressions/include/antares/expressions/IName.h index 237fe6d567..91427c10cb 100644 --- a/src/solver/expressions/include/antares/solver/expressions/IName.h +++ b/src/expressions/include/antares/expressions/IName.h @@ -21,7 +21,7 @@ #pragma once #include -namespace Antares::Solver +namespace Antares::Expressions { class IName { @@ -30,4 +30,4 @@ class IName virtual std::string name() const = 0; bool operator==(const IName& other) const = default; }; -} // namespace Antares::Solver +} // namespace Antares::Expressions diff --git a/src/solver/expressions/include/antares/solver/expressions/Registry.hxx b/src/expressions/include/antares/expressions/Registry.hxx similarity index 96% rename from src/solver/expressions/include/antares/solver/expressions/Registry.hxx rename to src/expressions/include/antares/expressions/Registry.hxx index ba74974cb0..0b1105a2dd 100644 --- a/src/solver/expressions/include/antares/solver/expressions/Registry.hxx +++ b/src/expressions/include/antares/expressions/Registry.hxx @@ -25,7 +25,7 @@ #include #include -namespace Antares::Solver +namespace Antares::Expressions { // Template class to manage the memory allocation and registry for a base class template @@ -51,4 +51,4 @@ private: std::vector> registry_; // Registry to manage dynamically allocated objects }; -} // namespace Antares::Solver +} // namespace Antares::Expressions diff --git a/src/solver/expressions/include/antares/solver/expressions/hashable.h b/src/expressions/include/antares/expressions/hashable.h similarity index 94% rename from src/solver/expressions/include/antares/solver/expressions/hashable.h rename to src/expressions/include/antares/expressions/hashable.h index 1548d6be65..589bdba0fe 100644 --- a/src/solver/expressions/include/antares/solver/expressions/hashable.h +++ b/src/expressions/include/antares/expressions/hashable.h @@ -21,7 +21,7 @@ #pragma once #include -namespace Antares::Solver +namespace Antares::Expressions { class Hashable { @@ -40,4 +40,4 @@ struct PortFieldHash std::size_t operator()(const Hashable& n) const; }; -} // namespace Antares::Solver +} // namespace Antares::Expressions diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/EvaluationContext.h b/src/expressions/include/antares/expressions/visitors/EvaluationContext.h similarity index 94% rename from src/solver/expressions/include/antares/solver/expressions/visitors/EvaluationContext.h rename to src/expressions/include/antares/expressions/visitors/EvaluationContext.h index 7e985eb248..ad12ca4517 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/EvaluationContext.h +++ b/src/expressions/include/antares/expressions/visitors/EvaluationContext.h @@ -3,7 +3,7 @@ #include #include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents the context for evaluating expressions. @@ -58,4 +58,4 @@ class EvaluationContext std::map variables_; }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/InvalidNode.h b/src/expressions/include/antares/expressions/visitors/InvalidNode.h similarity index 92% rename from src/solver/expressions/include/antares/solver/expressions/visitors/InvalidNode.h rename to src/expressions/include/antares/expressions/visitors/InvalidNode.h index 9edbca3203..7aa171dc81 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/InvalidNode.h +++ b/src/expressions/include/antares/expressions/visitors/InvalidNode.h @@ -22,11 +22,11 @@ #pragma once #include -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { class InvalidNode: public std::invalid_argument { public: explicit InvalidNode(const std::string& node_name = ""); }; -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/LinearStatus.h b/src/expressions/include/antares/expressions/visitors/LinearStatus.h similarity index 98% rename from src/solver/expressions/include/antares/solver/expressions/visitors/LinearStatus.h rename to src/expressions/include/antares/expressions/visitors/LinearStatus.h index 590bedbcf9..b64ae6d79e 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/LinearStatus.h +++ b/src/expressions/include/antares/expressions/visitors/LinearStatus.h @@ -20,7 +20,7 @@ */ #pragma once -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents the linearity of a node. @@ -175,4 +175,4 @@ constexpr LinearStatus operator-(LinearStatus a) { return a; } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors diff --git a/src/solver/expressions/include/antares/solver/expressions/visitors/TimeIndex.h b/src/expressions/include/antares/expressions/visitors/TimeIndex.h similarity index 94% rename from src/solver/expressions/include/antares/solver/expressions/visitors/TimeIndex.h rename to src/expressions/include/antares/expressions/visitors/TimeIndex.h index 06b561fc6c..ead28a8490 100644 --- a/src/solver/expressions/include/antares/solver/expressions/visitors/TimeIndex.h +++ b/src/expressions/include/antares/expressions/visitors/TimeIndex.h @@ -20,7 +20,7 @@ */ #pragma once -namespace Antares::Solver::Visitors +namespace Antares::Expressions::Visitors { /** * @brief Represents the time and scenario variation of a value. @@ -54,4 +54,4 @@ constexpr TimeIndex operator|(const TimeIndex& left, const TimeIndex& right) | static_cast(right)); } -} // namespace Antares::Solver::Visitors +} // namespace Antares::Expressions::Visitors From 7d3ce4cb85432c7b3c7da34cd954f1b5072fbede Mon Sep 17 00:00:00 2001 From: Peter Mitri Date: Tue, 4 Feb 2025 10:00:22 +0100 Subject: [PATCH 3/8] Move yml importers Signed-off-by: Peter Mitri --- src/CMakeLists.txt | 1 + src/expressions/CMakeLists.txt | 2 +- .../antlr-interface/CMakeLists.txt | 21 ++--- .../antlr-interface/Expr.g4 | 0 .../antlr-interface/Expr.interp | 0 .../antlr-interface/Expr.tokens | 0 .../antlr-interface/ExprBaseVisitor.cpp | 0 .../antlr-interface/ExprBaseVisitor.h | 0 .../antlr-interface/ExprLexer.cpp | 0 .../antlr-interface/ExprLexer.h | 0 .../antlr-interface/ExprLexer.interp | 0 .../antlr-interface/ExprLexer.tokens | 0 .../antlr-interface/ExprParser.cpp | 0 .../antlr-interface/ExprParser.h | 0 .../antlr-interface/ExprVisitor.cpp | 0 .../antlr-interface/ExprVisitor.h | 0 src/{libs/antares => }/io/CMakeLists.txt | 3 +- src/{libs/antares => }/io/file.cpp | 0 .../antares => }/io/include/antares/io/file.h | 0 .../io/include/antares/io/statistics.h | 0 src/io/inputs/CMakeLists.txt | 5 + .../inputs/model-converter}/CMakeLists.txt | 16 ++-- .../model-converter}/convertorVisitor.cpp | 14 +-- .../model-converter}/convertorVisitor.h | 8 +- .../inputs/model-converter}/modelConverter.h | 12 +-- .../model-converter}/modelConverter.cpp | 62 ++++++------- .../inputs/yml-model}/CMakeLists.txt | 10 +- .../inputs/yml-model}/decoders.hxx | 66 ++++++------- .../antares/io/inputs/yml-model}/Library.h | 4 +- .../antares/io/inputs/yml-model}/parser.h | 6 +- .../inputs/yml-model}/parser.cpp | 8 +- .../inputs/yml-system}/CMakeLists.txt | 14 +-- .../inputs/yml-system}/converter.cpp | 16 ++-- .../inputs/yml-system}/decoders.hxx | 22 ++--- .../antares/io/inputs/yml-system}/converter.h | 7 +- .../antares/io/inputs/yml-system}/parser.h | 6 +- .../antares/io/inputs/yml-system}/system.h | 4 +- .../inputs/yml-system}/parser.cpp | 8 +- src/{libs/antares => }/io/statistics.cpp | 0 src/libs/antares/CMakeLists.txt | 16 ++-- src/solver/CMakeLists.txt | 3 - src/solver/modeler/loadFiles/CMakeLists.txt | 6 +- .../modeler/loadFiles/readLibraries.cpp | 9 +- src/solver/modeler/loadFiles/readSystem.cpp | 9 +- src/tests/io/CMakeLists.txt | 1 + .../yml-importers}/CMakeLists.txt | 12 +-- .../yml-importers}/enum_operators.h | 6 +- .../yml-importers}/testConvertorVisitor.cpp | 20 ++-- .../yml-importers}/testModelTranslator.cpp | 40 ++++---- .../yml-importers}/testSystemConverter.cpp | 30 +++--- .../yml-importers/testYmlModel.cpp} | 92 +++++++++---------- .../yml-importers/testYmlSystem.cpp} | 36 ++++---- .../yml-importers}/test_full.cpp | 10 +- src/tests/src/solver/CMakeLists.txt | 1 - 54 files changed, 306 insertions(+), 300 deletions(-) rename src/{libs/antares => expressions}/antlr-interface/CMakeLists.txt (72%) rename src/{libs/antares => expressions}/antlr-interface/Expr.g4 (100%) rename src/{libs/antares => expressions}/antlr-interface/Expr.interp (100%) rename src/{libs/antares => expressions}/antlr-interface/Expr.tokens (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprBaseVisitor.cpp (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprBaseVisitor.h (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprLexer.cpp (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprLexer.h (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprLexer.interp (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprLexer.tokens (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprParser.cpp (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprParser.h (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprVisitor.cpp (100%) rename src/{libs/antares => expressions}/antlr-interface/ExprVisitor.h (100%) rename src/{libs/antares => }/io/CMakeLists.txt (92%) rename src/{libs/antares => }/io/file.cpp (100%) rename src/{libs/antares => }/io/include/antares/io/file.h (100%) rename src/{libs/antares => }/io/include/antares/io/statistics.h (100%) create mode 100644 src/io/inputs/CMakeLists.txt rename src/{solver/modelConverter => io/inputs/model-converter}/CMakeLists.txt (52%) rename src/{solver/modelConverter => io/inputs/model-converter}/convertorVisitor.cpp (96%) rename src/{solver/modelConverter/include/antares/solver/modelConverter => io/inputs/model-converter/include/antares/io/inputs/model-converter}/convertorVisitor.h (82%) rename src/{solver/modelConverter/include/antares/solver/modelConverter => io/inputs/model-converter/include/antares/io/inputs/model-converter}/modelConverter.h (79%) rename src/{solver/modelConverter => io/inputs/model-converter}/modelConverter.cpp (77%) rename src/{solver/modelParser => io/inputs/yml-model}/CMakeLists.txt (59%) rename src/{solver/modelParser => io/inputs/yml-model}/decoders.hxx (65%) rename src/{solver/modelParser/include/antares/solver/modelParser => io/inputs/yml-model/include/antares/io/inputs/yml-model}/Library.h (96%) rename src/{solver/modelParser/include/antares/solver/modelParser => io/inputs/yml-model/include/antares/io/inputs/yml-model}/parser.h (88%) rename src/{solver/modelParser => io/inputs/yml-model}/parser.cpp (85%) rename src/{solver/systemParser => io/inputs/yml-system}/CMakeLists.txt (55%) rename src/{solver/systemParser => io/inputs/yml-system}/converter.cpp (88%) rename src/{solver/systemParser => io/inputs/yml-system}/decoders.hxx (74%) rename src/{solver/systemParser/include/antares/solver/systemParser => io/inputs/yml-system/include/antares/io/inputs/yml-system}/converter.h (81%) rename src/{solver/systemParser/include/antares/solver/systemParser => io/inputs/yml-system/include/antares/io/inputs/yml-system}/parser.h (87%) rename src/{solver/systemParser/include/antares/solver/systemParser => io/inputs/yml-system/include/antares/io/inputs/yml-system}/system.h (94%) rename src/{solver/systemParser => io/inputs/yml-system}/parser.cpp (85%) rename src/{libs/antares => }/io/statistics.cpp (100%) create mode 100644 src/tests/io/CMakeLists.txt rename src/tests/{src/solver/modelParser => io/yml-importers}/CMakeLists.txt (64%) rename src/tests/{src/solver/modelParser => io/yml-importers}/enum_operators.h (93%) rename src/tests/{src/solver/modelParser => io/yml-importers}/testConvertorVisitor.cpp (93%) rename src/tests/{src/solver/modelParser => io/yml-importers}/testModelTranslator.cpp (89%) rename src/tests/{src/solver/modelParser => io/yml-importers}/testSystemConverter.cpp (91%) rename src/tests/{src/solver/modelParser/testModelParser.cpp => io/yml-importers/testYmlModel.cpp} (88%) rename src/tests/{src/solver/modelParser/testSystemParser.cpp => io/yml-importers/testYmlSystem.cpp} (86%) rename src/tests/{src/solver/modelParser => io/yml-importers}/test_full.cpp (98%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ae63acd11d..ba720d01dc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -264,6 +264,7 @@ OMESSAGE("") # empty line # Sub Directories add_subdirectory(api) +add_subdirectory(io) add_subdirectory(libs) #antares-core fswalker if(BUILD_UI) diff --git a/src/expressions/CMakeLists.txt b/src/expressions/CMakeLists.txt index b18f56a98d..f57e6e0aa8 100644 --- a/src/expressions/CMakeLists.txt +++ b/src/expressions/CMakeLists.txt @@ -1,6 +1,6 @@ project(Expressions) - +add_subdirectory(antlr-interface) set(SRC_Expressions nodes/PortFieldNode.cpp nodes/PortFieldSumNode.cpp diff --git a/src/libs/antares/antlr-interface/CMakeLists.txt b/src/expressions/antlr-interface/CMakeLists.txt similarity index 72% rename from src/libs/antares/antlr-interface/CMakeLists.txt rename to src/expressions/antlr-interface/CMakeLists.txt index 727ec96d0e..b2c7796de3 100644 --- a/src/libs/antares/antlr-interface/CMakeLists.txt +++ b/src/expressions/antlr-interface/CMakeLists.txt @@ -1,4 +1,3 @@ - set(PROJ antlr-interface) set(HEADERS ExprBaseVisitor.h @@ -7,23 +6,23 @@ set(HEADERS ExprVisitor.h ) -Set(SRCS -ExprBaseVisitor.cpp -ExprLexer.cpp -ExprParser.cpp -ExprVisitor.cpp +Set(SRCS + ExprBaseVisitor.cpp + ExprLexer.cpp + ExprParser.cpp + ExprVisitor.cpp ) -add_library(${PROJ} ${SRCS}) +add_library(${PROJ} ${SRCS}) add_library(Antares::${PROJ} ALIAS ${PROJ}) -if(MSVC) +if (MSVC) target_link_libraries(${PROJ} PUBLIC antlr4_shared) # vcpkg triplet x64-windows provides shared lib -else() +else () target_link_libraries(${PROJ} PUBLIC antlr4_static) # vcpkg triplet x64-linux provides static lib -endif() +endif () -target_include_directories(${PROJ} +target_include_directories(${PROJ} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${ANTLR4_INCLUDE_DIR}) diff --git a/src/libs/antares/antlr-interface/Expr.g4 b/src/expressions/antlr-interface/Expr.g4 similarity index 100% rename from src/libs/antares/antlr-interface/Expr.g4 rename to src/expressions/antlr-interface/Expr.g4 diff --git a/src/libs/antares/antlr-interface/Expr.interp b/src/expressions/antlr-interface/Expr.interp similarity index 100% rename from src/libs/antares/antlr-interface/Expr.interp rename to src/expressions/antlr-interface/Expr.interp diff --git a/src/libs/antares/antlr-interface/Expr.tokens b/src/expressions/antlr-interface/Expr.tokens similarity index 100% rename from src/libs/antares/antlr-interface/Expr.tokens rename to src/expressions/antlr-interface/Expr.tokens diff --git a/src/libs/antares/antlr-interface/ExprBaseVisitor.cpp b/src/expressions/antlr-interface/ExprBaseVisitor.cpp similarity index 100% rename from src/libs/antares/antlr-interface/ExprBaseVisitor.cpp rename to src/expressions/antlr-interface/ExprBaseVisitor.cpp diff --git a/src/libs/antares/antlr-interface/ExprBaseVisitor.h b/src/expressions/antlr-interface/ExprBaseVisitor.h similarity index 100% rename from src/libs/antares/antlr-interface/ExprBaseVisitor.h rename to src/expressions/antlr-interface/ExprBaseVisitor.h diff --git a/src/libs/antares/antlr-interface/ExprLexer.cpp b/src/expressions/antlr-interface/ExprLexer.cpp similarity index 100% rename from src/libs/antares/antlr-interface/ExprLexer.cpp rename to src/expressions/antlr-interface/ExprLexer.cpp diff --git a/src/libs/antares/antlr-interface/ExprLexer.h b/src/expressions/antlr-interface/ExprLexer.h similarity index 100% rename from src/libs/antares/antlr-interface/ExprLexer.h rename to src/expressions/antlr-interface/ExprLexer.h diff --git a/src/libs/antares/antlr-interface/ExprLexer.interp b/src/expressions/antlr-interface/ExprLexer.interp similarity index 100% rename from src/libs/antares/antlr-interface/ExprLexer.interp rename to src/expressions/antlr-interface/ExprLexer.interp diff --git a/src/libs/antares/antlr-interface/ExprLexer.tokens b/src/expressions/antlr-interface/ExprLexer.tokens similarity index 100% rename from src/libs/antares/antlr-interface/ExprLexer.tokens rename to src/expressions/antlr-interface/ExprLexer.tokens diff --git a/src/libs/antares/antlr-interface/ExprParser.cpp b/src/expressions/antlr-interface/ExprParser.cpp similarity index 100% rename from src/libs/antares/antlr-interface/ExprParser.cpp rename to src/expressions/antlr-interface/ExprParser.cpp diff --git a/src/libs/antares/antlr-interface/ExprParser.h b/src/expressions/antlr-interface/ExprParser.h similarity index 100% rename from src/libs/antares/antlr-interface/ExprParser.h rename to src/expressions/antlr-interface/ExprParser.h diff --git a/src/libs/antares/antlr-interface/ExprVisitor.cpp b/src/expressions/antlr-interface/ExprVisitor.cpp similarity index 100% rename from src/libs/antares/antlr-interface/ExprVisitor.cpp rename to src/expressions/antlr-interface/ExprVisitor.cpp diff --git a/src/libs/antares/antlr-interface/ExprVisitor.h b/src/expressions/antlr-interface/ExprVisitor.h similarity index 100% rename from src/libs/antares/antlr-interface/ExprVisitor.h rename to src/expressions/antlr-interface/ExprVisitor.h diff --git a/src/libs/antares/io/CMakeLists.txt b/src/io/CMakeLists.txt similarity index 92% rename from src/libs/antares/io/CMakeLists.txt rename to src/io/CMakeLists.txt index dc62a95aea..021970ae48 100644 --- a/src/libs/antares/io/CMakeLists.txt +++ b/src/io/CMakeLists.txt @@ -1,3 +1,4 @@ +add_subdirectory(inputs) set(HEADERS include/antares/io/statistics.h include/antares/io/file.h @@ -21,7 +22,7 @@ target_link_libraries(io ) target_include_directories(io - PUBLIC + PUBLIC $ ) diff --git a/src/libs/antares/io/file.cpp b/src/io/file.cpp similarity index 100% rename from src/libs/antares/io/file.cpp rename to src/io/file.cpp diff --git a/src/libs/antares/io/include/antares/io/file.h b/src/io/include/antares/io/file.h similarity index 100% rename from src/libs/antares/io/include/antares/io/file.h rename to src/io/include/antares/io/file.h diff --git a/src/libs/antares/io/include/antares/io/statistics.h b/src/io/include/antares/io/statistics.h similarity index 100% rename from src/libs/antares/io/include/antares/io/statistics.h rename to src/io/include/antares/io/statistics.h diff --git a/src/io/inputs/CMakeLists.txt b/src/io/inputs/CMakeLists.txt new file mode 100644 index 0000000000..8b42aa017e --- /dev/null +++ b/src/io/inputs/CMakeLists.txt @@ -0,0 +1,5 @@ +OMESSAGE("Antares IO-Inputs") + +add_subdirectory(model-converter) +add_subdirectory(yml-model) +add_subdirectory(yml-system) diff --git a/src/solver/modelConverter/CMakeLists.txt b/src/io/inputs/model-converter/CMakeLists.txt similarity index 52% rename from src/solver/modelConverter/CMakeLists.txt rename to src/io/inputs/model-converter/CMakeLists.txt index 672504e185..5448868e3a 100644 --- a/src/solver/modelConverter/CMakeLists.txt +++ b/src/io/inputs/model-converter/CMakeLists.txt @@ -1,25 +1,27 @@ +# TODO: merge this with yml-model? + set(SOURCES modelConverter.cpp convertorVisitor.cpp - include/antares/solver/modelConverter/modelConverter.h - include/antares/solver/modelConverter/convertorVisitor.h + include/antares/io/inputs/model-converter/modelConverter.h + include/antares/io/inputs/model-converter/convertorVisitor.h ) # Create the library -add_library(modelConverter STATIC ${SOURCES}) -add_library(Antares::modelConverter ALIAS modelConverter) +add_library(model-converter STATIC ${SOURCES}) +add_library(Antares::model-converter ALIAS model-converter) # Specify include directories -target_include_directories(modelConverter +target_include_directories(model-converter PUBLIC $ ) # Link dependencies (if any) -target_link_libraries(modelConverter +target_link_libraries(model-converter PRIVATE Antares::antares-study-system-model - Antares::modelParser + Antares::yml-model Antares::antlr-interface Antares::expressions ) diff --git a/src/solver/modelConverter/convertorVisitor.cpp b/src/io/inputs/model-converter/convertorVisitor.cpp similarity index 96% rename from src/solver/modelConverter/convertorVisitor.cpp rename to src/io/inputs/model-converter/convertorVisitor.cpp index 962ff88f67..64172f02f7 100644 --- a/src/solver/modelConverter/convertorVisitor.cpp +++ b/src/io/inputs/model-converter/convertorVisitor.cpp @@ -20,13 +20,13 @@ */ #include -#include +#include #include "ExprLexer.h" #include "ExprParser.h" #include "antlr4-runtime.h" -namespace Antares::Solver::ModelConverter +namespace Antares::IO::Inputs::ModelConverter { using namespace Antares::Expressions::Nodes; @@ -35,7 +35,7 @@ using namespace Antares::Expressions::Nodes; class ConvertorVisitor: public ExprVisitor { public: - ConvertorVisitor(Expressions::Registry& registry, const ModelParser::Model& model); + ConvertorVisitor(Expressions::Registry& registry, const YmlModel::Model& model); std::any visit(antlr4::tree::ParseTree* tree) override; @@ -66,11 +66,11 @@ class ConvertorVisitor: public ExprVisitor private: Expressions::Registry& registry_; - const ModelParser::Model& model_; + const YmlModel::Model& model_; }; Expressions::NodeRegistry convertExpressionToNode(const std::string& exprStr, - const ModelParser::Model& model) + const YmlModel::Model& model) { if (exprStr.empty()) { @@ -89,7 +89,7 @@ Expressions::NodeRegistry convertExpressionToNode(const std::string& exprStr, } ConvertorVisitor::ConvertorVisitor(Expressions::Registry& registry, - const ModelParser::Model& model): + const YmlModel::Model& model): registry_(registry), model_(model) { @@ -314,4 +314,4 @@ std::any ConvertorVisitor::visitRightExpression(ExprParser::RightExpressionConte return context->expr()->accept(this); } -} // namespace Antares::Solver::ModelConverter +} // namespace Antares::IO::Inputs::ModelConverter diff --git a/src/solver/modelConverter/include/antares/solver/modelConverter/convertorVisitor.h b/src/io/inputs/model-converter/include/antares/io/inputs/model-converter/convertorVisitor.h similarity index 82% rename from src/solver/modelConverter/include/antares/solver/modelConverter/convertorVisitor.h rename to src/io/inputs/model-converter/include/antares/io/inputs/model-converter/convertorVisitor.h index 926690beda..2ca414ceb1 100644 --- a/src/solver/modelConverter/include/antares/solver/modelConverter/convertorVisitor.h +++ b/src/io/inputs/model-converter/include/antares/io/inputs/model-converter/convertorVisitor.h @@ -24,11 +24,11 @@ #include #include -#include "antares/solver/modelParser/Library.h" +#include "antares/io/inputs/yml-model/Library.h" -namespace Antares::Solver::ModelConverter +namespace Antares::IO::Inputs::ModelConverter { Expressions::NodeRegistry convertExpressionToNode(const std::string& exprStr, - const ModelParser::Model& model); -} // namespace Antares::Solver::ModelConverter + const YmlModel::Model& model); +} // namespace Antares::IO::Inputs::ModelConverter diff --git a/src/solver/modelConverter/include/antares/solver/modelConverter/modelConverter.h b/src/io/inputs/model-converter/include/antares/io/inputs/model-converter/modelConverter.h similarity index 79% rename from src/solver/modelConverter/include/antares/solver/modelConverter/modelConverter.h rename to src/io/inputs/model-converter/include/antares/io/inputs/model-converter/modelConverter.h index 87418e3b80..317a7cc4e3 100644 --- a/src/solver/modelConverter/include/antares/solver/modelConverter/modelConverter.h +++ b/src/io/inputs/model-converter/include/antares/io/inputs/model-converter/modelConverter.h @@ -22,7 +22,7 @@ #pragma once #include -#include "antares/solver/modelParser/Library.h" +#include "antares/io/inputs/yml-model/Library.h" namespace Antares { @@ -31,7 +31,7 @@ namespace Study::SystemModel class Library; } -namespace Solver::ModelParser +namespace Inputs::YmlModel { class Library; } @@ -42,13 +42,13 @@ namespace Antares::Expressions::Nodes class Node; } -namespace Antares::Solver::ModelConverter +namespace Antares::IO::Inputs::ModelConverter { class UnknownTypeException: public std::runtime_error { public: - explicit UnknownTypeException(ModelParser::ValueType type); + explicit UnknownTypeException(YmlModel::ValueType type); }; -Study::SystemModel::Library convert(const ModelParser::Library& library); -} // namespace Antares::Solver::ModelConverter +Study::SystemModel::Library convert(const YmlModel::Library& library); +} // namespace Antares::IO::Inputs::ModelConverter diff --git a/src/solver/modelConverter/modelConverter.cpp b/src/io/inputs/model-converter/modelConverter.cpp similarity index 77% rename from src/solver/modelConverter/modelConverter.cpp rename to src/io/inputs/model-converter/modelConverter.cpp index e3de2967af..59e4b47f89 100644 --- a/src/solver/modelConverter/modelConverter.cpp +++ b/src/io/inputs/model-converter/modelConverter.cpp @@ -19,10 +19,10 @@ * along with Antares_Simulator. If not, see . */ -#include "antares/solver/modelConverter/modelConverter.h" +#include "antares/io/inputs/model-converter/modelConverter.h" #include "antares/expressions/expression.h" -#include "antares/solver/modelConverter/convertorVisitor.h" +#include "antares/io/inputs/model-converter/convertorVisitor.h" #include "antares/study/system-model/constraint.h" #include "antares/study/system-model/library.h" #include "antares/study/system-model/model.h" @@ -31,21 +31,21 @@ #include "antares/study/system-model/portType.h" #include "antares/study/system-model/variable.h" -namespace Antares::Solver::ModelConverter +namespace Antares::IO::Inputs::ModelConverter { -UnknownTypeException::UnknownTypeException(ModelParser::ValueType type): - std::runtime_error("Unknown type: " + ModelParser::toString(type)) +UnknownTypeException::UnknownTypeException(YmlModel::ValueType type): + std::runtime_error("Unknown type: " + YmlModel::toString(type)) { } /** - * \brief Converts parameters from ModelParser::Model to SystemModel::Parameter. + * \brief Converts parameters from YmlModel::Model to SystemModel::Parameter. * - * \param model The ModelParser::Model object containing parameters. + * \param model The YmlModel::Model object containing parameters. * \return A vector of SystemModel::Parameter objects. */ std::vector convertTypes( - const Antares::Solver::ModelParser::Library& library) + const Antares::IO::Inputs::YmlModel::Library& library) { // Convert portTypes to Antares::Study::SystemModel::PortType std::vector out; @@ -66,14 +66,14 @@ std::vector convertTypes( } /** - * \brief Converts a ModelParser::ValueType to an SystemModel::ValueType. + * \brief Converts a YmlModel::ValueType to an SystemModel::ValueType. * - * \param type The ModelParser::ValueType to convert. + * \param type The YmlModel::ValueType to convert. * \return The corresponding SystemModel::ValueType. * \throws UnknownType if the type is unknown. */ std::vector convertParameters( - const Antares::Solver::ModelParser::Model& model) + const Antares::IO::Inputs::YmlModel::Model& model) { namespace SM = Antares::Study::SystemModel; std::vector parameters; @@ -88,21 +88,21 @@ std::vector convertParameters( } /** - * \brief Converts variables from ModelParser::Model to SystemModel::Variable. + * \brief Converts variables from YmlModel::Model to SystemModel::Variable. * - * \param model The ModelParser::Model object containing variables. + * \param model The YmlModel::Model object containing variables. * \return A vector of SystemModel::Variable objects. */ -Antares::Study::SystemModel::ValueType convertType(Antares::Solver::ModelParser::ValueType type) +Antares::Study::SystemModel::ValueType convertType(Antares::IO::Inputs::YmlModel::ValueType type) { using namespace std::string_literals; switch (type) { - case Antares::Solver::ModelParser::ValueType::CONTINUOUS: + case Antares::IO::Inputs::YmlModel::ValueType::CONTINUOUS: return Antares::Study::SystemModel::ValueType::FLOAT; - case Antares::Solver::ModelParser::ValueType::INTEGER: + case Antares::IO::Inputs::YmlModel::ValueType::INTEGER: return Antares::Study::SystemModel::ValueType::INTEGER; - case Antares::Solver::ModelParser::ValueType::BOOL: + case Antares::IO::Inputs::YmlModel::ValueType::BOOL: return Antares::Study::SystemModel::ValueType::BOOL; default: throw UnknownTypeException(type); @@ -110,12 +110,12 @@ Antares::Study::SystemModel::ValueType convertType(Antares::Solver::ModelParser: } /** - * \brief Converts ports from ModelParser::Model to SystemModel::Port. + * \brief Converts ports from YmlModel::Model to SystemModel::Port. * - * \param model The ModelParser::Model object containing ports. + * \param model The YmlModel::Model object containing ports. * \return A vector of SystemModel::Port objects. */ -std::vector convertVariables(const ModelParser::Model& model) +std::vector convertVariables(const YmlModel::Model& model) { namespace SM = Antares::Study::SystemModel; @@ -139,19 +139,19 @@ std::vector convertVariables(const ModelP } /** - * \brief Converts constraints from ModelParser::Model to SystemModel::Constraint. + * \brief Converts constraints from YmlModel::Model to SystemModel::Constraint. * - * \param model The ModelParser::Model object containing constraints. + * \param model The YmlModel::Model object containing constraints. * \return A vector of SystemModel::Constraint objects. */ std::vector convertPorts( - [[maybe_unused]] const Antares::Solver::ModelParser::Model& model) + [[maybe_unused]] const Antares::IO::Inputs::YmlModel::Model& model) { return {}; } std::vector convertConstraints( - const Antares::Solver::ModelParser::Model& model) + const Antares::IO::Inputs::YmlModel::Model& model) { std::vector constraints; constraints.reserve(model.constraints.size()); @@ -166,13 +166,13 @@ std::vector convertConstraints( } /** - * \brief Converts models from ModelParser::Library to SystemModel::Model. + * \brief Converts models from YmlModel::Library to SystemModel::Model. * - * \param library The ModelParser::Library object containing models. + * \param library The YmlModel::Library object containing models. * \return A vector of SystemModel::Model objects. */ std::vector convertModels( - const Antares::Solver::ModelParser::Library& library) + const Antares::IO::Inputs::YmlModel::Library& library) { std::vector models; models.reserve(library.models.size()); @@ -202,12 +202,12 @@ std::vector convertModels( } /** - * \brief Converts a ModelParser::Library object to an SystemModel::Library object. + * \brief Converts a YmlModel::Library object to an SystemModel::Library object. * - * \param library The ModelParser::Library object to convert. + * \param library The YmlModel::Library object to convert. * \return The corresponding SystemModel::Library object. */ -Antares::Study::SystemModel::Library convert(const Antares::Solver::ModelParser::Library& library) +Antares::Study::SystemModel::Library convert(const Antares::IO::Inputs::YmlModel::Library& library) { Antares::Study::SystemModel::LibraryBuilder builder; std::vector portTypes = convertTypes(library); @@ -219,4 +219,4 @@ Antares::Study::SystemModel::Library convert(const Antares::Solver::ModelParser: .build(); return lib; } -} // namespace Antares::Solver::ModelConverter +} // namespace Antares::IO::Inputs::ModelConverter diff --git a/src/solver/modelParser/CMakeLists.txt b/src/io/inputs/yml-model/CMakeLists.txt similarity index 59% rename from src/solver/modelParser/CMakeLists.txt rename to src/io/inputs/yml-model/CMakeLists.txt index 7a52e152ad..28f4d9f26c 100644 --- a/src/solver/modelParser/CMakeLists.txt +++ b/src/io/inputs/yml-model/CMakeLists.txt @@ -1,21 +1,21 @@ set(SOURCES parser.cpp decoders.hxx - include/antares/solver/modelParser/parser.h + include/antares/io/inputs/yml-model/parser.h ) # Create the library -add_library(modelParser STATIC ${SOURCES}) -add_library(Antares::modelParser ALIAS modelParser) +add_library(yml-model STATIC ${SOURCES}) +add_library(Antares::yml-model ALIAS yml-model) # Specify include directories -target_include_directories(modelParser +target_include_directories(yml-model PUBLIC $ ) # Link dependencies (if any) -target_link_libraries(modelParser +target_link_libraries(yml-model PRIVATE yaml-cpp::yaml-cpp ) diff --git a/src/solver/modelParser/decoders.hxx b/src/io/inputs/yml-model/decoders.hxx similarity index 65% rename from src/solver/modelParser/decoders.hxx rename to src/io/inputs/yml-model/decoders.hxx index bf915ce847..c50815e01c 100644 --- a/src/solver/modelParser/decoders.hxx +++ b/src/io/inputs/yml-model/decoders.hxx @@ -22,7 +22,7 @@ #pragma once -#include "antares/solver/modelParser/Library.h" +#include "antares/io/inputs/yml-model/Library.h" #include "yaml-cpp/yaml.h" @@ -36,9 +36,9 @@ namespace YAML * @param n node * @return Object of type T * It's just to simplify repertitve and verbose lines - * as_fallback_default>( + * as_fallback_default>( node["parameters"]) is equivalent to - node["parameters"].as>(std::vector()) + node["parameters"].as>(std::vector()) */ template inline T as_fallback_default(const Node& n) @@ -47,9 +47,9 @@ inline T as_fallback_default(const Node& n) } template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::Parameter& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::Parameter& rhs) { if (!node.IsMap()) { @@ -63,9 +63,9 @@ struct convert }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::ValueType& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::ValueType& rhs) { if (!node.IsScalar()) { @@ -74,15 +74,15 @@ struct convert const auto value = node.as(); if (value == "continuous") { - rhs = Antares::Solver::ModelParser::ValueType::CONTINUOUS; + rhs = Antares::IO::Inputs::YmlModel::ValueType::CONTINUOUS; } else if (value == "integer") { - rhs = Antares::Solver::ModelParser::ValueType::INTEGER; + rhs = Antares::IO::Inputs::YmlModel::ValueType::INTEGER; } else if (value == "boolean") { - rhs = Antares::Solver::ModelParser::ValueType::BOOL; + rhs = Antares::IO::Inputs::YmlModel::ValueType::BOOL; } else { @@ -93,9 +93,9 @@ struct convert }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::Variable& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::Variable& rhs) { if (!node.IsMap()) { @@ -104,8 +104,8 @@ struct convert rhs.id = node["id"].as(); rhs.lower_bound = node["lower-bound"].as(""); rhs.upper_bound = node["upper-bound"].as(""); - rhs.variable_type = node["variable-type"].as( - Antares::Solver::ModelParser::ValueType::CONTINUOUS); + rhs.variable_type = node["variable-type"].as( + Antares::IO::Inputs::YmlModel::ValueType::CONTINUOUS); rhs.time_dependent = node["time-dependent"].as(true); rhs.scenario_dependent = node["scenario-dependent"].as(true); return true; @@ -113,9 +113,9 @@ struct convert }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::Port& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::Port& rhs) { if (!node.IsMap()) { @@ -128,9 +128,9 @@ struct convert }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::PortFieldDefinition& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::PortFieldDefinition& rhs) { if (!node.IsMap()) { @@ -144,9 +144,9 @@ struct convert }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::Constraint& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::Constraint& rhs) { if (!node.IsMap()) { @@ -159,9 +159,9 @@ struct convert }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::Model& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::Model& rhs) { if (!node.IsMap()) { @@ -169,26 +169,26 @@ struct convert } rhs.id = node["id"].as(); rhs.description = node["description"].as(""); - rhs.parameters = as_fallback_default>( + rhs.parameters = as_fallback_default>( node["parameters"]); - rhs.variables = as_fallback_default>( + rhs.variables = as_fallback_default>( node["variables"]); - rhs.ports = as_fallback_default>( + rhs.ports = as_fallback_default>( node["ports"]); rhs.port_field_definitions = as_fallback_default< - std::vector>( + std::vector>( node["port-field-definitions"]); rhs.constraints = as_fallback_default< - std::vector>(node["constraints"]); + std::vector>(node["constraints"]); rhs.objective = node["objective"].as(""); return true; } }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::PortType& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::PortType& rhs) { if (!node.IsMap()) { @@ -205,15 +205,15 @@ struct convert }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::ModelParser::Library& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlModel::Library& rhs) { rhs.id = node["id"].as(); rhs.description = node["description"].as(""); - rhs.port_types = as_fallback_default>( + rhs.port_types = as_fallback_default>( node["port-types"]); - rhs.models = node["models"].as>(); + rhs.models = node["models"].as>(); return true; } }; diff --git a/src/solver/modelParser/include/antares/solver/modelParser/Library.h b/src/io/inputs/yml-model/include/antares/io/inputs/yml-model/Library.h similarity index 96% rename from src/solver/modelParser/include/antares/solver/modelParser/Library.h rename to src/io/inputs/yml-model/include/antares/io/inputs/yml-model/Library.h index d34a206c70..35b58a57df 100644 --- a/src/solver/modelParser/include/antares/solver/modelParser/Library.h +++ b/src/io/inputs/yml-model/include/antares/io/inputs/yml-model/Library.h @@ -25,7 +25,7 @@ #include #include -namespace Antares::Solver::ModelParser +namespace Antares::IO::Inputs::YmlModel { // Define structures struct Parameter @@ -115,4 +115,4 @@ struct Library std::vector port_types; std::vector models; }; -} // namespace Antares::Solver::ModelParser +} // namespace Antares::IO::Inputs::YmlModel diff --git a/src/solver/modelParser/include/antares/solver/modelParser/parser.h b/src/io/inputs/yml-model/include/antares/io/inputs/yml-model/parser.h similarity index 88% rename from src/solver/modelParser/include/antares/solver/modelParser/parser.h rename to src/io/inputs/yml-model/include/antares/io/inputs/yml-model/parser.h index 0c042ce027..1d5c46df53 100644 --- a/src/solver/modelParser/include/antares/solver/modelParser/parser.h +++ b/src/io/inputs/yml-model/include/antares/io/inputs/yml-model/parser.h @@ -21,9 +21,9 @@ */ #pragma once -#include "antares/solver/modelParser/Library.h" +#include "Library.h" -namespace Antares::Solver::ModelParser +namespace Antares::IO::Inputs::YmlModel { class Parser { @@ -33,4 +33,4 @@ class Parser Library parse(const std::string& content); }; -} // namespace Antares::Solver::ModelParser +} // namespace Antares::IO::Inputs::YmlModel diff --git a/src/solver/modelParser/parser.cpp b/src/io/inputs/yml-model/parser.cpp similarity index 85% rename from src/solver/modelParser/parser.cpp rename to src/io/inputs/yml-model/parser.cpp index df1b940a13..b7db9398ae 100644 --- a/src/solver/modelParser/parser.cpp +++ b/src/io/inputs/yml-model/parser.cpp @@ -19,13 +19,13 @@ * along with Antares_Simulator. If not, see . */ -#include "antares/solver/modelParser/parser.h" +#include "antares/io/inputs/yml-model/parser.h" -#include "antares/solver/modelParser/Library.h" +#include "antares/io/inputs/yml-model/Library.h" #include "decoders.hxx" -namespace Antares::Solver::ModelParser +namespace Antares::IO::Inputs::YmlModel { Library Parser::parse(const std::string& content) { @@ -35,4 +35,4 @@ Library Parser::parse(const std::string& content) return library; } -} // namespace Antares::Solver::ModelParser +} // namespace Antares::IO::Inputs::YmlModel diff --git a/src/solver/systemParser/CMakeLists.txt b/src/io/inputs/yml-system/CMakeLists.txt similarity index 55% rename from src/solver/systemParser/CMakeLists.txt rename to src/io/inputs/yml-system/CMakeLists.txt index 1991f182a4..ad767b7973 100644 --- a/src/solver/systemParser/CMakeLists.txt +++ b/src/io/inputs/yml-system/CMakeLists.txt @@ -2,23 +2,23 @@ set(SOURCES parser.cpp converter.cpp decoders.hxx - include/antares/solver/systemParser/parser.h - include/antares/solver/systemParser/converter.h - include/antares/solver/systemParser/system.h + include/antares/io/inputs/yml-system/parser.h + include/antares/io/inputs/yml-system/converter.h + include/antares/io/inputs/yml-system/system.h ) # Create the library -add_library(systemParser STATIC ${SOURCES}) -add_library(Antares::systemParser ALIAS systemParser) +add_library(yml-system STATIC ${SOURCES}) +add_library(Antares::yml-system ALIAS yml-system) # Specify include directories -target_include_directories(systemParser +target_include_directories(yml-system PUBLIC $ ) # Link dependencies (if any) -target_link_libraries(systemParser +target_link_libraries(yml-system PUBLIC Antares::antares-study-system-model PRIVATE diff --git a/src/solver/systemParser/converter.cpp b/src/io/inputs/yml-system/converter.cpp similarity index 88% rename from src/solver/systemParser/converter.cpp rename to src/io/inputs/yml-system/converter.cpp index b78b8abb8a..437a22fa41 100644 --- a/src/solver/systemParser/converter.cpp +++ b/src/io/inputs/yml-system/converter.cpp @@ -19,16 +19,16 @@ * along with Antares_Simulator. If not, see . */ -#include "antares/solver/systemParser/converter.h" +#include "antares/io/inputs/yml-system/converter.h" #include -#include "antares/solver/systemParser/system.h" +#include "antares/io/inputs/yml-system/system.h" #include "antares/study/system-model/system.h" using namespace Antares::Study; -namespace Antares::Solver::SystemConverter +namespace Antares::IO::Inputs::SystemConverter { class ErrorWhileSplittingLibraryAndModel: public std::runtime_error @@ -91,7 +91,7 @@ static const SystemModel::Model& getModel(const std::vectorsecond; } -static SystemModel::Component createComponent(const SystemParser::Component& c, +static SystemModel::Component createComponent(const YmlSystem::Component& c, const std::vector& libraries) { const auto [libraryId, modelId] = splitLibraryModelString(c.model); @@ -115,17 +115,17 @@ static SystemModel::Component createComponent(const SystemParser::Component& c, return component; } -SystemModel::System convert(const SystemParser::System& parserSystem, +SystemModel::System convert(const YmlSystem::System& ymlSystem, const std::vector& libraries) { std::vector components; - for (const auto& c: parserSystem.components) + for (const auto& c: ymlSystem.components) { components.push_back(createComponent(c, libraries)); } SystemModel::SystemBuilder builder; - return builder.withId(parserSystem.id).withComponents(components).build(); + return builder.withId(ymlSystem.id).withComponents(components).build(); } -} // namespace Antares::Solver::SystemConverter +} // namespace Antares::IO::Inputs::SystemConverter diff --git a/src/solver/systemParser/decoders.hxx b/src/io/inputs/yml-system/decoders.hxx similarity index 74% rename from src/solver/systemParser/decoders.hxx rename to src/io/inputs/yml-system/decoders.hxx index 17135195e9..426862a881 100644 --- a/src/solver/systemParser/decoders.hxx +++ b/src/io/inputs/yml-system/decoders.hxx @@ -21,7 +21,7 @@ #pragma once -#include "antares/solver/systemParser/system.h" +#include "antares/io/inputs/yml-system/system.h" #include "yaml-cpp/yaml.h" @@ -35,9 +35,9 @@ namespace YAML * @param n node * @return Object of type T * It's just to simplify repertitve and verbose lines - * as_fallback_default>( + * as_fallback_default>( node["parameters"]) is equivalent to - node["parameters"].as>(std::vector()) + node["parameters"].as>(std::vector()) */ template inline T as_fallback_default(const Node& n) @@ -46,9 +46,9 @@ inline T as_fallback_default(const Node& n) } template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::SystemParser::Parameter& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlSystem::Parameter& rhs) { if (!node.IsMap()) { @@ -62,9 +62,9 @@ struct convert }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::SystemParser::Component& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlSystem::Component& rhs) { if (!node.IsMap()) { @@ -73,20 +73,20 @@ struct convert rhs.id = node["id"].as(); rhs.model = node["model"].as(); rhs.scenarioGroup = node["scenario-group"].as(); - rhs.parameters = as_fallback_default>( + rhs.parameters = as_fallback_default>( node["parameters"]); return true; } }; template<> -struct convert +struct convert { - static bool decode(const Node& node, Antares::Solver::SystemParser::System& rhs) + static bool decode(const Node& node, Antares::IO::Inputs::YmlSystem::System& rhs) { rhs.id = node["id"].as(); rhs.libraries = as_fallback_default>(node["model-libraries"]); - rhs.components = as_fallback_default>( + rhs.components = as_fallback_default>( node["components"]); return true; } diff --git a/src/solver/systemParser/include/antares/solver/systemParser/converter.h b/src/io/inputs/yml-system/include/antares/io/inputs/yml-system/converter.h similarity index 81% rename from src/solver/systemParser/include/antares/solver/systemParser/converter.h rename to src/io/inputs/yml-system/include/antares/io/inputs/yml-system/converter.h index 32c607b6e8..3bd9beadf1 100644 --- a/src/solver/systemParser/include/antares/solver/systemParser/converter.h +++ b/src/io/inputs/yml-system/include/antares/io/inputs/yml-system/converter.h @@ -24,12 +24,13 @@ #include #include +#include "../../../../../../yml-model/include/antares/io/inputs/yml-model/parser.h" #include "parser.h" -namespace Antares::Solver::SystemConverter +namespace Antares::IO::Inputs::SystemConverter { -Study::SystemModel::System convert(const SystemParser::System& parserSystem, +Study::SystemModel::System convert(const YmlSystem::System& ymlSystem, const std::vector& libraries); -} // namespace Antares::Solver::SystemConverter +} // namespace Antares::IO::Inputs::SystemConverter diff --git a/src/solver/systemParser/include/antares/solver/systemParser/parser.h b/src/io/inputs/yml-system/include/antares/io/inputs/yml-system/parser.h similarity index 87% rename from src/solver/systemParser/include/antares/solver/systemParser/parser.h rename to src/io/inputs/yml-system/include/antares/io/inputs/yml-system/parser.h index 94aad258be..26c9c47333 100644 --- a/src/solver/systemParser/include/antares/solver/systemParser/parser.h +++ b/src/io/inputs/yml-system/include/antares/io/inputs/yml-system/parser.h @@ -20,13 +20,13 @@ */ #pragma once -#include "antares/solver/systemParser/system.h" +#include "antares/io/inputs/yml-system/system.h" -namespace Antares::Solver::SystemParser +namespace Antares::IO::Inputs::YmlSystem { class Parser { public: System parse(const std::string& content); }; -} // namespace Antares::Solver::SystemParser +} // namespace Antares::IO::Inputs::YmlSystem diff --git a/src/solver/systemParser/include/antares/solver/systemParser/system.h b/src/io/inputs/yml-system/include/antares/io/inputs/yml-system/system.h similarity index 94% rename from src/solver/systemParser/include/antares/solver/systemParser/system.h rename to src/io/inputs/yml-system/include/antares/io/inputs/yml-system/system.h index 888d136d5a..f00afe0482 100644 --- a/src/solver/systemParser/include/antares/solver/systemParser/system.h +++ b/src/io/inputs/yml-system/include/antares/io/inputs/yml-system/system.h @@ -24,7 +24,7 @@ #include #include -namespace Antares::Solver::SystemParser +namespace Antares::IO::Inputs::YmlSystem { struct Parameter @@ -52,4 +52,4 @@ struct System // std::vector connections; }; -} // namespace Antares::Solver::SystemParser +} // namespace Antares::IO::Inputs::YmlSystem diff --git a/src/solver/systemParser/parser.cpp b/src/io/inputs/yml-system/parser.cpp similarity index 85% rename from src/solver/systemParser/parser.cpp rename to src/io/inputs/yml-system/parser.cpp index ff5aa46542..51c9ead93d 100644 --- a/src/solver/systemParser/parser.cpp +++ b/src/io/inputs/yml-system/parser.cpp @@ -19,13 +19,13 @@ * along with Antares_Simulator. If not, see . */ -#include "antares/solver/systemParser/parser.h" +#include "antares/io/inputs/yml-system/parser.h" -#include "antares/solver/systemParser/system.h" +#include "antares/io/inputs/yml-system/system.h" #include "decoders.hxx" -namespace Antares::Solver::SystemParser +namespace Antares::IO::Inputs::YmlSystem { System Parser::parse(const std::string& content) @@ -37,4 +37,4 @@ System Parser::parse(const std::string& content) return system; } -} // namespace Antares::Solver::SystemParser +} // namespace Antares::IO::Inputs::YmlSystem diff --git a/src/libs/antares/io/statistics.cpp b/src/io/statistics.cpp similarity index 100% rename from src/libs/antares/io/statistics.cpp rename to src/io/statistics.cpp diff --git a/src/libs/antares/CMakeLists.txt b/src/libs/antares/CMakeLists.txt index c06632cd29..3f32dc14c2 100644 --- a/src/libs/antares/CMakeLists.txt +++ b/src/libs/antares/CMakeLists.txt @@ -12,7 +12,6 @@ add_subdirectory(date) add_subdirectory(exception) add_subdirectory(file-tree-study-loader) add_subdirectory(inifile) -add_subdirectory(io) add_subdirectory(jit) add_subdirectory(locale) add_subdirectory(locator) @@ -28,7 +27,6 @@ add_subdirectory(study-loader) add_subdirectory(sys) add_subdirectory(utils) add_subdirectory(writer) -add_subdirectory(antlr-interface) add_subdirectory(optimization-options) @@ -53,18 +51,18 @@ add_library(antares-core target_include_directories(antares-core PUBLIC - $ + $ PRIVATE - $ + $ ) target_link_libraries(antares-core PUBLIC - yuni-static-core - Antares::logs - Antares::exception - Antares::study - Antares::config + yuni-static-core + Antares::logs + Antares::exception + Antares::study + Antares::config ) import_std_libs(antares-core) diff --git a/src/solver/CMakeLists.txt b/src/solver/CMakeLists.txt index 3c62692503..d721328b23 100644 --- a/src/solver/CMakeLists.txt +++ b/src/solver/CMakeLists.txt @@ -13,9 +13,6 @@ add_subdirectory(hydro) add_subdirectory(infeasible-problem-analysis) add_subdirectory(lps) add_subdirectory(misc) -add_subdirectory(modelConverter) -add_subdirectory(modelParser) -add_subdirectory(systemParser) add_subdirectory(modeler) add_subdirectory(optimisation) add_subdirectory(signal-handling) diff --git a/src/solver/modeler/loadFiles/CMakeLists.txt b/src/solver/modeler/loadFiles/CMakeLists.txt index 678aa9386c..775dcb632d 100644 --- a/src/solver/modeler/loadFiles/CMakeLists.txt +++ b/src/solver/modeler/loadFiles/CMakeLists.txt @@ -23,9 +23,9 @@ target_link_libraries(loadModelerFiles Antares::antares-study-system-model PRIVATE Antares::io - Antares::systemParser - Antares::modelParser - Antares::modelConverter + Antares::yml-system + Antares::yml-model + Antares::model-converter Antares::modelerParameters ) diff --git a/src/solver/modeler/loadFiles/readLibraries.cpp b/src/solver/modeler/loadFiles/readLibraries.cpp index be6b8e15d8..41200dbf55 100644 --- a/src/solver/modeler/loadFiles/readLibraries.cpp +++ b/src/solver/modeler/loadFiles/readLibraries.cpp @@ -22,15 +22,16 @@ #include #include +#include +#include #include -#include -#include #include "antares/solver/modeler/loadFiles/loadFiles.h" namespace fs = std::filesystem; namespace Antares::Solver::LoadFiles { +using namespace IO::Inputs; static Study::SystemModel::Library loadSingleLibrary(const fs::path& filePath) { @@ -45,8 +46,8 @@ static Study::SystemModel::Library loadSingleLibrary(const fs::path& filePath) throw ErrorLoadingYaml(e.what()); } - ModelParser::Parser parser; - ModelParser::Library libraryObj; + YmlModel::Parser parser; + YmlModel::Library libraryObj; try { diff --git a/src/solver/modeler/loadFiles/readSystem.cpp b/src/solver/modeler/loadFiles/readSystem.cpp index dac47889cc..ce97ae0856 100644 --- a/src/solver/modeler/loadFiles/readSystem.cpp +++ b/src/solver/modeler/loadFiles/readSystem.cpp @@ -22,15 +22,16 @@ #include #include +#include +#include #include -#include -#include #include "antares/solver/modeler/loadFiles/loadFiles.h" namespace fs = std::filesystem; namespace Antares::Solver::LoadFiles { +using namespace IO::Inputs; Study::SystemModel::System loadSystem(const fs::path& studyPath, const std::vector& libraries) @@ -47,8 +48,8 @@ Study::SystemModel::System loadSystem(const fs::path& studyPath, throw ErrorLoadingYaml(e.what()); } - SystemParser::Parser parser; - SystemParser::System systemObj; + YmlSystem::Parser parser; + YmlSystem::System systemObj; try { systemObj = parser.parse(systemStr); diff --git a/src/tests/io/CMakeLists.txt b/src/tests/io/CMakeLists.txt new file mode 100644 index 0000000000..7b4993e0d2 --- /dev/null +++ b/src/tests/io/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(yml-importers) \ No newline at end of file diff --git a/src/tests/src/solver/modelParser/CMakeLists.txt b/src/tests/io/yml-importers/CMakeLists.txt similarity index 64% rename from src/tests/src/solver/modelParser/CMakeLists.txt rename to src/tests/io/yml-importers/CMakeLists.txt index 8586a937e4..9d4cd522e7 100644 --- a/src/tests/src/solver/modelParser/CMakeLists.txt +++ b/src/tests/io/yml-importers/CMakeLists.txt @@ -1,18 +1,18 @@ include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) -add_boost_test(TestModelParser +add_boost_test(TestYmlModel SRC - testModelParser.cpp + testYmlModel.cpp testModelTranslator.cpp testConvertorVisitor.cpp test_full.cpp enum_operators.h - testSystemParser.cpp + testYmlSystem.cpp testSystemConverter.cpp LIBS Antares::expressions - Antares::modelConverter - Antares::modelParser - Antares::systemParser + Antares::model-converter + Antares::yml-model + Antares::yml-system Antares::antares-study-system-model Antares::antlr-interface) diff --git a/src/tests/src/solver/modelParser/enum_operators.h b/src/tests/io/yml-importers/enum_operators.h similarity index 93% rename from src/tests/src/solver/modelParser/enum_operators.h rename to src/tests/io/yml-importers/enum_operators.h index bceca0f519..f730c92614 100644 --- a/src/tests/src/solver/modelParser/enum_operators.h +++ b/src/tests/io/yml-importers/enum_operators.h @@ -23,7 +23,7 @@ #include #include -#include "antares/solver/modelParser/Library.h" +#include "antares/io/inputs/yml-model/Library.h" #include "antares/study/system-model/valueType.h" namespace Antares::Study::SystemModel @@ -50,7 +50,7 @@ inline std::ostream& operator<<(std::ostream& os, const ValueType& value_type) } } // namespace Antares::Study::SystemModel -namespace Antares::Solver::ModelParser +namespace Antares::IO::Inputs::YmlModel { inline std::ostream& operator<<(std::ostream& os, const ValueType& value_type) { @@ -72,4 +72,4 @@ inline std::ostream& operator<<(std::ostream& os, const ValueType& value_type) } return os; } -} // namespace Antares::Solver::ModelParser +} // namespace Antares::IO::Inputs::YmlModel diff --git a/src/tests/src/solver/modelParser/testConvertorVisitor.cpp b/src/tests/io/yml-importers/testConvertorVisitor.cpp similarity index 93% rename from src/tests/src/solver/modelParser/testConvertorVisitor.cpp rename to src/tests/io/yml-importers/testConvertorVisitor.cpp index 64bf3cdcf3..6e7b22ff75 100644 --- a/src/tests/src/solver/modelParser/testConvertorVisitor.cpp +++ b/src/tests/io/yml-importers/testConvertorVisitor.cpp @@ -25,8 +25,8 @@ #include #include "antares/expressions/Registry.hxx" #include "antares/expressions/visitors/CompareVisitor.h" -#include "antares/solver/modelConverter/convertorVisitor.h" -#include "antares/solver/modelParser/Library.h" +#include "antares/io/inputs/model-converter/convertorVisitor.h" +#include "antares/io/inputs/yml-model/Library.h" using namespace Antares::Expressions; using namespace Antares::Solver; @@ -34,7 +34,7 @@ using namespace Antares::Solver; class ExpressionToNodeConvertorEmptyModel { public: - ExpressionToNodeConvertorEmptyModel(ModelParser::Model&& model): + ExpressionToNodeConvertorEmptyModel(YmlModel::Model&& model): model_(std::move(model)) { } @@ -48,7 +48,7 @@ class ExpressionToNodeConvertorEmptyModel } private: - const ModelParser::Model model_; + const YmlModel::Model model_; }; static Nodes::LiteralNode* toLiteral(Nodes::Node* n) @@ -73,11 +73,11 @@ BOOST_FIXTURE_TEST_CASE(negation, ExpressionToNodeConvertorEmptyModel) BOOST_AUTO_TEST_CASE(identifier) { - ModelParser::Model model{ + YmlModel::Model model{ .id = "model0", .description = "description", .parameters = {{"param1", true, false}, {"param2", false, false}}, - .variables = {{"varP", "7", "pmin", ModelParser::ValueType::CONTINUOUS}}, + .variables = {{"varP", "7", "pmin", YmlModel::ValueType::CONTINUOUS}}, .ports = {}, .port_field_definitions = {}, .constraints = {}, @@ -106,11 +106,11 @@ bool expectedMessage(const std::runtime_error& ex) BOOST_AUTO_TEST_CASE(identifierNotFound) { - ModelParser::Model model{ + YmlModel::Model model{ .id = "model0", .description = "description", .parameters = {{"param1", true, false}}, - .variables = {{"varP", "7", "pmin", ModelParser::ValueType::CONTINUOUS}}, + .variables = {{"varP", "7", "pmin", YmlModel::ValueType::CONTINUOUS}}, .ports = {}, .port_field_definitions = {}, .constraints = {}, @@ -193,11 +193,11 @@ BOOST_FIXTURE_TEST_CASE(comparison, ExpressionToNodeConvertorEmptyModel) BOOST_AUTO_TEST_CASE(medium_expression) { - ModelParser::Model model{ + YmlModel::Model model{ .id = "model0", .description = "description", .parameters = {{"param1", true, false}, {"param2", false, false}}, - .variables = {{"varP", "7", "param1", ModelParser::ValueType::CONTINUOUS}}, + .variables = {{"varP", "7", "param1", YmlModel::ValueType::CONTINUOUS}}, .ports = {}, .port_field_definitions = {}, .constraints = {}, diff --git a/src/tests/src/solver/modelParser/testModelTranslator.cpp b/src/tests/io/yml-importers/testModelTranslator.cpp similarity index 89% rename from src/tests/src/solver/modelParser/testModelTranslator.cpp rename to src/tests/io/yml-importers/testModelTranslator.cpp index b7620a4310..5b14bff4da 100644 --- a/src/tests/src/solver/modelParser/testModelTranslator.cpp +++ b/src/tests/io/yml-importers/testModelTranslator.cpp @@ -25,8 +25,8 @@ #include #include "antares/expressions/nodes/Node.h" -#include "antares/solver/modelConverter/modelConverter.h" -#include "antares/solver/modelParser/Library.h" +#include "antares/io/inputs/model-converter/modelConverter.h" +#include "antares/io/inputs/yml-model/Library.h" #include "antares/study/system-model/library.h" #include "enum_operators.h" @@ -36,7 +36,7 @@ using namespace Antares::Study; struct Fixture { - ModelParser::Library library; + YmlModel::Library library; }; // Test empty library @@ -63,8 +63,8 @@ BOOST_FIXTURE_TEST_CASE(library_id_description_properly_translated, Fixture) // Test library with port types BOOST_FIXTURE_TEST_CASE(port_type_with_empty_fileds_properly_translated, Fixture) { - ModelParser::PortType portType1{"port1", "flow port", {}}; - ModelParser::PortType portType2{"port2", "impedance port", {}}; + YmlModel::PortType portType1{"port1", "flow port", {}}; + YmlModel::PortType portType2{"port2", "impedance port", {}}; library.port_types = {portType1, portType2}; SystemModel::Library lib = ModelConverter::convert(library); BOOST_REQUIRE_EQUAL(lib.PortTypes().size(), 2); @@ -86,8 +86,8 @@ BOOST_FIXTURE_TEST_CASE(port_type_with_empty_fileds_properly_translated, Fixture // Test library with port types and fields BOOST_FIXTURE_TEST_CASE(portType_with_fields_properly_translated, Fixture) { - ModelParser::PortType portType1{"port1", "flow port", {"field1", "field2"}}; - ModelParser::PortType portType2{"port2", "impedance port", {"field3", "field4"}}; + YmlModel::PortType portType1{"port1", "flow port", {"field1", "field2"}}; + YmlModel::PortType portType2{"port2", "impedance port", {"field3", "field4"}}; library.port_types = {portType1, portType2}; SystemModel::Library lib = ModelConverter::convert(library); BOOST_REQUIRE_EQUAL(lib.PortTypes().at("port1").Fields().size(), 2); @@ -101,7 +101,7 @@ BOOST_FIXTURE_TEST_CASE(portType_with_fields_properly_translated, Fixture) // Test library with models BOOST_FIXTURE_TEST_CASE(empty_model_properly_translated, Fixture) { - ModelParser::Model model1{.id = "model1", + YmlModel::Model model1{.id = "model1", .description = "description", .parameters = {{"param1", true, false}}, .variables = {}, @@ -119,7 +119,7 @@ BOOST_FIXTURE_TEST_CASE(empty_model_properly_translated, Fixture) // Test library with models and parameters BOOST_FIXTURE_TEST_CASE(model_parameters_properly_translated, Fixture) { - ModelParser::Model model1{.id = "model1", + YmlModel::Model model1{.id = "model1", .description = "description", .parameters = {{"param1", true, false}, {"param2", false, false}}, .variables = {}, @@ -144,12 +144,12 @@ BOOST_FIXTURE_TEST_CASE(model_parameters_properly_translated, Fixture) // Test library with models and variables BOOST_FIXTURE_TEST_CASE(model_variables_properly_translated, Fixture) { - ModelParser::Model model1{ + YmlModel::Model model1{ .id = "model1", .description = "description", .parameters = {{"pmax", true, false}}, - .variables = {{"var1", "7", "pmax", ModelParser::ValueType::BOOL}, - {"var2", "99999999.9999999", "var1", ModelParser::ValueType::INTEGER}}, + .variables = {{"var1", "7", "pmax", YmlModel::ValueType::BOOL}, + {"var2", "99999999.9999999", "var1", YmlModel::ValueType::INTEGER}}, .ports = {}, .port_field_definitions = {}, .constraints = {}, @@ -173,9 +173,9 @@ BOOST_FIXTURE_TEST_CASE(model_variables_properly_translated, Fixture) // Test library with models and ports BOOST_AUTO_TEST_CASE(model_ports_properly_translated, *boost::unit_test::disabled()) { - ModelParser::Library library; + YmlModel::Library library; Antares::Expressions::Registry registry; - ModelParser::Model model1{.id = "model1", + YmlModel::Model model1{.id = "model1", .description = "description", .parameters = {}, .variables = {}, @@ -198,7 +198,7 @@ BOOST_AUTO_TEST_CASE(model_ports_properly_translated, *boost::unit_test::disable // Test library with models and constraints BOOST_FIXTURE_TEST_CASE(model_constraints_properly_translated, Fixture) { - ModelParser::Model model1{.id = "model1", + YmlModel::Model model1{.id = "model1", .description = "description", .parameters = {{"expression1", true, false}, {"expression2", true, false}}, @@ -223,21 +223,21 @@ BOOST_FIXTURE_TEST_CASE(model_constraints_properly_translated, Fixture) // Test with 2 models BOOST_FIXTURE_TEST_CASE(multiple_models_properly_translated, Fixture) { - ModelParser::Model model1{ + YmlModel::Model model1{ .id = "model1", .description = "description", .parameters = {{"param1", true, false}, {"param2", false, false}}, - .variables = {{"varP", "7", "param2", ModelParser::ValueType::CONTINUOUS}}, + .variables = {{"varP", "7", "param2", YmlModel::ValueType::CONTINUOUS}}, .ports = {}, .port_field_definitions = {}, .constraints = {}, .objective = ""}; - ModelParser::Model model2{ + YmlModel::Model model2{ .id = "model2", .description = "description", .parameters = {}, - .variables = {{"var1", "7", "8", ModelParser::ValueType::BOOL}, - {"var2", "99999999.9999999", "var1", ModelParser::ValueType::INTEGER}}, + .variables = {{"var1", "7", "8", YmlModel::ValueType::BOOL}, + {"var2", "99999999.9999999", "var1", YmlModel::ValueType::INTEGER}}, .ports = {}, .port_field_definitions = {}, .constraints = {}, diff --git a/src/tests/src/solver/modelParser/testSystemConverter.cpp b/src/tests/io/yml-importers/testSystemConverter.cpp similarity index 91% rename from src/tests/src/solver/modelParser/testSystemConverter.cpp rename to src/tests/io/yml-importers/testSystemConverter.cpp index 1ba1bbb1fd..aed5f809f4 100644 --- a/src/tests/src/solver/modelParser/testSystemConverter.cpp +++ b/src/tests/io/yml-importers/testSystemConverter.cpp @@ -23,11 +23,11 @@ #include -#include -#include +#include +#include #include -#include "antares/solver/modelConverter/modelConverter.h" -#include "antares/solver/modelParser/parser.h" +#include "antares/io/inputs/model-converter/modelConverter.h" +#include "antares/io/inputs/yml-model/parser.h" #include "antares/study/system-model/library.h" using namespace std::string_literals; @@ -36,7 +36,7 @@ using namespace Antares::Study; struct LibraryObjects { - ModelParser::Model model1{.id = "node", + YmlModel::Model model1{.id = "node", .description = "description", .parameters = {{"cost", true, false}}, .variables = {}, @@ -45,8 +45,8 @@ struct LibraryObjects .constraints = {{"constraint1", "cost"}}, .objective = ""}; - SystemParser::Parser parser; - ModelParser::Library library; + YmlSystem::Parser parser; + YmlModel::Library library; std::vector libraries; LibraryObjects() @@ -76,7 +76,7 @@ BOOST_FIXTURE_TEST_CASE(full_model_system, LibraryObjects) value: 30 )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); auto systemModel = SystemConverter::convert(systemObj, libraries); @@ -103,7 +103,7 @@ BOOST_FIXTURE_TEST_CASE(bad_param_name_in_component, LibraryObjects) value: 30 )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_THROW(SystemConverter::convert(systemObj, libraries), std::invalid_argument); } @@ -120,7 +120,7 @@ BOOST_FIXTURE_TEST_CASE(library_not_existing, LibraryObjects) scenario-group: group-234 )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_THROW(SystemConverter::convert(systemObj, libraries), std::runtime_error); } @@ -137,7 +137,7 @@ BOOST_FIXTURE_TEST_CASE(model_not_existing, LibraryObjects) scenario-group: group-234 )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_THROW(SystemConverter::convert(systemObj, libraries), std::runtime_error); } @@ -158,7 +158,7 @@ BOOST_FIXTURE_TEST_CASE(bad_library_model_format, LibraryObjects) value: 30 )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_THROW(SystemConverter::convert(systemObj, libraries), std::runtime_error); } @@ -257,14 +257,14 @@ BOOST_AUTO_TEST_CASE(Full_system_test) value: 100 )"s; - ModelParser::Parser parserModel; - SystemParser::Parser parserSystem; + YmlModel::Parser parserModel; + YmlSystem::Parser parserSystem; std::vector libraries; libraries.push_back(ModelConverter::convert(parserModel.parse(libraryYaml))); libraries.push_back(ModelConverter::convert(parserModel.parse(libraryYaml2))); - SystemParser::System systemObj = parserSystem.parse(systemYaml); + YmlSystem::System systemObj = parserSystem.parse(systemYaml); auto systemModel = SystemConverter::convert(systemObj, libraries); BOOST_CHECK_EQUAL(systemModel.Components().size(), 3); diff --git a/src/tests/src/solver/modelParser/testModelParser.cpp b/src/tests/io/yml-importers/testYmlModel.cpp similarity index 88% rename from src/tests/src/solver/modelParser/testModelParser.cpp rename to src/tests/io/yml-importers/testYmlModel.cpp index 23f237f862..c01b11aff7 100644 --- a/src/tests/src/solver/modelParser/testModelParser.cpp +++ b/src/tests/io/yml-importers/testYmlModel.cpp @@ -25,7 +25,7 @@ #include -#include "antares/solver/modelParser/parser.h" +#include "antares/io/inputs/yml-model/parser.h" #include "enum_operators.h" @@ -34,7 +34,7 @@ using namespace std::string_literals; // Test empty library BOOST_AUTO_TEST_CASE(EmpyLibrary_is_valid) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "" @@ -42,7 +42,7 @@ BOOST_AUTO_TEST_CASE(EmpyLibrary_is_valid) port-types: [] models: [] )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_CHECK(libraryObj.id.empty()); BOOST_CHECK(libraryObj.description.empty()); BOOST_CHECK(libraryObj.port_types.empty()); @@ -52,7 +52,7 @@ BOOST_AUTO_TEST_CASE(EmpyLibrary_is_valid) // Test library with id and description BOOST_AUTO_TEST_CASE(library_id_and_description_parsed_properly) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "test_id" @@ -60,7 +60,7 @@ BOOST_AUTO_TEST_CASE(library_id_and_description_parsed_properly) port-types: [] models: [] )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_CHECK_EQUAL(libraryObj.id, "test_id"); BOOST_CHECK_EQUAL(libraryObj.description, "test_description"); } @@ -68,7 +68,7 @@ BOOST_AUTO_TEST_CASE(library_id_and_description_parsed_properly) // Test library with port types BOOST_AUTO_TEST_CASE(port_types_properly_parsed) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -80,7 +80,7 @@ BOOST_AUTO_TEST_CASE(port_types_properly_parsed) - id: "port_name" models: [] )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.port_types.size(), 1); BOOST_CHECK_EQUAL(libraryObj.port_types[0].id, "porttype_id"); BOOST_CHECK_EQUAL(libraryObj.port_types[0].description, "porttype_description"); @@ -91,7 +91,7 @@ BOOST_AUTO_TEST_CASE(port_types_properly_parsed) // Test library with multiple port types BOOST_AUTO_TEST_CASE(library_can_contain_multiple_port_types) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -107,7 +107,7 @@ BOOST_AUTO_TEST_CASE(library_can_contain_multiple_port_types) - id: "port_name2" models: [] )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.port_types.size(), 2); BOOST_CHECK_EQUAL(libraryObj.port_types[0].id, "porttype_id1"); BOOST_CHECK_EQUAL(libraryObj.port_types[0].description, "porttype_description1"); @@ -122,7 +122,7 @@ BOOST_AUTO_TEST_CASE(library_can_contain_multiple_port_types) // Test library with models BOOST_AUTO_TEST_CASE(models_properly_parsed) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const std::string library = R"( library: id: "lib_id" @@ -138,7 +138,7 @@ BOOST_AUTO_TEST_CASE(models_properly_parsed) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_CHECK_EQUAL(libraryObj.models[0].id, "model_id"); BOOST_CHECK_EQUAL(libraryObj.models[0].description, "model_description"); @@ -154,7 +154,7 @@ BOOST_AUTO_TEST_CASE(models_properly_parsed) // Test library with multiple models BOOST_AUTO_TEST_CASE(library_can_contain_multiple_models) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -178,7 +178,7 @@ BOOST_AUTO_TEST_CASE(library_can_contain_multiple_models) constraints: [] objective: "objective2" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 2); BOOST_CHECK_EQUAL(libraryObj.models[0].id, "model_id1"); BOOST_CHECK_EQUAL(libraryObj.models[0].description, "model_description1"); @@ -191,7 +191,7 @@ BOOST_AUTO_TEST_CASE(library_can_contain_multiple_models) // Test library with one model containing parameters BOOST_AUTO_TEST_CASE(parameters_properly_parsed) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -210,7 +210,7 @@ BOOST_AUTO_TEST_CASE(parameters_properly_parsed) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].parameters.size(), 1); BOOST_CHECK_EQUAL(libraryObj.models[0].parameters[0].id, "param_name"); @@ -221,7 +221,7 @@ BOOST_AUTO_TEST_CASE(parameters_properly_parsed) // Test library with one model containing multiple parameters BOOST_AUTO_TEST_CASE(model_can_contain_multiple_parameters) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -243,7 +243,7 @@ BOOST_AUTO_TEST_CASE(model_can_contain_multiple_parameters) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].parameters.size(), 2); BOOST_CHECK_EQUAL(libraryObj.models[0].parameters[0].id, "param_name1"); @@ -257,7 +257,7 @@ BOOST_AUTO_TEST_CASE(model_can_contain_multiple_parameters) // Time dependent and scenario dependant default value are true BOOST_AUTO_TEST_CASE(test_library_model_parameters_default_values) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; auto library = R"( library: id: "lib_id" @@ -274,7 +274,7 @@ BOOST_AUTO_TEST_CASE(test_library_model_parameters_default_values) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_CHECK(libraryObj.models.size() == 1); BOOST_CHECK(libraryObj.models[0].parameters.size() == 1); BOOST_CHECK(libraryObj.models[0].parameters[0].id == "param_name"); @@ -285,7 +285,7 @@ BOOST_AUTO_TEST_CASE(test_library_model_parameters_default_values) // Test library with one model containing variables BOOST_AUTO_TEST_CASE(variables_properly_parsed) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -304,7 +304,7 @@ BOOST_AUTO_TEST_CASE(variables_properly_parsed) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].variables.size(), 1); BOOST_CHECK_EQUAL(libraryObj.models[0].variables[0].id, "var_name"); @@ -315,7 +315,7 @@ BOOST_AUTO_TEST_CASE(variables_properly_parsed) // Test library with one model containing multiple variables BOOST_AUTO_TEST_CASE(model_can_contain_multiple_variables) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -337,7 +337,7 @@ BOOST_AUTO_TEST_CASE(model_can_contain_multiple_variables) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].variables.size(), 2); BOOST_CHECK_EQUAL(libraryObj.models[0].variables[0].id, "var_name1"); @@ -351,7 +351,7 @@ BOOST_AUTO_TEST_CASE(model_can_contain_multiple_variables) // variable bounds are strings expressions BOOST_AUTO_TEST_CASE(variables_bounds_are_literals) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -370,7 +370,7 @@ BOOST_AUTO_TEST_CASE(variables_bounds_are_literals) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_CHECK_EQUAL(libraryObj.models[0].variables[0].id, "var_name"); BOOST_CHECK_EQUAL(libraryObj.models[0].variables[0].lower_bound, "near-zero"); BOOST_CHECK_EQUAL(libraryObj.models[0].variables[0].upper_bound, "pmax"); @@ -379,7 +379,7 @@ BOOST_AUTO_TEST_CASE(variables_bounds_are_literals) // variable variable-type BOOST_AUTO_TEST_CASE(variable_types_can_be_integer_bool_float_default_to_float) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -410,22 +410,22 @@ BOOST_AUTO_TEST_CASE(variable_types_can_be_integer_bool_float_default_to_float) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); auto& model = libraryObj.models[0]; auto& var1 = model.variables[0]; auto& var2 = model.variables[1]; auto& var3 = model.variables[2]; auto& var4 = model.variables[3]; - BOOST_CHECK_EQUAL(var1.variable_type, Antares::Solver::ModelParser::ValueType::BOOL); - BOOST_CHECK_EQUAL(var2.variable_type, Antares::Solver::ModelParser::ValueType::INTEGER); - BOOST_CHECK_EQUAL(var3.variable_type, Antares::Solver::ModelParser::ValueType::CONTINUOUS); - BOOST_CHECK_EQUAL(var4.variable_type, Antares::Solver::ModelParser::ValueType::CONTINUOUS); + BOOST_CHECK_EQUAL(var1.variable_type, Antares::IO::Inputs::YmlModel::ValueType::BOOL); + BOOST_CHECK_EQUAL(var2.variable_type, Antares::IO::Inputs::YmlModel::ValueType::INTEGER); + BOOST_CHECK_EQUAL(var3.variable_type, Antares::IO::Inputs::YmlModel::ValueType::CONTINUOUS); + BOOST_CHECK_EQUAL(var4.variable_type, Antares::IO::Inputs::YmlModel::ValueType::CONTINUOUS); } // Test library with one model containing ports BOOST_AUTO_TEST_CASE(ports_are_properly_parsed) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -443,7 +443,7 @@ BOOST_AUTO_TEST_CASE(ports_are_properly_parsed) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].ports.size(), 1); BOOST_CHECK_EQUAL(libraryObj.models[0].ports[0].id, "port_name"); @@ -453,7 +453,7 @@ BOOST_AUTO_TEST_CASE(ports_are_properly_parsed) // Test library with one model containing multiple ports BOOST_AUTO_TEST_CASE(model_can_conatin_multiple_ports) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -473,7 +473,7 @@ BOOST_AUTO_TEST_CASE(model_can_conatin_multiple_ports) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].ports.size(), 2); BOOST_CHECK_EQUAL(libraryObj.models[0].ports[0].id, "port_name1"); @@ -485,7 +485,7 @@ BOOST_AUTO_TEST_CASE(model_can_conatin_multiple_ports) // Test library with one model containing port field definitions BOOST_AUTO_TEST_CASE(model_port_fileds_properly_parsed) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -504,7 +504,7 @@ BOOST_AUTO_TEST_CASE(model_port_fileds_properly_parsed) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].port_field_definitions.size(), 1); BOOST_CHECK_EQUAL(libraryObj.models[0].port_field_definitions[0].port, "port_name"); @@ -515,7 +515,7 @@ BOOST_AUTO_TEST_CASE(model_port_fileds_properly_parsed) // Test library with one model containing multiple port field definitions BOOST_AUTO_TEST_CASE(model_can_contain_multiple_portfields) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -537,7 +537,7 @@ BOOST_AUTO_TEST_CASE(model_can_contain_multiple_portfields) constraints: [] objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].port_field_definitions.size(), 2); BOOST_CHECK_EQUAL(libraryObj.models[0].port_field_definitions[0].port, "port_name1"); @@ -551,7 +551,7 @@ BOOST_AUTO_TEST_CASE(model_can_contain_multiple_portfields) // Test library with one model containing constraints BOOST_AUTO_TEST_CASE(constraints_properly_parsed) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -569,7 +569,7 @@ BOOST_AUTO_TEST_CASE(constraints_properly_parsed) expression: "expression" objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].constraints.size(), 1); BOOST_CHECK_EQUAL(libraryObj.models[0].constraints[0].id, "constraint_name"); @@ -579,7 +579,7 @@ BOOST_AUTO_TEST_CASE(constraints_properly_parsed) // Test library with one model containing multiple constraints BOOST_AUTO_TEST_CASE(model_can_contain_multiple_constraints) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -599,7 +599,7 @@ BOOST_AUTO_TEST_CASE(model_can_contain_multiple_constraints) expression: "expression2" objective: "objective" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_REQUIRE_EQUAL(libraryObj.models[0].constraints.size(), 2); BOOST_CHECK_EQUAL(libraryObj.models[0].constraints[0].id, "constraint_name1"); @@ -611,7 +611,7 @@ BOOST_AUTO_TEST_CASE(model_can_contain_multiple_constraints) // Test error when model is not a map BOOST_AUTO_TEST_CASE(model_is_not_scalar) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -624,7 +624,7 @@ BOOST_AUTO_TEST_CASE(model_is_not_scalar) BOOST_AUTO_TEST_CASE(model_attributs_can_be_ommited) { - Antares::Solver::ModelParser::Parser parser; + Antares::IO::Inputs::YmlModel::Parser parser; const auto library = R"( library: id: "lib_id" @@ -633,7 +633,7 @@ BOOST_AUTO_TEST_CASE(model_attributs_can_be_ommited) models: - id: "model_id" )"s; - Antares::Solver::ModelParser::Library libraryObj = parser.parse(library); + Antares::IO::Inputs::YmlModel::Library libraryObj = parser.parse(library); BOOST_REQUIRE_EQUAL(libraryObj.models.size(), 1); BOOST_CHECK_EQUAL(libraryObj.models[0].id, "model_id"); BOOST_CHECK_EQUAL(libraryObj.models[0].description, ""); diff --git a/src/tests/src/solver/modelParser/testSystemParser.cpp b/src/tests/io/yml-importers/testYmlSystem.cpp similarity index 86% rename from src/tests/src/solver/modelParser/testSystemParser.cpp rename to src/tests/io/yml-importers/testYmlSystem.cpp index 892e29467d..25df8406aa 100644 --- a/src/tests/src/solver/modelParser/testSystemParser.cpp +++ b/src/tests/io/yml-importers/testYmlSystem.cpp @@ -23,8 +23,8 @@ #include -#include -#include +#include +#include #include using namespace std::string_literals; @@ -33,7 +33,7 @@ using namespace Antares::Study; BOOST_AUTO_TEST_CASE(empty_system) { - SystemParser::Parser parser; + YmlSystem::Parser parser; const auto system = R"( system: id: "" @@ -41,7 +41,7 @@ BOOST_AUTO_TEST_CASE(empty_system) model-libraries: [] components: [] )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK(systemObj.id.empty()); BOOST_CHECK(systemObj.libraries.empty()); BOOST_CHECK(systemObj.components.empty()); @@ -49,31 +49,31 @@ BOOST_AUTO_TEST_CASE(empty_system) BOOST_AUTO_TEST_CASE(simple_id) { - SystemParser::Parser parser; + YmlSystem::Parser parser; const auto system = R"( system: id: base_system description: a basic system )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_EQUAL(systemObj.id, "base_system"); } BOOST_AUTO_TEST_CASE(libraries_one_model) { - SystemParser::Parser parser; + YmlSystem::Parser parser; const auto system = R"( system: id: base_system model-libraries: [abc] )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_EQUAL(systemObj.libraries[0], "abc"); } BOOST_AUTO_TEST_CASE(libraries_list_of_models) { - SystemParser::Parser parser; + YmlSystem::Parser parser; const auto system = R"( system: id: base_system @@ -81,7 +81,7 @@ BOOST_AUTO_TEST_CASE(libraries_list_of_models) model-libraries: [abc, def, 123] components: [] )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_EQUAL(systemObj.libraries[0], "abc"); BOOST_CHECK_EQUAL(systemObj.libraries[1], "def"); BOOST_CHECK_EQUAL(systemObj.libraries[2], "123"); @@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE(libraries_list_of_models) BOOST_AUTO_TEST_CASE(one_component) { - SystemParser::Parser parser; + YmlSystem::Parser parser; const auto system = R"( system: id: base_system @@ -100,7 +100,7 @@ BOOST_AUTO_TEST_CASE(one_component) model: abcde scenario-group: group-234 )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_EQUAL(systemObj.components[0].id, "N"); BOOST_CHECK_EQUAL(systemObj.components[0].model, "abcde"); BOOST_CHECK_EQUAL(systemObj.components[0].scenarioGroup, "group-234"); @@ -108,7 +108,7 @@ BOOST_AUTO_TEST_CASE(one_component) BOOST_AUTO_TEST_CASE(two_components) { - SystemParser::Parser parser; + YmlSystem::Parser parser; const auto system = R"( system: id: base_system @@ -121,7 +121,7 @@ BOOST_AUTO_TEST_CASE(two_components) model: std.generator scenario-group: group-thermal )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); BOOST_CHECK_EQUAL(systemObj.components[0].id, "N"); BOOST_CHECK_EQUAL(systemObj.components[0].model, "std.node"); BOOST_CHECK_EQUAL(systemObj.components[0].scenarioGroup, "group-234"); @@ -132,7 +132,7 @@ BOOST_AUTO_TEST_CASE(two_components) BOOST_AUTO_TEST_CASE(component_parameter) { - SystemParser::Parser parser; + YmlSystem::Parser parser; const auto system = R"( system: id: base_system @@ -146,7 +146,7 @@ BOOST_AUTO_TEST_CASE(component_parameter) type: constant value: 30 )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); const auto& param = systemObj.components[0].parameters[0]; BOOST_CHECK_EQUAL(param.id, "cost"); BOOST_CHECK_EQUAL(param.type, "constant"); @@ -155,7 +155,7 @@ BOOST_AUTO_TEST_CASE(component_parameter) BOOST_AUTO_TEST_CASE(component_two_parameters) { - SystemParser::Parser parser; + YmlSystem::Parser parser; const auto system = R"( system: id: base_system @@ -172,7 +172,7 @@ BOOST_AUTO_TEST_CASE(component_two_parameters) type: constant value: 100 )"s; - SystemParser::System systemObj = parser.parse(system); + YmlSystem::System systemObj = parser.parse(system); const auto& param = systemObj.components[0].parameters[0]; const auto& param2 = systemObj.components[0].parameters[1]; BOOST_CHECK_EQUAL(param.id, "cost"); diff --git a/src/tests/src/solver/modelParser/test_full.cpp b/src/tests/io/yml-importers/test_full.cpp similarity index 98% rename from src/tests/src/solver/modelParser/test_full.cpp rename to src/tests/io/yml-importers/test_full.cpp index 1d185810a0..36d0e182a9 100644 --- a/src/tests/src/solver/modelParser/test_full.cpp +++ b/src/tests/io/yml-importers/test_full.cpp @@ -26,9 +26,9 @@ #include #include "antares/expressions/nodes/Node.h" -#include "antares/solver/modelConverter/modelConverter.h" -#include "antares/solver/modelParser/Library.h" -#include "antares/solver/modelParser/parser.h" +#include "antares/io/inputs/model-converter/modelConverter.h" +#include "antares/io/inputs/yml-model/Library.h" +#include "antares/io/inputs/yml-model/parser.h" #include "antares/study/system-model/library.h" #include "enum_operators.h" @@ -262,8 +262,8 @@ BOOST_AUTO_TEST_CASE(test_full) try { - ModelParser::Parser parser; - ModelParser::Library libraryObj = parser.parse(library); + YmlModel::Parser parser; + YmlModel::Library libraryObj = parser.parse(library); SystemModel::Library lib = ModelConverter::convert(libraryObj); BOOST_CHECK_EQUAL(lib.Id(), "basic"); BOOST_CHECK_EQUAL(lib.Description(), "Basic library"); diff --git a/src/tests/src/solver/CMakeLists.txt b/src/tests/src/solver/CMakeLists.txt index 5cb3cf4373..c65395d40c 100644 --- a/src/tests/src/solver/CMakeLists.txt +++ b/src/tests/src/solver/CMakeLists.txt @@ -1,6 +1,5 @@ add_subdirectory(infeasible-problem-analysis) add_subdirectory(lps) -add_subdirectory(modelParser) add_subdirectory(modeler) add_subdirectory(optimisation) add_subdirectory(optim-model-filler) From daa1cb484a7de046b5c6ecd2f31a35637f0359d9 Mon Sep 17 00:00:00 2001 From: Peter Mitri Date: Tue, 4 Feb 2025 11:30:56 +0100 Subject: [PATCH 4/8] move optimisation sources --- src/CMakeLists.txt | 9 +- src/optimisation/CMakeLists.txt | 3 + .../linear-problem-api/CMakeLists.txt | 25 +++++ .../linear-problem-api}/ILinearProblemData.h | 4 +- .../linear-problem-api}/hasBounds.h | 4 +- .../linear-problem-api}/hasName.h | 4 +- .../linear-problem-api}/linearProblem.h | 4 +- .../linearProblemBuilder.h | 4 +- .../linear-problem-api}/linearProblemFiller.h | 8 +- .../linear-problem-api}/mipConstraint.h | 4 +- .../linear-problem-api}/mipSolution.h | 4 +- .../linear-problem-api}/mipVariable.h | 4 +- .../linearProblemBuilder.cpp | 6 +- .../linear-problem-data-impl/CMakeLists.txt | 32 +++++++ .../dataSeriesRepo.cpp | 6 +- .../dataSeriesRepoExceptions.cpp | 6 +- .../linear-problem-data-impl}/dataSeries.h | 4 +- .../dataSeriesRepo.h | 4 +- .../linearProblemData.h | 16 ++-- .../scenarioGroupRepo.h | 4 +- .../linear-problem-data-impl}/timeSeriesSet.h | 4 +- .../linearProblemData.cpp | 6 +- .../scenarioGroupRepo.cpp | 6 +- .../scenarioGroupRepoExceptions.cpp | 6 +- .../timeSeriesSet.cpp | 6 +- .../timeSeriesSetExceptions.cpp | 6 +- .../CMakeLists.txt | 13 ++- .../linearProblem.h | 26 +++--- .../mipConstraint.h | 12 +-- .../mipSolution.h | 14 +-- .../mipVariable.h | 8 +- .../linearProblem.cpp | 30 +++--- .../mipConstraint.cpp | 16 ++-- .../mipSolution.cpp | 22 ++--- .../mipVariable.cpp | 6 +- src/packaging/CMakeLists.txt | 6 +- src/solver/modeler/CMakeLists.txt | 11 +-- src/solver/modeler/api/CMakeLists.txt | 28 ------ src/solver/modeler/dataSeries/CMakeLists.txt | 33 ------- src/solver/modeler/main.cpp | 93 ++++++++----------- src/solver/optim-model-filler/CMakeLists.txt | 2 +- .../optim-model-filler/ComponentFiller.cpp | 24 ++--- .../optim-model-filler/ComponentFiller.h | 28 +++--- src/solver/optimisation/CMakeLists.txt | 6 +- src/solver/optimisation/LegacyFiller.cpp | 2 +- .../solver/optimisation/LegacyFiller.h | 32 +++---- .../optimisation/LegacyOrtoolsLinearProblem.h | 4 +- .../opt_appel_solveur_lineaire.cpp | 10 +- src/tests/src/CMakeLists.txt | 2 + src/tests/src/modeler/CMakeLists.txt | 1 + .../modeler/loadFiles/CMakeLists.txt | 0 .../loadFiles/testLoadModelerFiles.cpp | 0 .../modeler/loadFiles/testParameters.cpp | 0 src/tests/src/optimisation/CMakeLists.txt | 2 + .../linear-problem-data}/CMakeLists.txt | 2 +- .../linear-problem-data}/main.cpp | 0 .../testDataSeriesRepo.cpp | 6 +- .../testLinearProblemData.cpp | 6 +- .../testScenarioGroupRepo.cpp | 4 +- .../testTimeSeriesSet.cpp | 4 +- .../linear-problem/CMakeLists.txt | 11 +++ .../mock-fillers/FillerContext.h | 6 +- .../mock-fillers/OneConstraintFiller.h | 6 +- .../mock-fillers/OneVarFiller.h | 6 +- .../TwoVarsTwoConstraintsFiller.h | 6 +- .../testLinearProblemBuilder.cpp} | 12 +-- .../testLinearProblemMpsolverImpl.cpp} | 12 +-- .../linear-problem}/test_main.cpp | 0 src/tests/src/solver/CMakeLists.txt | 1 - src/tests/src/solver/modeler/CMakeLists.txt | 3 - .../src/solver/modeler/api/CMakeLists.txt | 11 --- .../solver/optim-model-filler/CMakeLists.txt | 4 +- .../test_componentFiller.cpp | 12 +-- 73 files changed, 355 insertions(+), 377 deletions(-) create mode 100644 src/optimisation/CMakeLists.txt create mode 100644 src/optimisation/linear-problem-api/CMakeLists.txt rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/ILinearProblemData.h (73%) rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/hasBounds.h (92%) rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/hasName.h (91%) rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/linearProblem.h (97%) rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/linearProblemBuilder.h (92%) rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/linearProblemFiller.h (89%) rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/mipConstraint.h (91%) rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/mipSolution.h (94%) rename src/{solver/modeler/api/include/antares/solver/modeler/api => optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api}/mipVariable.h (91%) rename src/{solver/modeler/api => optimisation/linear-problem-api}/linearProblemBuilder.cpp (89%) create mode 100644 src/optimisation/linear-problem-data-impl/CMakeLists.txt rename src/{solver/modeler/dataSeries => optimisation/linear-problem-data-impl}/dataSeriesRepo.cpp (74%) rename src/{solver/modeler/dataSeries => optimisation/linear-problem-data-impl}/dataSeriesRepoExceptions.cpp (73%) rename src/{solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries => optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl}/dataSeries.h (73%) rename src/{solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries => optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl}/dataSeriesRepo.h (87%) rename src/{solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries => optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl}/linearProblemData.h (72%) rename src/{solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries => optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl}/scenarioGroupRepo.h (88%) rename src/{solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries => optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl}/timeSeriesSet.h (90%) rename src/{solver/modeler/dataSeries => optimisation/linear-problem-data-impl}/linearProblemData.cpp (89%) rename src/{solver/modeler/dataSeries => optimisation/linear-problem-data-impl}/scenarioGroupRepo.cpp (78%) rename src/{solver/modeler/dataSeries => optimisation/linear-problem-data-impl}/scenarioGroupRepoExceptions.cpp (78%) rename src/{solver/modeler/dataSeries => optimisation/linear-problem-data-impl}/timeSeriesSet.cpp (78%) rename src/{solver/modeler/dataSeries => optimisation/linear-problem-data-impl}/timeSeriesSetExceptions.cpp (84%) rename src/{solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl}/CMakeLists.txt (57%) rename src/{solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl}/linearProblem.h (79%) rename src/{solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl}/mipConstraint.h (77%) rename src/{solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl}/mipSolution.h (76%) rename src/{solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl}/mipVariable.h (85%) rename src/{solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl}/linearProblem.cpp (84%) rename src/{solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl}/mipConstraint.cpp (75%) rename src/{solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl}/mipSolution.cpp (77%) rename src/{solver/modeler/ortoolsImpl => optimisation/linear-problem-mpsolver-impl}/mipVariable.cpp (89%) delete mode 100644 src/solver/modeler/api/CMakeLists.txt delete mode 100644 src/solver/modeler/dataSeries/CMakeLists.txt create mode 100644 src/tests/src/modeler/CMakeLists.txt rename src/tests/src/{solver => }/modeler/loadFiles/CMakeLists.txt (100%) rename src/tests/src/{solver => }/modeler/loadFiles/testLoadModelerFiles.cpp (100%) rename src/tests/src/{solver => }/modeler/loadFiles/testParameters.cpp (100%) create mode 100644 src/tests/src/optimisation/CMakeLists.txt rename src/tests/src/{solver/modeler/dataSeries => optimisation/linear-problem-data}/CMakeLists.txt (89%) rename src/tests/src/{solver/modeler/dataSeries => optimisation/linear-problem-data}/main.cpp (100%) rename src/tests/src/{solver/modeler/dataSeries => optimisation/linear-problem-data}/testDataSeriesRepo.cpp (94%) rename src/tests/src/{solver/modeler/dataSeries => optimisation/linear-problem-data}/testLinearProblemData.cpp (86%) rename src/tests/src/{solver/modeler/dataSeries => optimisation/linear-problem-data}/testScenarioGroupRepo.cpp (93%) rename src/tests/src/{solver/modeler/dataSeries => optimisation/linear-problem-data}/testTimeSeriesSet.cpp (94%) create mode 100644 src/tests/src/optimisation/linear-problem/CMakeLists.txt rename src/tests/src/{solver/modeler/api => optimisation/linear-problem}/mock-fillers/FillerContext.h (90%) rename src/tests/src/{solver/modeler/api => optimisation/linear-problem}/mock-fillers/OneConstraintFiller.h (86%) rename src/tests/src/{solver/modeler/api => optimisation/linear-problem}/mock-fillers/OneVarFiller.h (87%) rename src/tests/src/{solver/modeler/api => optimisation/linear-problem}/mock-fillers/TwoVarsTwoConstraintsFiller.h (89%) rename src/tests/src/{solver/modeler/api/testModelerLPbuilder.cpp => optimisation/linear-problem/testLinearProblemBuilder.cpp} (91%) rename src/tests/src/{solver/modeler/api/testModelerLinearProblemWithOrtools.cpp => optimisation/linear-problem/testLinearProblemMpsolverImpl.cpp} (96%) rename src/tests/src/{solver/modeler/api => optimisation/linear-problem}/test_main.cpp (100%) delete mode 100644 src/tests/src/solver/modeler/CMakeLists.txt delete mode 100644 src/tests/src/solver/modeler/api/CMakeLists.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ba720d01dc..8f1b844d4d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -271,10 +271,11 @@ if(BUILD_UI) add_subdirectory(ui) #all antares ui libs + antares simulator endif() -add_subdirectory(expressions) #modeler expressions (AST) -add_subdirectory(study) #antares study model -add_subdirectory(solver) #antares solver and all associated libs -add_subdirectory(analyzer) #antares analyser +add_subdirectory(expressions) #modeler expressions (AST) +add_subdirectory(optimisation) #optimisation APIs +add_subdirectory(study) #antares study model +add_subdirectory(solver) #antares solver and all associated libs +add_subdirectory(analyzer) #antares analyser # Tools if (BUILD_TOOLS) diff --git a/src/optimisation/CMakeLists.txt b/src/optimisation/CMakeLists.txt new file mode 100644 index 0000000000..558dc6812d --- /dev/null +++ b/src/optimisation/CMakeLists.txt @@ -0,0 +1,3 @@ +add_subdirectory(linear-problem-data-impl) +add_subdirectory(linear-problem-api) +add_subdirectory(linear-problem-mpsolver-impl) diff --git a/src/optimisation/linear-problem-api/CMakeLists.txt b/src/optimisation/linear-problem-api/CMakeLists.txt new file mode 100644 index 0000000000..ddae8cca75 --- /dev/null +++ b/src/optimisation/linear-problem-api/CMakeLists.txt @@ -0,0 +1,25 @@ +set(PROJ linear-problem-api) + +set(SRC_API + include/antares/optimisation/linear-problem-api/mipVariable.h + include/antares/optimisation/linear-problem-api/mipSolution.h + include/antares/optimisation/linear-problem-api/mipConstraint.h + include/antares/optimisation/linear-problem-api/hasBounds.h + include/antares/optimisation/linear-problem-api/hasName.h + include/antares/optimisation/linear-problem-api/ILinearProblemData.h + include/antares/optimisation/linear-problem-api/linearProblem.h + include/antares/optimisation/linear-problem-api/linearProblemFiller.h + include/antares/optimisation/linear-problem-api/linearProblemBuilder.h + linearProblemBuilder.cpp +) + +add_library(${PROJ} ${SRC_API}) +add_library(Antares::${PROJ} ALIAS ${PROJ}) + +set_target_properties(${PROJ} PROPERTIES LINKER_LANGUAGE CXX) + + +target_include_directories(${PROJ} + PUBLIC + $ +) diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/ILinearProblemData.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/ILinearProblemData.h similarity index 73% rename from src/solver/modeler/api/include/antares/solver/modeler/api/ILinearProblemData.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/ILinearProblemData.h index c24690d219..4904793e30 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/ILinearProblemData.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/ILinearProblemData.h @@ -3,7 +3,7 @@ #include -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { class ILinearProblemData @@ -15,4 +15,4 @@ class ILinearProblemData = 0; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/hasBounds.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/hasBounds.h similarity index 92% rename from src/solver/modeler/api/include/antares/solver/modeler/api/hasBounds.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/hasBounds.h index 474a34d74f..1e41fea929 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/hasBounds.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/hasBounds.h @@ -21,7 +21,7 @@ #pragma once -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { /// Used to handle bounds for IMipVariable and IMipConstraint @@ -39,4 +39,4 @@ class IHasBounds virtual double getUb() const = 0; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/hasName.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/hasName.h similarity index 91% rename from src/solver/modeler/api/include/antares/solver/modeler/api/hasName.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/hasName.h index 0003dd6843..3006e51227 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/hasName.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/hasName.h @@ -23,7 +23,7 @@ #include -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { /// Inherited by IMipVariable and IMipConstraint @@ -34,4 +34,4 @@ class IHasName virtual const std::string& getName() const = 0; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblem.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblem.h similarity index 97% rename from src/solver/modeler/api/include/antares/solver/modeler/api/linearProblem.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblem.h index 7dc333196c..0603137174 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblem.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblem.h @@ -29,7 +29,7 @@ #include "mipVariable.h" /// Namespace for the classes related to the linear problem API -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { /** @@ -111,4 +111,4 @@ class ILinearProblem virtual double infinity() const = 0; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemBuilder.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblemBuilder.h similarity index 92% rename from src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemBuilder.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblemBuilder.h index 21d247096e..3a9d747112 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemBuilder.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblemBuilder.h @@ -25,7 +25,7 @@ #include "linearProblemFiller.h" -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { class LinearProblemBuilder @@ -38,4 +38,4 @@ class LinearProblemBuilder const std::vector& fillers_; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemFiller.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblemFiller.h similarity index 89% rename from src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemFiller.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblemFiller.h index f0c1cf6658..a237620800 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/linearProblemFiller.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/linearProblemFiller.h @@ -24,8 +24,8 @@ #include #include -#include -#include +#include +#include namespace Antares::Expressions::Visitors { @@ -37,7 +37,7 @@ namespace Antares::Expressions::Nodes class Node; } -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { struct FillContext { @@ -80,4 +80,4 @@ class LinearProblemFiller virtual ~LinearProblemFiller() = default; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/mipConstraint.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipConstraint.h similarity index 91% rename from src/solver/modeler/api/include/antares/solver/modeler/api/mipConstraint.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipConstraint.h index 71baf95cd8..853f071ba9 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/mipConstraint.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipConstraint.h @@ -23,7 +23,7 @@ #include "mipVariable.h" -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { class IMipConstraint: public IHasBounds, public IHasName @@ -34,4 +34,4 @@ class IMipConstraint: public IHasBounds, public IHasName virtual double getCoefficient(IMipVariable* var) = 0; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/mipSolution.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipSolution.h similarity index 94% rename from src/solver/modeler/api/include/antares/solver/modeler/api/mipSolution.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipSolution.h index 4a8b7237dc..e780831d03 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/mipSolution.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipSolution.h @@ -27,7 +27,7 @@ #include "mipVariable.h" -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { enum class MipStatus @@ -56,4 +56,4 @@ class IMipSolution virtual const std::map& getOptimalValues() const = 0; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/include/antares/solver/modeler/api/mipVariable.h b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipVariable.h similarity index 91% rename from src/solver/modeler/api/include/antares/solver/modeler/api/mipVariable.h rename to src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipVariable.h index c8e93acb53..456270bedd 100644 --- a/src/solver/modeler/api/include/antares/solver/modeler/api/mipVariable.h +++ b/src/optimisation/linear-problem-api/include/antares/optimisation/linear-problem-api/mipVariable.h @@ -24,7 +24,7 @@ #include "hasBounds.h" #include "hasName.h" -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { class IMipVariable: public IHasBounds, public IHasName @@ -33,4 +33,4 @@ class IMipVariable: public IHasBounds, public IHasName virtual bool isInteger() const = 0; }; -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/solver/modeler/api/linearProblemBuilder.cpp b/src/optimisation/linear-problem-api/linearProblemBuilder.cpp similarity index 89% rename from src/solver/modeler/api/linearProblemBuilder.cpp rename to src/optimisation/linear-problem-api/linearProblemBuilder.cpp index fb9eb0460f..89ab8e87dc 100644 --- a/src/solver/modeler/api/linearProblemBuilder.cpp +++ b/src/optimisation/linear-problem-api/linearProblemBuilder.cpp @@ -21,9 +21,9 @@ #include -#include +#include -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { LinearProblemBuilder::LinearProblemBuilder(const std::vector& fillers): @@ -41,4 +41,4 @@ void LinearProblemBuilder::build(ILinearProblem& pb, ILinearProblemData& data, F [&](const auto& filler) { filler->addObjective(pb, data, ctx); }); } -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/optimisation/linear-problem-data-impl/CMakeLists.txt b/src/optimisation/linear-problem-data-impl/CMakeLists.txt new file mode 100644 index 0000000000..c919dd9a38 --- /dev/null +++ b/src/optimisation/linear-problem-data-impl/CMakeLists.txt @@ -0,0 +1,32 @@ +set(SRC_DATA_SERIES + include/antares/optimisation/linear-problem-data-impl/dataSeries.h + + include/antares/optimisation/linear-problem-data-impl/timeSeriesSet.h + timeSeriesSet.cpp + timeSeriesSetExceptions.cpp + + include/antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h + dataSeriesRepo.cpp + dataSeriesRepoExceptions.cpp + + include/antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h + scenarioGroupRepo.cpp + scenarioGroupRepoExceptions.cpp + + include/antares/optimisation/linear-problem-data-impl/linearProblemData.h + linearProblemData.cpp +) + +add_library(linear-problem-data-impl ${SRC_DATA_SERIES}) +set_target_properties(linear-problem-data-impl PROPERTIES LINKER_LANGUAGE CXX) + +target_link_libraries(linear-problem-data-impl + PUBLIC + linear-problem-api +) + +target_include_directories(linear-problem-data-impl + PUBLIC + $ +) + diff --git a/src/solver/modeler/dataSeries/dataSeriesRepo.cpp b/src/optimisation/linear-problem-data-impl/dataSeriesRepo.cpp similarity index 74% rename from src/solver/modeler/dataSeries/dataSeriesRepo.cpp rename to src/optimisation/linear-problem-data-impl/dataSeriesRepo.cpp index a61948a6a0..fddc919e74 100644 --- a/src/solver/modeler/dataSeries/dataSeriesRepo.cpp +++ b/src/optimisation/linear-problem-data-impl/dataSeriesRepo.cpp @@ -1,6 +1,6 @@ -#include "antares/solver/modeler/dataSeries/dataSeriesRepo.h" +#include "antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h" -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { void DataSeriesRepository::addDataSeries(std::unique_ptr dataSeries) { @@ -24,4 +24,4 @@ IDataSeries& DataSeriesRepository::getDataSeries(const std::string& setId) } return *(dataSeries_[setId]); } -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/dataSeriesRepoExceptions.cpp b/src/optimisation/linear-problem-data-impl/dataSeriesRepoExceptions.cpp similarity index 73% rename from src/solver/modeler/dataSeries/dataSeriesRepoExceptions.cpp rename to src/optimisation/linear-problem-data-impl/dataSeriesRepoExceptions.cpp index 09a4d55278..faa5aa91f2 100644 --- a/src/solver/modeler/dataSeries/dataSeriesRepoExceptions.cpp +++ b/src/optimisation/linear-problem-data-impl/dataSeriesRepoExceptions.cpp @@ -1,8 +1,8 @@ #include -#include "antares/solver/modeler/dataSeries/dataSeriesRepo.h" +#include "antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h" -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { DataSeriesRepository::Empty::Empty(): std::invalid_argument("Data series repo is empty, and somebody requests data from it") @@ -19,4 +19,4 @@ DataSeriesRepository::DataSeriesAlreadyExists::DataSeriesAlreadyExists(const std { } -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/dataSeries.h b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/dataSeries.h similarity index 73% rename from src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/dataSeries.h rename to src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/dataSeries.h index 975f516c81..663268c8c0 100644 --- a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/dataSeries.h +++ b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/dataSeries.h @@ -3,7 +3,7 @@ #include -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { class IDataSeries @@ -25,4 +25,4 @@ class IDataSeries std::string name_; }; -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/dataSeriesRepo.h b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h similarity index 87% rename from src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/dataSeriesRepo.h rename to src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h index 4ed9e3064b..7d2df0cef4 100644 --- a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/dataSeriesRepo.h +++ b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h @@ -8,7 +8,7 @@ #include "dataSeries.h" -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { class DataSeriesRepository @@ -41,4 +41,4 @@ class DataSeriesRepository }; }; -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/linearProblemData.h b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/linearProblemData.h similarity index 72% rename from src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/linearProblemData.h rename to src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/linearProblemData.h index c8b8ea3587..4f2b201947 100644 --- a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/linearProblemData.h +++ b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/linearProblemData.h @@ -24,14 +24,14 @@ #include #include -#include "antares/solver/modeler/api/ILinearProblemData.h" -#include "antares/solver/modeler/dataSeries/dataSeriesRepo.h" -#include "antares/solver/modeler/dataSeries/scenarioGroupRepo.h" +#include "antares/optimisation/linear-problem-api/ILinearProblemData.h" +#include "antares/optimisation/linear-problem-data-impl/dataSeriesRepo.h" +#include "antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h" -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { -class LinearProblemData: public Api::ILinearProblemData +class LinearProblemData: public LinearProblemApi::ILinearProblemData { public: double getData(const std::string& dataSetId, @@ -43,8 +43,8 @@ class LinearProblemData: public Api::ILinearProblemData void addDataSeries(std::unique_ptr dataSeries); private: - DataSeries::DataSeriesRepository dataSeriesRepository_; - DataSeries::ScenarioGroupRepository groupRepository_; + DataSeriesRepository dataSeriesRepository_; + ScenarioGroupRepository groupRepository_; }; -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/scenarioGroupRepo.h b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h similarity index 88% rename from src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/scenarioGroupRepo.h rename to src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h index 904f19cffb..dd335dee24 100644 --- a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/scenarioGroupRepo.h +++ b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h @@ -4,7 +4,7 @@ #include #include -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { class ScenarioGroupRepository { @@ -36,4 +36,4 @@ class ScenarioGroupRepository explicit ScenarioNotExist(const std::string& groupId, unsigned scenario); }; }; -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/timeSeriesSet.h b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/timeSeriesSet.h similarity index 90% rename from src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/timeSeriesSet.h rename to src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/timeSeriesSet.h index f97e3dc355..4677db82ea 100644 --- a/src/solver/modeler/dataSeries/include/antares/solver/modeler/dataSeries/timeSeriesSet.h +++ b/src/optimisation/linear-problem-data-impl/include/antares/optimisation/linear-problem-data-impl/timeSeriesSet.h @@ -4,7 +4,7 @@ #include "dataSeries.h" -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { class TimeSeriesSet: public IDataSeries { @@ -45,4 +45,4 @@ class TimeSeriesSet: public IDataSeries }; }; -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/linearProblemData.cpp b/src/optimisation/linear-problem-data-impl/linearProblemData.cpp similarity index 89% rename from src/solver/modeler/dataSeries/linearProblemData.cpp rename to src/optimisation/linear-problem-data-impl/linearProblemData.cpp index 574b8cd550..7b7bb02446 100644 --- a/src/solver/modeler/dataSeries/linearProblemData.cpp +++ b/src/optimisation/linear-problem-data-impl/linearProblemData.cpp @@ -19,9 +19,9 @@ * along with Antares_Simulator. If not, see . */ -#include "antares/solver/modeler/dataSeries/linearProblemData.h" +#include "antares/optimisation/linear-problem-data-impl/linearProblemData.h" -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { void LinearProblemData::addScenarioGroup(const std::string& groupId, @@ -44,4 +44,4 @@ double LinearProblemData::getData(const std::string& dataSetId, return dataSeriesRepository_.getDataSeries(dataSetId).getData(rank, hour); } -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/scenarioGroupRepo.cpp b/src/optimisation/linear-problem-data-impl/scenarioGroupRepo.cpp similarity index 78% rename from src/solver/modeler/dataSeries/scenarioGroupRepo.cpp rename to src/optimisation/linear-problem-data-impl/scenarioGroupRepo.cpp index 615cd148bc..a96aea03bb 100644 --- a/src/solver/modeler/dataSeries/scenarioGroupRepo.cpp +++ b/src/optimisation/linear-problem-data-impl/scenarioGroupRepo.cpp @@ -1,8 +1,8 @@ -#include "antares/solver/modeler/dataSeries/scenarioGroupRepo.h" +#include "antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h" #include -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { void ScenarioGroupRepository::addPairScenarioRankToGroup( const std::string& groupId, @@ -29,4 +29,4 @@ unsigned ScenarioGroupRepository::getDataRank(const std::string& groupId, const return scenarioGroups_.at(groupId).at(scenario); } -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/scenarioGroupRepoExceptions.cpp b/src/optimisation/linear-problem-data-impl/scenarioGroupRepoExceptions.cpp similarity index 78% rename from src/solver/modeler/dataSeries/scenarioGroupRepoExceptions.cpp rename to src/optimisation/linear-problem-data-impl/scenarioGroupRepoExceptions.cpp index 2fb5125dc9..d77e68b023 100644 --- a/src/solver/modeler/dataSeries/scenarioGroupRepoExceptions.cpp +++ b/src/optimisation/linear-problem-data-impl/scenarioGroupRepoExceptions.cpp @@ -1,8 +1,8 @@ #include -#include "antares/solver/modeler/dataSeries/scenarioGroupRepo.h" +#include "antares/optimisation/linear-problem-data-impl/scenarioGroupRepo.h" -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { ScenarioGroupRepository::AlreadyExists::AlreadyExists(const std::string& groupId): @@ -22,4 +22,4 @@ ScenarioGroupRepository::ScenarioNotExist::ScenarioNotExist(const std::string& g { } -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/timeSeriesSet.cpp b/src/optimisation/linear-problem-data-impl/timeSeriesSet.cpp similarity index 78% rename from src/solver/modeler/dataSeries/timeSeriesSet.cpp rename to src/optimisation/linear-problem-data-impl/timeSeriesSet.cpp index 3c836179de..5cc62b556a 100644 --- a/src/solver/modeler/dataSeries/timeSeriesSet.cpp +++ b/src/optimisation/linear-problem-data-impl/timeSeriesSet.cpp @@ -1,9 +1,9 @@ -#include "antares/solver/modeler/dataSeries/timeSeriesSet.h" +#include "antares/optimisation/linear-problem-data-impl/timeSeriesSet.h" #include #include -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { TimeSeriesSet::TimeSeriesSet(std::string name, unsigned int height): IDataSeries::IDataSeries(name), @@ -39,4 +39,4 @@ double TimeSeriesSet::getData(unsigned rank, unsigned hour) return tsSet_[rank][hour]; } -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/dataSeries/timeSeriesSetExceptions.cpp b/src/optimisation/linear-problem-data-impl/timeSeriesSetExceptions.cpp similarity index 84% rename from src/solver/modeler/dataSeries/timeSeriesSetExceptions.cpp rename to src/optimisation/linear-problem-data-impl/timeSeriesSetExceptions.cpp index 8d724da29d..53278a13f0 100644 --- a/src/solver/modeler/dataSeries/timeSeriesSetExceptions.cpp +++ b/src/optimisation/linear-problem-data-impl/timeSeriesSetExceptions.cpp @@ -1,9 +1,9 @@ #include -#include "antares/solver/modeler/dataSeries/timeSeriesSet.h" +#include "antares/optimisation/linear-problem-data-impl/timeSeriesSet.h" -namespace Antares::Solver::Modeler::DataSeries +namespace Antares::Optimisation::LinearProblemDataImpl { TimeSeriesSet::AddTSofWrongSize::AddTSofWrongSize(const std::string& name, @@ -31,4 +31,4 @@ TimeSeriesSet::HourTooBig::HourTooBig(const std::string& name, unsigned int hour { } -} // namespace Antares::Solver::Modeler::DataSeries +} // namespace Antares::Optimisation::LinearProblemDataImpl diff --git a/src/solver/modeler/ortoolsImpl/CMakeLists.txt b/src/optimisation/linear-problem-mpsolver-impl/CMakeLists.txt similarity index 57% rename from src/solver/modeler/ortoolsImpl/CMakeLists.txt rename to src/optimisation/linear-problem-mpsolver-impl/CMakeLists.txt index 309fb67fa8..9fa2e94f37 100644 --- a/src/solver/modeler/ortoolsImpl/CMakeLists.txt +++ b/src/optimisation/linear-problem-mpsolver-impl/CMakeLists.txt @@ -1,11 +1,10 @@ -set(PROJ modeler-ortools-impl) +set(PROJ linear-problem-mpsolver-impl) set(HEADERS - include/antares/solver/modeler/ortoolsImpl/mipVariable.h - include/antares/solver/modeler/ortoolsImpl/mipSolution.h - include/antares/solver/modeler/ortoolsImpl/mipConstraint.h - - include/antares/solver/modeler/ortoolsImpl/linearProblem.h + include/antares/optimisation/linear-problem-mpsolver-impl/mipVariable.h + include/antares/optimisation/linear-problem-mpsolver-impl/mipSolution.h + include/antares/optimisation/linear-problem-mpsolver-impl/mipConstraint.h + include/antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h ) set(SRC_ORTOOLS_IMPL ${HEADERS} @@ -23,7 +22,7 @@ add_library(Antares::${PROJ} ALIAS ${PROJ}) target_link_libraries(${PROJ} PUBLIC - Antares::modeler_api + Antares::linear-problem-api Antares::logs Antares::solverUtils ortools::ortools diff --git a/src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/linearProblem.h b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h similarity index 79% rename from src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/linearProblem.h rename to src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h index c7620515a9..fb9bc74eee 100644 --- a/src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/linearProblem.h +++ b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h @@ -21,10 +21,10 @@ #pragma once -#include -#include -#include -#include +#include +#include +#include +#include namespace operations_research { @@ -33,10 +33,10 @@ class MPSolverParameters; class MPObjective; } // namespace operations_research -namespace Antares::Solver::Modeler::OrtoolsImpl +namespace Antares::Optimisation::LinearProblemMpsolverImpl { -class OrtoolsLinearProblem: public Api::ILinearProblem +class OrtoolsLinearProblem: public LinearProblemApi::ILinearProblem { public: OrtoolsLinearProblem(bool isMip, const std::string& solverName); @@ -44,14 +44,14 @@ class OrtoolsLinearProblem: public Api::ILinearProblem OrtoolsMipVariable* addNumVariable(double lb, double ub, const std::string& name) override; - std::vector addNumVariable(double lb, + std::vector addNumVariable(double lb, double ub, const std::string& name, unsigned int number_new_variables) override; OrtoolsMipVariable* addIntVariable(double lb, double ub, const std::string& name) override; - std::vector addIntVariable(double lb, + std::vector addIntVariable(double lb, double ub, const std::string& name, unsigned int number_new_variables) override; @@ -61,7 +61,7 @@ class OrtoolsLinearProblem: public Api::ILinearProblem bool integer, const std::string& name) override; - std::vector addVariable(double lb, + std::vector addVariable(double lb, double ub, bool integer, const std::string& name, @@ -72,7 +72,7 @@ class OrtoolsLinearProblem: public Api::ILinearProblem OrtoolsMipConstraint* addConstraint(double lb, double ub, const std::string& name) override; - std::vector addConstraint(double lb, + std::vector addConstraint(double lb, double ub, const std::string& name, unsigned int number_new_constraints) override; @@ -80,8 +80,8 @@ class OrtoolsLinearProblem: public Api::ILinearProblem OrtoolsMipConstraint* getConstraint(const std::string& name) const override; int constraintCount() const override; - void setObjectiveCoefficient(Api::IMipVariable* var, double coefficient) override; - double getObjectiveCoefficient(const Api::IMipVariable* var) const override; + void setObjectiveCoefficient(LinearProblemApi::IMipVariable* var, double coefficient) override; + double getObjectiveCoefficient(const LinearProblemApi::IMipVariable* var) const override; void setMinimization() override; void setMaximization() override; @@ -108,4 +108,4 @@ class OrtoolsLinearProblem: public Api::ILinearProblem std::unique_ptr solution_; }; -} // namespace Antares::Solver::Modeler::OrtoolsImpl +} // namespace Antares::Optimisation::LinearProblemMpsolverImpl diff --git a/src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipConstraint.h b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipConstraint.h similarity index 77% rename from src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipConstraint.h rename to src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipConstraint.h index cf5b501f60..a18835dfbd 100644 --- a/src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipConstraint.h +++ b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipConstraint.h @@ -21,29 +21,29 @@ #pragma once -#include +#include namespace operations_research { class MPConstraint; // forward declaration } -namespace Antares::Solver::Modeler::OrtoolsImpl +namespace Antares::Optimisation::LinearProblemMpsolverImpl { -class OrtoolsMipConstraint final: public Api::IMipConstraint +class OrtoolsMipConstraint final: public LinearProblemApi::IMipConstraint { public: void setLb(double lb) override; void setUb(double ub) override; void setBounds(double lb, double ub) override; - void setCoefficient(Api::IMipVariable* var, double coefficient) override; + void setCoefficient(LinearProblemApi::IMipVariable* var, double coefficient) override; double getLb() const override; double getUb() const override; - double getCoefficient(Api::IMipVariable* var) override; + double getCoefficient(LinearProblemApi::IMipVariable* var) override; const std::string& getName() const override; @@ -55,4 +55,4 @@ class OrtoolsMipConstraint final: public Api::IMipConstraint operations_research::MPConstraint* mpConstraint_; }; -} // namespace Antares::Solver::Modeler::OrtoolsImpl +} // namespace Antares::Optimisation::LinearProblemMpsolverImpl diff --git a/src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipSolution.h b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipSolution.h similarity index 76% rename from src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipSolution.h rename to src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipSolution.h index f536329e36..aadf6eed8e 100644 --- a/src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipSolution.h +++ b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipSolution.h @@ -26,12 +26,12 @@ #include #include -#include +#include -namespace Antares::Solver::Modeler::OrtoolsImpl +namespace Antares::Optimisation::LinearProblemMpsolverImpl { -class OrtoolsMipSolution final: public Api::IMipSolution +class OrtoolsMipSolution final: public LinearProblemApi::IMipSolution { public: OrtoolsMipSolution(operations_research::MPSolver::ResultStatus& responseStatus, @@ -39,11 +39,11 @@ class OrtoolsMipSolution final: public Api::IMipSolution ~OrtoolsMipSolution() override = default; - Api::MipStatus getStatus() const override; + LinearProblemApi::MipStatus getStatus() const override; double getObjectiveValue() const override; - double getOptimalValue(const Api::IMipVariable* var) const override; + double getOptimalValue(const LinearProblemApi::IMipVariable* var) const override; std::vector getOptimalValues( - const std::vector& vars) const override; + const std::vector& vars) const override; const std::map& getOptimalValues() const override; private: @@ -52,4 +52,4 @@ class OrtoolsMipSolution final: public Api::IMipSolution std::map solution_; }; -} // namespace Antares::Solver::Modeler::OrtoolsImpl +} // namespace Antares::Optimisation::LinearProblemMpsolverImpl diff --git a/src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipVariable.h b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipVariable.h similarity index 85% rename from src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipVariable.h rename to src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipVariable.h index a1c0a3fa91..115c984b8a 100644 --- a/src/solver/modeler/ortoolsImpl/include/antares/solver/modeler/ortoolsImpl/mipVariable.h +++ b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/mipVariable.h @@ -21,17 +21,17 @@ #pragma once -#include +#include namespace operations_research { class MPVariable; // forward declaration } -namespace Antares::Solver::Modeler::OrtoolsImpl +namespace Antares::Optimisation::LinearProblemMpsolverImpl { -class OrtoolsMipVariable final: public Api::IMipVariable +class OrtoolsMipVariable final: public LinearProblemApi::IMipVariable { public: void setLb(double lb) override; @@ -56,4 +56,4 @@ class OrtoolsMipVariable final: public Api::IMipVariable operations_research::MPVariable* mpVar_; }; -} // namespace Antares::Solver::Modeler::OrtoolsImpl +} // namespace Antares::Optimisation::LinearProblemMpsolverImpl diff --git a/src/solver/modeler/ortoolsImpl/linearProblem.cpp b/src/optimisation/linear-problem-mpsolver-impl/linearProblem.cpp similarity index 84% rename from src/solver/modeler/ortoolsImpl/linearProblem.cpp rename to src/optimisation/linear-problem-mpsolver-impl/linearProblem.cpp index cd3b8dd510..25aee4ba38 100644 --- a/src/solver/modeler/ortoolsImpl/linearProblem.cpp +++ b/src/optimisation/linear-problem-mpsolver-impl/linearProblem.cpp @@ -25,10 +25,10 @@ #include #include -#include +#include #include -namespace Antares::Solver::Modeler::OrtoolsImpl +namespace Antares::Optimisation::LinearProblemMpsolverImpl { OrtoolsLinearProblem::OrtoolsLinearProblem(bool isMip, const std::string& solverName) @@ -68,13 +68,13 @@ OrtoolsMipVariable* OrtoolsLinearProblem::addVariable(double lb, return pair.first->second.get(); // <, bool> } -std::vector OrtoolsLinearProblem::addVariable(double lb, +std::vector OrtoolsLinearProblem::addVariable(double lb, double ub, bool integer, const std::string& name, unsigned int number_new_variables) { - std::vector new_variables; + std::vector new_variables; for (unsigned int i = 0; i < number_new_variables; i++) { new_variables.push_back(addVariable(lb, ub, integer, name + '_' + std::to_string(i))); @@ -89,13 +89,13 @@ OrtoolsMipVariable* OrtoolsLinearProblem::addNumVariable(double lb, return addVariable(lb, ub, false, name); } -std::vector OrtoolsLinearProblem::addNumVariable( +std::vector OrtoolsLinearProblem::addNumVariable( double lb, double ub, const std::string& name, unsigned int number_new_variables) { - std::vector new_variables; + std::vector new_variables; for (unsigned int i = 0; i < number_new_variables; i++) { new_variables.push_back(addNumVariable(lb, ub, name + '_' + std::to_string(i))); @@ -110,13 +110,13 @@ OrtoolsMipVariable* OrtoolsLinearProblem::addIntVariable(double lb, return addVariable(lb, ub, true, name); } -std::vector OrtoolsLinearProblem::addIntVariable( +std::vector OrtoolsLinearProblem::addIntVariable( double lb, double ub, const std::string& name, unsigned int number_new_variables) { - std::vector new_variables; + std::vector new_variables; for (unsigned int i = 0; i < number_new_variables; i++) { new_variables.push_back(addIntVariable(lb, ub, name + '_' + std::to_string(i))); @@ -156,13 +156,13 @@ OrtoolsMipConstraint* OrtoolsLinearProblem::addConstraint(double lb, return pair.first->second.get(); // <, bool> } -std::vector OrtoolsLinearProblem::addConstraint( +std::vector OrtoolsLinearProblem::addConstraint( double lb, double ub, const std::string& name, unsigned int number_new_constraints) { - std::vector new_constraints; + std::vector new_constraints; for (unsigned int i = 0; i < number_new_constraints; i++) { new_constraints.push_back(addConstraint(lb, ub, name + '_' + std::to_string(i))); @@ -180,24 +180,24 @@ int OrtoolsLinearProblem::constraintCount() const return mpSolver_->NumConstraints(); } -static const operations_research::MPVariable* getMpVar(const Api::IMipVariable* var) +static const operations_research::MPVariable* getMpVar(const LinearProblemApi::IMipVariable* var) { const auto* OrtoolsMipVar = dynamic_cast(var); if (!OrtoolsMipVar) { - logs.error() << "Invalid cast, tried from Api::IMipVariable to OrtoolsMipVariable"; + logs.error() << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; throw std::bad_cast(); } return OrtoolsMipVar->getMpVar(); } -void OrtoolsLinearProblem::setObjectiveCoefficient(Api::IMipVariable* var, double coefficient) +void OrtoolsLinearProblem::setObjectiveCoefficient(LinearProblemApi::IMipVariable* var, double coefficient) { objective_->SetCoefficient(getMpVar(var), coefficient); } -double OrtoolsLinearProblem::getObjectiveCoefficient(const Api::IMipVariable* var) const +double OrtoolsLinearProblem::getObjectiveCoefficient(const LinearProblemApi::IMipVariable* var) const { return objective_->GetCoefficient(getMpVar(var)); } @@ -253,4 +253,4 @@ double OrtoolsLinearProblem::infinity() const return MPSolver::infinity(); } -} // namespace Antares::Solver::Modeler::OrtoolsImpl +} // namespace Antares::Optimisation::LinearProblemMpsolverImpl diff --git a/src/solver/modeler/ortoolsImpl/mipConstraint.cpp b/src/optimisation/linear-problem-mpsolver-impl/mipConstraint.cpp similarity index 75% rename from src/solver/modeler/ortoolsImpl/mipConstraint.cpp rename to src/optimisation/linear-problem-mpsolver-impl/mipConstraint.cpp index 00a24069a4..92d4f7c90c 100644 --- a/src/solver/modeler/ortoolsImpl/mipConstraint.cpp +++ b/src/optimisation/linear-problem-mpsolver-impl/mipConstraint.cpp @@ -22,10 +22,10 @@ #include #include -#include -#include +#include +#include -namespace Antares::Solver::Modeler::OrtoolsImpl +namespace Antares::Optimisation::LinearProblemMpsolverImpl { OrtoolsMipConstraint::OrtoolsMipConstraint(operations_research::MPConstraint* mpConstraint): @@ -58,24 +58,24 @@ double OrtoolsMipConstraint::getUb() const return mpConstraint_->ub(); } -void OrtoolsMipConstraint::setCoefficient(Api::IMipVariable* var, double coefficient) +void OrtoolsMipConstraint::setCoefficient(LinearProblemApi::IMipVariable* var, double coefficient) { auto* mpvar = dynamic_cast(var); if (!mpvar) { - logs.error() << "Invalid cast, tried from Api::IMipVariable to OrtoolsMipVariable"; + logs.error() << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; throw std::bad_cast(); } mpConstraint_->SetCoefficient(mpvar->getMpVar(), coefficient); } -double OrtoolsMipConstraint::getCoefficient(Api::IMipVariable* var) +double OrtoolsMipConstraint::getCoefficient(LinearProblemApi::IMipVariable* var) { auto* mpvar = dynamic_cast(var); if (!mpvar) { - logs.error() << "Invalid cast, tried from Api::IMipVariable to OrtoolsMipVariable"; + logs.error() << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; throw std::bad_cast(); } @@ -87,4 +87,4 @@ const std::string& OrtoolsMipConstraint::getName() const return mpConstraint_->name(); } -} // namespace Antares::Solver::Modeler::OrtoolsImpl +} // namespace Antares::Optimisation::LinearProblemMpsolverImpl diff --git a/src/solver/modeler/ortoolsImpl/mipSolution.cpp b/src/optimisation/linear-problem-mpsolver-impl/mipSolution.cpp similarity index 77% rename from src/solver/modeler/ortoolsImpl/mipSolution.cpp rename to src/optimisation/linear-problem-mpsolver-impl/mipSolution.cpp index b10386a1a4..0ba25a4cac 100644 --- a/src/solver/modeler/ortoolsImpl/mipSolution.cpp +++ b/src/optimisation/linear-problem-mpsolver-impl/mipSolution.cpp @@ -20,9 +20,9 @@ */ #include -#include +#include -namespace Antares::Solver::Modeler::OrtoolsImpl +namespace Antares::Optimisation::LinearProblemMpsolverImpl { OrtoolsMipSolution::OrtoolsMipSolution(operations_research::MPSolver::ResultStatus& status, @@ -36,23 +36,23 @@ OrtoolsMipSolution::OrtoolsMipSolution(operations_research::MPSolver::ResultStat } } -Api::MipStatus OrtoolsMipSolution::getStatus() const +LinearProblemApi::MipStatus OrtoolsMipSolution::getStatus() const { switch (status_) { case operations_research::MPSolver::ResultStatus::OPTIMAL: - return Api::MipStatus::OPTIMAL; + return LinearProblemApi::MipStatus::OPTIMAL; case operations_research::MPSolver::ResultStatus::FEASIBLE: - return Api::MipStatus::FEASIBLE; + return LinearProblemApi::MipStatus::FEASIBLE; case operations_research::MPSolver::ResultStatus::UNBOUNDED: - return Api::MipStatus::UNBOUNDED; + return LinearProblemApi::MipStatus::UNBOUNDED; case operations_research::MPSolver::ResultStatus::INFEASIBLE: - return Api::MipStatus::INFEASIBLE; + return LinearProblemApi::MipStatus::INFEASIBLE; default: logs.warning() << "Solve returned an error status"; break; } - return Api::MipStatus::MIP_ERROR; + return LinearProblemApi::MipStatus::MIP_ERROR; } double OrtoolsMipSolution::getObjectiveValue() const @@ -60,7 +60,7 @@ double OrtoolsMipSolution::getObjectiveValue() const return mpSolver_->Objective().Value(); } -double OrtoolsMipSolution::getOptimalValue(const Api::IMipVariable* var) const +double OrtoolsMipSolution::getOptimalValue(const LinearProblemApi::IMipVariable* var) const { if (!var) { @@ -80,7 +80,7 @@ double OrtoolsMipSolution::getOptimalValue(const Api::IMipVariable* var) const } std::vector OrtoolsMipSolution::getOptimalValues( - const std::vector& vars) const + const std::vector& vars) const { std::vector solution; solution.reserve(vars.size()); @@ -98,4 +98,4 @@ const std::map& OrtoolsMipSolution::getOptimalValues() cons return solution_; } -} // namespace Antares::Solver::Modeler::OrtoolsImpl +} // namespace Antares::Optimisation::LinearProblemMpsolverImpl diff --git a/src/solver/modeler/ortoolsImpl/mipVariable.cpp b/src/optimisation/linear-problem-mpsolver-impl/mipVariable.cpp similarity index 89% rename from src/solver/modeler/ortoolsImpl/mipVariable.cpp rename to src/optimisation/linear-problem-mpsolver-impl/mipVariable.cpp index b29d0000a3..2e938a885e 100644 --- a/src/solver/modeler/ortoolsImpl/mipVariable.cpp +++ b/src/optimisation/linear-problem-mpsolver-impl/mipVariable.cpp @@ -21,9 +21,9 @@ #include -#include +#include -namespace Antares::Solver::Modeler::OrtoolsImpl +namespace Antares::Optimisation::LinearProblemMpsolverImpl { OrtoolsMipVariable::OrtoolsMipVariable(operations_research::MPVariable* mpVar): @@ -71,4 +71,4 @@ bool OrtoolsMipVariable::isInteger() const return mpVar_->integer(); } -} // namespace Antares::Solver::Modeler::OrtoolsImpl +} // namespace Antares::Optimisation::LinearProblemMpsolverImpl diff --git a/src/packaging/CMakeLists.txt b/src/packaging/CMakeLists.txt index 5ac374921f..18e3e21427 100644 --- a/src/packaging/CMakeLists.txt +++ b/src/packaging/CMakeLists.txt @@ -78,9 +78,9 @@ set(TARGET_LIBS #No alias # model_antares infeasible_problem_analysis - modeler_api - data-series-lib - modeler-ortools-impl + linear-problem-api + linear-problem-data-impl + linear-problem-mpsolver-impl # solver-lib args_helper diff --git a/src/solver/modeler/CMakeLists.txt b/src/solver/modeler/CMakeLists.txt index 5adab4c131..dcd1eb937a 100644 --- a/src/solver/modeler/CMakeLists.txt +++ b/src/solver/modeler/CMakeLists.txt @@ -1,6 +1,3 @@ -add_subdirectory(api) -add_subdirectory(dataSeries) -add_subdirectory(ortoolsImpl) add_subdirectory(loadFiles) add_subdirectory(parameters) @@ -24,16 +21,16 @@ target_link_libraries(modeler-lib Antares::loadModelerFiles Antares::modelerParameters Antares::optim-model-filler - Antares::modeler_api + Antares::linear-problem-api # TODO FIXME don't depend on implementations - Antares::modeler-ortools-impl + Antares::linear-problem-mpsolver-impl ) target_link_libraries(antares-modeler PRIVATE modeler-lib - data-series-lib - modeler-ortools-impl + linear-problem-data-impl + linear-problem-mpsolver-impl optim-model-filler ) diff --git a/src/solver/modeler/api/CMakeLists.txt b/src/solver/modeler/api/CMakeLists.txt deleted file mode 100644 index b2084b3c95..0000000000 --- a/src/solver/modeler/api/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ -set(PROJ modeler_api) - -set(SRC_API - include/antares/solver/modeler/api/mipVariable.h - include/antares/solver/modeler/api/mipSolution.h - include/antares/solver/modeler/api/mipConstraint.h - - include/antares/solver/modeler/api/hasBounds.h - include/antares/solver/modeler/api/hasName.h - - include/antares/solver/modeler/api/ILinearProblemData.h - include/antares/solver/modeler/api/linearProblem.h - include/antares/solver/modeler/api/linearProblemFiller.h - include/antares/solver/modeler/api/linearProblemBuilder.h - - linearProblemBuilder.cpp -) - -add_library(${PROJ} ${SRC_API}) -add_library(Antares::${PROJ} ALIAS ${PROJ}) - -set_target_properties(${PROJ} PROPERTIES LINKER_LANGUAGE CXX) - - -target_include_directories(${PROJ} - PUBLIC - $ -) diff --git a/src/solver/modeler/dataSeries/CMakeLists.txt b/src/solver/modeler/dataSeries/CMakeLists.txt deleted file mode 100644 index bb0c961f57..0000000000 --- a/src/solver/modeler/dataSeries/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ - -set(SRC_DATA_SERIES - include/antares/solver/modeler/dataSeries/dataSeries.h - - include/antares/solver/modeler/dataSeries/timeSeriesSet.h - timeSeriesSet.cpp - timeSeriesSetExceptions.cpp - - include/antares/solver/modeler/dataSeries/dataSeriesRepo.h - dataSeriesRepo.cpp - dataSeriesRepoExceptions.cpp - - include/antares/solver/modeler/dataSeries/scenarioGroupRepo.h - scenarioGroupRepo.cpp - scenarioGroupRepoExceptions.cpp - - include/antares/solver/modeler/dataSeries/linearProblemData.h - linearProblemData.cpp -) - -add_library(data-series-lib ${SRC_DATA_SERIES}) -set_target_properties(data-series-lib PROPERTIES LINKER_LANGUAGE CXX) - -target_link_libraries(data-series-lib - PUBLIC - modeler_api -) - -target_include_directories(data-series-lib - PUBLIC - $ -) - diff --git a/src/solver/modeler/main.cpp b/src/solver/modeler/main.cpp index bf002aa610..cfd8a645a0 100644 --- a/src/solver/modeler/main.cpp +++ b/src/solver/modeler/main.cpp @@ -22,66 +22,56 @@ #include #include -#include -#include +#include +#include #include -#include +#include #include #include -#include "api/include/antares/solver/modeler/api/linearProblem.h" +#include "antares/optimisation/linear-problem-api/linearProblem.h" -using namespace Antares::Solver::Modeler::OrtoolsImpl; +using namespace Antares::Optimisation::LinearProblemMpsolverImpl; using namespace Antares; using namespace Antares::Solver; -using namespace Antares::Solver::Modeler::Api; +using namespace Antares::Optimisation::LinearProblemApi; -class SystemLinearProblem -{ +class SystemLinearProblem { public: - explicit SystemLinearProblem(const Antares::Study::SystemModel::System& system): - system_(system) - { + explicit SystemLinearProblem(const Study::SystemModel::System &system): system_(system) { } ~SystemLinearProblem() = default; - void Provide(ILinearProblem& pb, const ModelerParameters& parameters) - { - std::vector> fillers; - std::vector fillers_ptr; - for (const auto& [_, component]: system_.Components()) - { + void Provide(ILinearProblem &pb, const ModelerParameters ¶meters) { + std::vector > fillers; + std::vector fillers_ptr; + for (const auto &[_, component]: system_.Components()) { auto cf = std::make_unique(component); fillers.push_back(std::move(cf)); } - for (auto& component_filler: fillers) - { + for (auto &component_filler: fillers) { fillers_ptr.push_back(component_filler.get()); } LinearProblemBuilder linear_problem_builder(fillers_ptr); - Modeler::DataSeries::LinearProblemData dummy_data; + Optimisation::LinearProblemDataImpl::LinearProblemData dummy_data; FillContext dummy_time_scenario_ctx = {parameters.firstTimeStep, parameters.lastTimeStep}; linear_problem_builder.build(pb, dummy_data, dummy_time_scenario_ctx); } private: - const Antares::Study::SystemModel::System& system_; + const Antares::Study::SystemModel::System &system_; }; -static void usage() -{ +static void usage() { std::cout << "Usage:\n" - << "antares-modeler \n"; + << "antares-modeler \n"; } -int main(int argc, const char** argv) -{ +int main(int argc, const char **argv) { logs.applicationName("modeler"); - if (argc <= 1) - - { + if (argc <= 1) { logs.error() << "No study path provided, exiting."; usage(); return EXIT_FAILURE; @@ -90,14 +80,12 @@ int main(int argc, const char** argv) std::filesystem::path studyPath(argv[1]); logs.info() << "Study path: " << studyPath; - if (!std::filesystem::is_directory(studyPath)) - { + if (!std::filesystem::is_directory(studyPath)) { logs.error() << "The path provided isn't a valid directory, exiting"; return EXIT_FAILURE; } - try - { + try { const auto parameters = LoadFiles::loadParameters(studyPath); logs.info() << "Parameters loaded"; const auto libraries = LoadFiles::loadLibraries(studyPath); @@ -115,40 +103,33 @@ int main(int argc, const char** argv) logs.info() << "Number of variables: " << ortools_linear_problem.variableCount(); logs.info() << "Number of constraints: " << ortools_linear_problem.constraintCount(); - if (!parameters.noOutput) - { + if (!parameters.noOutput) { logs.info() << "Writing problem.lp..."; auto mps_path = std::filesystem::current_path() / "problem.lp"; ortools_linear_problem.WriteLP(mps_path.string()); } logs.info() << "Launching resolution..."; - auto* solution = ortools_linear_problem.solve(parameters.solverLogs); - switch (solution->getStatus()) - { - case Antares::Solver::Modeler::Api::MipStatus::OPTIMAL: - case Antares::Solver::Modeler::Api::MipStatus::FEASIBLE: - if (!parameters.noOutput) - { - logs.info() << "Writing variables..."; - std::ofstream sol_out(std::filesystem::current_path() / "solution.csv"); - for (const auto& [name, value]: solution->getOptimalValues()) - { - sol_out << name << " " << value << std::endl; + auto *solution = ortools_linear_problem.solve(parameters.solverLogs); + switch (solution->getStatus()) { + case MipStatus::OPTIMAL: + case MipStatus::FEASIBLE: + if (!parameters.noOutput) { + logs.info() << "Writing variables..."; + std::ofstream sol_out(std::filesystem::current_path() / "solution.csv"); + for (const auto &[name, value]: solution->getOptimalValues()) { + sol_out << name << " " << value << std::endl; + } } - } - break; - default: - logs.error() << "Problem during linear optimization"; + break; + default: + logs.error() << "Problem during linear optimization"; } - } - catch (const LoadFiles::ErrorLoadingYaml&) - { + } catch (const LoadFiles::ErrorLoadingYaml &) { logs.error() << "Error while loading files, exiting"; return EXIT_FAILURE; } - catch (const std::exception& e) - { + catch (const std::exception &e) { logs.error() << e.what(); logs.error() << "Error during the execution, exiting"; return EXIT_FAILURE; diff --git a/src/solver/optim-model-filler/CMakeLists.txt b/src/solver/optim-model-filler/CMakeLists.txt index b45aee4585..cfc92d93fc 100644 --- a/src/solver/optim-model-filler/CMakeLists.txt +++ b/src/solver/optim-model-filler/CMakeLists.txt @@ -20,7 +20,7 @@ target_link_libraries(${PROJ} PRIVATE Antares::expressions Antares::antares-study-system-model - Antares::modeler_api + Antares::linear-problem-api ) target_include_directories(${PROJ} diff --git a/src/solver/optim-model-filler/ComponentFiller.cpp b/src/solver/optim-model-filler/ComponentFiller.cpp index 6983750d93..8f82320205 100644 --- a/src/solver/optim-model-filler/ComponentFiller.cpp +++ b/src/solver/optim-model-filler/ComponentFiller.cpp @@ -39,14 +39,14 @@ ComponentFiller::ComponentFiller(const Study::SystemModel::Component& component) { } -bool checkTimeSteps(Solver::Modeler::Api::FillContext& ctx) +bool checkTimeSteps(Optimisation::LinearProblemApi::FillContext& ctx) { return ctx.getFirstTimeStep() <= ctx.getLastTimeStep(); } -void ComponentFiller::addVariables(Solver::Modeler::Api::ILinearProblem& pb, - Solver::Modeler::Api::ILinearProblemData& data, - Solver::Modeler::Api::FillContext& ctx) +void ComponentFiller::addVariables(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) { if (!checkTimeSteps(ctx)) { @@ -75,7 +75,7 @@ void ComponentFiller::addVariables(Solver::Modeler::Api::ILinearProblem& pb, } } -void ComponentFiller::addStaticConstraint(Solver::Modeler::Api::ILinearProblem& pb, +void ComponentFiller::addStaticConstraint(Optimisation::LinearProblemApi::ILinearProblem& pb, const LinearConstraint& linear_constraint, const std::string& constraint_id) const { @@ -89,7 +89,7 @@ void ComponentFiller::addStaticConstraint(Solver::Modeler::Api::ILinearProblem& } } -void ComponentFiller::addTimeDependentConstraints(Solver::Modeler::Api::ILinearProblem& pb, +void ComponentFiller::addTimeDependentConstraints(Optimisation::LinearProblemApi::ILinearProblem& pb, const LinearConstraint& linear_constraint, const std::string& constraint_id, unsigned int nb_cstr) const @@ -119,9 +119,9 @@ void ComponentFiller::addTimeDependentConstraints(Solver::Modeler::Api::ILinearP } } -void ComponentFiller::addConstraints(Solver::Modeler::Api::ILinearProblem& pb, - Solver::Modeler::Api::ILinearProblemData& data, - Solver::Modeler::Api::FillContext& ctx) +void ComponentFiller::addConstraints(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) { ReadLinearConstraintVisitor visitor(evaluationContext_); for (const auto& constraint: component_.getModel()->getConstraints() | std::views::values) @@ -147,9 +147,9 @@ void ComponentFiller::addConstraints(Solver::Modeler::Api::ILinearProblem& pb, } } -void ComponentFiller::addObjective(Solver::Modeler::Api::ILinearProblem& pb, - Solver::Modeler::Api::ILinearProblemData& data, - Solver::Modeler::Api::FillContext& ctx) +void ComponentFiller::addObjective(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) { auto model = component_.getModel(); if (model->Objective().Empty()) diff --git a/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ComponentFiller.h b/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ComponentFiller.h index 14be3584a0..09ca350b51 100644 --- a/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ComponentFiller.h +++ b/src/solver/optim-model-filler/include/antares/solver/optim-model-filler/ComponentFiller.h @@ -21,7 +21,7 @@ #pragma once -#include +#include #include #include "antares/expressions/visitors/EvaluationContext.h" @@ -42,10 +42,10 @@ namespace Antares::Optimization { /** * Component filler - * Implements LinearProbleFiller interface. + * Implements LinearProblemFiller interface. * Fills a LinearProblem with variables, constraints, and objective coefficients of a Component */ -class ComponentFiller: public Solver::Modeler::Api::LinearProblemFiller +class ComponentFiller: public Optimisation::LinearProblemApi::LinearProblemFiller { public: ComponentFiller() = delete; @@ -53,25 +53,25 @@ class ComponentFiller: public Solver::Modeler::Api::LinearProblemFiller /// Create a ComponentFiller for a Component explicit ComponentFiller(const Study::SystemModel::Component& component); - void addVariables(Solver::Modeler::Api::ILinearProblem& pb, - Solver::Modeler::Api::ILinearProblemData& data, - Solver::Modeler::Api::FillContext& ctx) override; + void addVariables(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) override; - void addStaticConstraint(Solver::Modeler::Api::ILinearProblem& pb, + void addStaticConstraint(Optimisation::LinearProblemApi::ILinearProblem& pb, const LinearConstraint& linear_constraint, const std::string& constraint_id) const; - void addTimeDependentConstraints(Solver::Modeler::Api::ILinearProblem& pb, + void addTimeDependentConstraints(Optimisation::LinearProblemApi::ILinearProblem& pb, const LinearConstraint& linear_constraint, const std::string& constraint_id, unsigned int nb_cstr) const; - void addConstraints(Solver::Modeler::Api::ILinearProblem& pb, - Solver::Modeler::Api::ILinearProblemData& data, - Solver::Modeler::Api::FillContext& ctx) override; - void addObjective(Solver::Modeler::Api::ILinearProblem& pb, - Solver::Modeler::Api::ILinearProblemData& data, - Solver::Modeler::Api::FillContext& ctx) override; + void addConstraints(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) override; + void addObjective(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) override; private: static bool IsThisConstraintTimeDependent(const Expressions::Nodes::Node* node); diff --git a/src/solver/optimisation/CMakeLists.txt b/src/solver/optimisation/CMakeLists.txt index 853899e8d1..20d4af2a5b 100644 --- a/src/solver/optimisation/CMakeLists.txt +++ b/src/solver/optimisation/CMakeLists.txt @@ -206,9 +206,9 @@ target_link_libraries(model_antares Antares::lps PRIVATE infeasible_problem_analysis - Antares::modeler_api - data-series-lib - Antares::modeler-ortools-impl + Antares::linear-problem-api + linear-problem-data-impl + Antares::linear-problem-mpsolver-impl ) target_include_directories(model_antares diff --git a/src/solver/optimisation/LegacyFiller.cpp b/src/solver/optimisation/LegacyFiller.cpp index 2b14becedf..abe3c0a4d3 100644 --- a/src/solver/optimisation/LegacyFiller.cpp +++ b/src/solver/optimisation/LegacyFiller.cpp @@ -1,6 +1,6 @@ #include "antares/solver/optimisation/LegacyFiller.h" -using namespace Antares::Solver::Modeler::Api; +using namespace Antares::Optimisation::LinearProblemApi; namespace Antares::Optimization { diff --git a/src/solver/optimisation/include/antares/solver/optimisation/LegacyFiller.h b/src/solver/optimisation/include/antares/solver/optimisation/LegacyFiller.h index 08cef326c8..d6b62bd8aa 100644 --- a/src/solver/optimisation/include/antares/solver/optimisation/LegacyFiller.h +++ b/src/solver/optimisation/include/antares/solver/optimisation/LegacyFiller.h @@ -1,32 +1,32 @@ #pragma once -#include "antares/solver/modeler/api/linearProblemFiller.h" +#include "antares/optimisation/linear-problem-api/linearProblemFiller.h" #include "antares/solver/utils/named_problem.h" namespace Antares::Optimization { -class LegacyFiller: public Antares::Solver::Modeler::Api::LinearProblemFiller +class LegacyFiller: public Antares::Optimisation::LinearProblemApi::LinearProblemFiller { public: explicit LegacyFiller(const Antares::Optimization::PROBLEME_SIMPLEXE_NOMME* problemeSimplexe); - void addVariables(Antares::Solver::Modeler::Api::ILinearProblem& pb, - Antares::Solver::Modeler::Api::ILinearProblemData& data, - Antares::Solver::Modeler::Api::FillContext& ctx) override; - void addConstraints(Antares::Solver::Modeler::Api::ILinearProblem& pb, - Antares::Solver::Modeler::Api::ILinearProblemData& data, - Antares::Solver::Modeler::Api::FillContext& ctx) override; - void addObjective(Antares::Solver::Modeler::Api::ILinearProblem& pb, - Antares::Solver::Modeler::Api::ILinearProblemData& data, - Antares::Solver::Modeler::Api::FillContext& ctx) override; + void addVariables(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb, + Antares::Optimisation::LinearProblemApi::ILinearProblemData& data, + Antares::Optimisation::LinearProblemApi::FillContext& ctx) override; + void addConstraints(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb, + Antares::Optimisation::LinearProblemApi::ILinearProblemData& data, + Antares::Optimisation::LinearProblemApi::FillContext& ctx) override; + void addObjective(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb, + Antares::Optimisation::LinearProblemApi::ILinearProblemData& data, + Antares::Optimisation::LinearProblemApi::FillContext& ctx) override; private: const Antares::Optimization::PROBLEME_SIMPLEXE_NOMME* problemeSimplexe_; - void CreateVariable(unsigned idxVar, Antares::Solver::Modeler::Api::ILinearProblem& pb) const; - void CopyVariables(Antares::Solver::Modeler::Api::ILinearProblem& pb) const; - void UpdateContraints(unsigned idxRow, Antares::Solver::Modeler::Api::ILinearProblem& pb) const; - void CopyRows(Antares::Solver::Modeler::Api::ILinearProblem& pb) const; - void CopyMatrix(Antares::Solver::Modeler::Api::ILinearProblem& pb) const; + void CreateVariable(unsigned idxVar, Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void CopyVariables(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void UpdateContraints(unsigned idxRow, Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void CopyRows(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void CopyMatrix(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; std::string GetVariableName(unsigned index) const; std::string GetConstraintName(unsigned index) const; }; diff --git a/src/solver/optimisation/include/antares/solver/optimisation/LegacyOrtoolsLinearProblem.h b/src/solver/optimisation/include/antares/solver/optimisation/LegacyOrtoolsLinearProblem.h index dfeda76bd9..0c3c839c48 100644 --- a/src/solver/optimisation/include/antares/solver/optimisation/LegacyOrtoolsLinearProblem.h +++ b/src/solver/optimisation/include/antares/solver/optimisation/LegacyOrtoolsLinearProblem.h @@ -21,13 +21,13 @@ #pragma once -#include +#include namespace Antares::Optimization { class LegacyOrtoolsLinearProblem final - : public Antares::Solver::Modeler::OrtoolsImpl::OrtoolsLinearProblem + : public Antares::Optimisation::LinearProblemMpsolverImpl::OrtoolsLinearProblem { public: LegacyOrtoolsLinearProblem(bool isMip, const std::string& solverName): diff --git a/src/solver/optimisation/opt_appel_solveur_lineaire.cpp b/src/solver/optimisation/opt_appel_solveur_lineaire.cpp index 36c2a8b8ed..5e853dca04 100644 --- a/src/solver/optimisation/opt_appel_solveur_lineaire.cpp +++ b/src/solver/optimisation/opt_appel_solveur_lineaire.cpp @@ -27,8 +27,8 @@ #include #include "antares/optimization-options/options.h" #include "antares/solver/infeasible-problem-analysis/unfeasible-pb-analyzer.h" -#include "antares/solver/modeler/api/linearProblemBuilder.h" -#include "antares/solver/modeler/dataSeries/linearProblemData.h" +#include "antares/optimisation/linear-problem-api/linearProblemBuilder.h" +#include "antares/optimisation/linear-problem-data-impl/linearProblemData.h" #include "antares/solver/optimisation/LegacyFiller.h" #include "antares/solver/optimisation/LegacyOrtoolsLinearProblem.h" #include "antares/solver/optimisation/opt_structure_probleme_a_resoudre.h" @@ -37,9 +37,9 @@ #include "antares/solver/utils/mps_utils.h" using namespace operations_research; -using namespace Antares::Solver::Modeler::Api; -using namespace Antares::Solver::Modeler::DataSeries; -using namespace Antares::Solver::Modeler::OrtoolsImpl; +using namespace Antares::Optimisation::LinearProblemApi; +using namespace Antares::Optimisation::LinearProblemDataImpl; +using namespace Antares::Optimisation::LinearProblemMpsolverImpl; using Antares::Solver::IResultWriter; using Antares::Solver::Optimization::OptimizationOptions; diff --git a/src/tests/src/CMakeLists.txt b/src/tests/src/CMakeLists.txt index f4d313936d..9e85ba46af 100644 --- a/src/tests/src/CMakeLists.txt +++ b/src/tests/src/CMakeLists.txt @@ -7,4 +7,6 @@ add_subdirectory(libs) add_subdirectory(solver) add_subdirectory(expressions) +add_subdirectory(optimisation) add_subdirectory(study) +add_subdirectory(modeler) \ No newline at end of file diff --git a/src/tests/src/modeler/CMakeLists.txt b/src/tests/src/modeler/CMakeLists.txt new file mode 100644 index 0000000000..6965418d55 --- /dev/null +++ b/src/tests/src/modeler/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(loadFiles) diff --git a/src/tests/src/solver/modeler/loadFiles/CMakeLists.txt b/src/tests/src/modeler/loadFiles/CMakeLists.txt similarity index 100% rename from src/tests/src/solver/modeler/loadFiles/CMakeLists.txt rename to src/tests/src/modeler/loadFiles/CMakeLists.txt diff --git a/src/tests/src/solver/modeler/loadFiles/testLoadModelerFiles.cpp b/src/tests/src/modeler/loadFiles/testLoadModelerFiles.cpp similarity index 100% rename from src/tests/src/solver/modeler/loadFiles/testLoadModelerFiles.cpp rename to src/tests/src/modeler/loadFiles/testLoadModelerFiles.cpp diff --git a/src/tests/src/solver/modeler/loadFiles/testParameters.cpp b/src/tests/src/modeler/loadFiles/testParameters.cpp similarity index 100% rename from src/tests/src/solver/modeler/loadFiles/testParameters.cpp rename to src/tests/src/modeler/loadFiles/testParameters.cpp diff --git a/src/tests/src/optimisation/CMakeLists.txt b/src/tests/src/optimisation/CMakeLists.txt new file mode 100644 index 0000000000..4416a12d96 --- /dev/null +++ b/src/tests/src/optimisation/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory(linear-problem) +add_subdirectory(linear-problem-data) \ No newline at end of file diff --git a/src/tests/src/solver/modeler/dataSeries/CMakeLists.txt b/src/tests/src/optimisation/linear-problem-data/CMakeLists.txt similarity index 89% rename from src/tests/src/solver/modeler/dataSeries/CMakeLists.txt rename to src/tests/src/optimisation/linear-problem-data/CMakeLists.txt index d6ec627edf..016e19b342 100644 --- a/src/tests/src/solver/modeler/dataSeries/CMakeLists.txt +++ b/src/tests/src/optimisation/linear-problem-data/CMakeLists.txt @@ -8,5 +8,5 @@ add_boost_test(unit-tests-for-modeler-data-series testDataSeriesRepo.cpp testLinearProblemData.cpp LIBS - data-series-lib + linear-problem-data-impl test_utils_unit) \ No newline at end of file diff --git a/src/tests/src/solver/modeler/dataSeries/main.cpp b/src/tests/src/optimisation/linear-problem-data/main.cpp similarity index 100% rename from src/tests/src/solver/modeler/dataSeries/main.cpp rename to src/tests/src/optimisation/linear-problem-data/main.cpp diff --git a/src/tests/src/solver/modeler/dataSeries/testDataSeriesRepo.cpp b/src/tests/src/optimisation/linear-problem-data/testDataSeriesRepo.cpp similarity index 94% rename from src/tests/src/solver/modeler/dataSeries/testDataSeriesRepo.cpp rename to src/tests/src/optimisation/linear-problem-data/testDataSeriesRepo.cpp index 41ce436a5e..e20175a116 100644 --- a/src/tests/src/solver/modeler/dataSeries/testDataSeriesRepo.cpp +++ b/src/tests/src/optimisation/linear-problem-data/testDataSeriesRepo.cpp @@ -4,10 +4,10 @@ #include -#include -#include +#include +#include -using namespace Antares::Solver::Modeler::DataSeries; +using namespace Antares::Optimisation::LinearProblemDataImpl; BOOST_AUTO_TEST_CASE(repo_is_empty__asking_any_data_series_raises_exception) { diff --git a/src/tests/src/solver/modeler/dataSeries/testLinearProblemData.cpp b/src/tests/src/optimisation/linear-problem-data/testLinearProblemData.cpp similarity index 86% rename from src/tests/src/solver/modeler/dataSeries/testLinearProblemData.cpp rename to src/tests/src/optimisation/linear-problem-data/testLinearProblemData.cpp index 6fa0c385d9..a72f566bec 100644 --- a/src/tests/src/solver/modeler/dataSeries/testLinearProblemData.cpp +++ b/src/tests/src/optimisation/linear-problem-data/testLinearProblemData.cpp @@ -4,10 +4,10 @@ #include -#include -#include +#include +#include -using namespace Antares::Solver::Modeler::DataSeries; +using namespace Antares::Optimisation::LinearProblemDataImpl; BOOST_AUTO_TEST_CASE(PbData_is_empty__asking_it_a_value_leads_to_exception) { diff --git a/src/tests/src/solver/modeler/dataSeries/testScenarioGroupRepo.cpp b/src/tests/src/optimisation/linear-problem-data/testScenarioGroupRepo.cpp similarity index 93% rename from src/tests/src/solver/modeler/dataSeries/testScenarioGroupRepo.cpp rename to src/tests/src/optimisation/linear-problem-data/testScenarioGroupRepo.cpp index 52985d91a5..1c1580268d 100644 --- a/src/tests/src/solver/modeler/dataSeries/testScenarioGroupRepo.cpp +++ b/src/tests/src/optimisation/linear-problem-data/testScenarioGroupRepo.cpp @@ -4,9 +4,9 @@ #include -#include +#include -using namespace Antares::Solver::Modeler::DataSeries; +using namespace Antares::Optimisation::LinearProblemDataImpl; BOOST_AUTO_TEST_CASE(ask_repo_a_question_it_can_answer___repo_answers_correctly) { diff --git a/src/tests/src/solver/modeler/dataSeries/testTimeSeriesSet.cpp b/src/tests/src/optimisation/linear-problem-data/testTimeSeriesSet.cpp similarity index 94% rename from src/tests/src/solver/modeler/dataSeries/testTimeSeriesSet.cpp rename to src/tests/src/optimisation/linear-problem-data/testTimeSeriesSet.cpp index 98da0fd2cc..1e59eab89a 100644 --- a/src/tests/src/solver/modeler/dataSeries/testTimeSeriesSet.cpp +++ b/src/tests/src/optimisation/linear-problem-data/testTimeSeriesSet.cpp @@ -4,9 +4,9 @@ #include -#include +#include -using namespace Antares::Solver::Modeler::DataSeries; +using namespace Antares::Optimisation::LinearProblemDataImpl; BOOST_AUTO_TEST_CASE(adding_to_a_TS_set_a_TS_with_the_wrong_size___exception_raised) { diff --git a/src/tests/src/optimisation/linear-problem/CMakeLists.txt b/src/tests/src/optimisation/linear-problem/CMakeLists.txt new file mode 100644 index 0000000000..f890edaeef --- /dev/null +++ b/src/tests/src/optimisation/linear-problem/CMakeLists.txt @@ -0,0 +1,11 @@ +include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) + +add_boost_test(unit-tests-for-modeler-api + SRC + test_main.cpp + testLinearProblemBuilder.cpp + testLinearProblemMpsolverImpl.cpp + LIBS + Antares::linear-problem-mpsolver-impl + linear-problem-data-impl) + diff --git a/src/tests/src/solver/modeler/api/mock-fillers/FillerContext.h b/src/tests/src/optimisation/linear-problem/mock-fillers/FillerContext.h similarity index 90% rename from src/tests/src/solver/modeler/api/mock-fillers/FillerContext.h rename to src/tests/src/optimisation/linear-problem/mock-fillers/FillerContext.h index 800b748f2e..9676c72f74 100644 --- a/src/tests/src/solver/modeler/api/mock-fillers/FillerContext.h +++ b/src/tests/src/optimisation/linear-problem/mock-fillers/FillerContext.h @@ -1,8 +1,8 @@ #pragma once -#include "antares/solver/modeler/api/linearProblemFiller.h" +#include "antares/optimisation/linear-problem-api/linearProblemFiller.h" -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { class VarFillerContext: public LinearProblemFiller @@ -45,4 +45,4 @@ void VarFillerContext::addObjective([[maybe_unused]] ILinearProblem& pb, { } -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/tests/src/solver/modeler/api/mock-fillers/OneConstraintFiller.h b/src/tests/src/optimisation/linear-problem/mock-fillers/OneConstraintFiller.h similarity index 86% rename from src/tests/src/solver/modeler/api/mock-fillers/OneConstraintFiller.h rename to src/tests/src/optimisation/linear-problem/mock-fillers/OneConstraintFiller.h index 0523401a2a..a5a29e0b66 100644 --- a/src/tests/src/solver/modeler/api/mock-fillers/OneConstraintFiller.h +++ b/src/tests/src/optimisation/linear-problem/mock-fillers/OneConstraintFiller.h @@ -1,8 +1,8 @@ #pragma once -#include "antares/solver/modeler/api/linearProblemFiller.h" +#include "antares/optimisation/linear-problem-api/linearProblemFiller.h" -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { class OneConstraintFiller: public LinearProblemFiller @@ -33,4 +33,4 @@ void OneConstraintFiller::addObjective([[maybe_unused]] ILinearProblem& pb, { } -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/tests/src/solver/modeler/api/mock-fillers/OneVarFiller.h b/src/tests/src/optimisation/linear-problem/mock-fillers/OneVarFiller.h similarity index 87% rename from src/tests/src/solver/modeler/api/mock-fillers/OneVarFiller.h rename to src/tests/src/optimisation/linear-problem/mock-fillers/OneVarFiller.h index 9321416ac9..f1696d0be1 100644 --- a/src/tests/src/solver/modeler/api/mock-fillers/OneVarFiller.h +++ b/src/tests/src/optimisation/linear-problem/mock-fillers/OneVarFiller.h @@ -1,8 +1,8 @@ #pragma once -#include "antares/solver/modeler/api/linearProblemFiller.h" +#include "antares/optimisation/linear-problem-api/linearProblemFiller.h" -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { class OneVarFiller: public LinearProblemFiller @@ -38,4 +38,4 @@ void OneVarFiller::addObjective(ILinearProblem& pb, pb.setObjectiveCoefficient(var, 1); } -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/tests/src/solver/modeler/api/mock-fillers/TwoVarsTwoConstraintsFiller.h b/src/tests/src/optimisation/linear-problem/mock-fillers/TwoVarsTwoConstraintsFiller.h similarity index 89% rename from src/tests/src/solver/modeler/api/mock-fillers/TwoVarsTwoConstraintsFiller.h rename to src/tests/src/optimisation/linear-problem/mock-fillers/TwoVarsTwoConstraintsFiller.h index 77995b3768..2ef4ffcf43 100644 --- a/src/tests/src/solver/modeler/api/mock-fillers/TwoVarsTwoConstraintsFiller.h +++ b/src/tests/src/optimisation/linear-problem/mock-fillers/TwoVarsTwoConstraintsFiller.h @@ -1,8 +1,8 @@ #pragma once -#include "antares/solver/modeler/api/linearProblemFiller.h" +#include "antares/optimisation/linear-problem-api/linearProblemFiller.h" -namespace Antares::Solver::Modeler::Api +namespace Antares::Optimisation::LinearProblemApi { class TwoVarsTwoConstraintsFiller: public LinearProblemFiller @@ -36,4 +36,4 @@ void TwoVarsTwoConstraintsFiller::addObjective([[maybe_unused]] ILinearProblem& { } -} // namespace Antares::Solver::Modeler::Api +} // namespace Antares::Optimisation::LinearProblemApi diff --git a/src/tests/src/solver/modeler/api/testModelerLPbuilder.cpp b/src/tests/src/optimisation/linear-problem/testLinearProblemBuilder.cpp similarity index 91% rename from src/tests/src/solver/modeler/api/testModelerLPbuilder.cpp rename to src/tests/src/optimisation/linear-problem/testLinearProblemBuilder.cpp index 2e770625cf..92cebb18c6 100644 --- a/src/tests/src/solver/modeler/api/testModelerLPbuilder.cpp +++ b/src/tests/src/optimisation/linear-problem/testLinearProblemBuilder.cpp @@ -22,18 +22,18 @@ #include -#include -#include -#include +#include +#include +#include #include "mock-fillers/FillerContext.h" #include "mock-fillers/OneConstraintFiller.h" #include "mock-fillers/OneVarFiller.h" #include "mock-fillers/TwoVarsTwoConstraintsFiller.h" -using namespace Antares::Solver::Modeler::Api; -using namespace Antares::Solver::Modeler::DataSeries; -using namespace Antares::Solver::Modeler::OrtoolsImpl; +using namespace Antares::Optimisation::LinearProblemApi; +using namespace Antares::Optimisation::LinearProblemDataImpl; +using namespace Antares::Optimisation::LinearProblemMpsolverImpl; struct Fixture { diff --git a/src/tests/src/solver/modeler/api/testModelerLinearProblemWithOrtools.cpp b/src/tests/src/optimisation/linear-problem/testLinearProblemMpsolverImpl.cpp similarity index 96% rename from src/tests/src/solver/modeler/api/testModelerLinearProblemWithOrtools.cpp rename to src/tests/src/optimisation/linear-problem/testLinearProblemMpsolverImpl.cpp index 3768e58856..e6802ac413 100644 --- a/src/tests/src/solver/modeler/api/testModelerLinearProblemWithOrtools.cpp +++ b/src/tests/src/optimisation/linear-problem/testLinearProblemMpsolverImpl.cpp @@ -23,18 +23,18 @@ #include -#include +#include -using namespace Antares::Solver::Modeler; +using namespace Antares::Optimisation; struct FixtureEmptyProblem { FixtureEmptyProblem() { - pb = std::make_unique(false, "sirius"); + pb = std::make_unique(false, "sirius"); } - std::unique_ptr pb; + std::unique_ptr pb; }; struct FixtureInfeasibleProblem: public FixtureEmptyProblem @@ -313,7 +313,7 @@ BOOST_FIXTURE_TEST_CASE(give_cost_to_null_variable_leads_to_bad_cast, FixtureEmp BOOST_FIXTURE_TEST_CASE(solve_infeasible_problem_leads_to_error_status, FixtureInfeasibleProblem) { auto* solution = pb->solve(true); - BOOST_CHECK(solution->getStatus() == Api::MipStatus::INFEASIBLE); + BOOST_CHECK(solution->getStatus() == LinearProblemApi::MipStatus::INFEASIBLE); } BOOST_FIXTURE_TEST_CASE(solve_infeasible_problem_leads_to_null_objective_value, @@ -335,7 +335,7 @@ BOOST_FIXTURE_TEST_CASE(solve_infeasible_problem___check_any_var_is_zero, Fixtur BOOST_FIXTURE_TEST_CASE(solve_feasible_problem___check_status_is_optimal, FixtureFeasibleProblem) { auto* solution = pb->solve(false); - BOOST_CHECK(solution->getStatus() == Api::MipStatus::OPTIMAL); + BOOST_CHECK(solution->getStatus() == LinearProblemApi::MipStatus::OPTIMAL); } BOOST_FIXTURE_TEST_CASE(solve_feasible_problem___check_objective_has_expected_value, diff --git a/src/tests/src/solver/modeler/api/test_main.cpp b/src/tests/src/optimisation/linear-problem/test_main.cpp similarity index 100% rename from src/tests/src/solver/modeler/api/test_main.cpp rename to src/tests/src/optimisation/linear-problem/test_main.cpp diff --git a/src/tests/src/solver/CMakeLists.txt b/src/tests/src/solver/CMakeLists.txt index c65395d40c..9ac6cadcd0 100644 --- a/src/tests/src/solver/CMakeLists.txt +++ b/src/tests/src/solver/CMakeLists.txt @@ -1,6 +1,5 @@ add_subdirectory(infeasible-problem-analysis) add_subdirectory(lps) -add_subdirectory(modeler) add_subdirectory(optimisation) add_subdirectory(optim-model-filler) add_subdirectory(simulation) diff --git a/src/tests/src/solver/modeler/CMakeLists.txt b/src/tests/src/solver/modeler/CMakeLists.txt deleted file mode 100644 index 4465f0e657..0000000000 --- a/src/tests/src/solver/modeler/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -add_subdirectory(api) -add_subdirectory(dataSeries) -add_subdirectory(loadFiles) diff --git a/src/tests/src/solver/modeler/api/CMakeLists.txt b/src/tests/src/solver/modeler/api/CMakeLists.txt deleted file mode 100644 index 5592381b61..0000000000 --- a/src/tests/src/solver/modeler/api/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) - -add_boost_test(unit-tests-for-modeler-api - SRC - test_main.cpp - testModelerLinearProblemWithOrtools.cpp - testModelerLPbuilder.cpp - LIBS - Antares::modeler-ortools-impl - data-series-lib) - diff --git a/src/tests/src/solver/optim-model-filler/CMakeLists.txt b/src/tests/src/solver/optim-model-filler/CMakeLists.txt index 2c707391d4..73ca2648bc 100644 --- a/src/tests/src/solver/optim-model-filler/CMakeLists.txt +++ b/src/tests/src/solver/optim-model-filler/CMakeLists.txt @@ -8,8 +8,8 @@ add_boost_test(unit-tests-for-component-filler test_readLinearConstraintVisitor.cpp LIBS antares-study-system-model - Antares::modeler-ortools-impl + Antares::linear-problem-mpsolver-impl Antares::optim-model-filler - data-series-lib + linear-problem-data-impl test_utils_unit) diff --git a/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp b/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp index bd43e96943..d1856c178c 100644 --- a/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp +++ b/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp @@ -25,9 +25,9 @@ #include "antares/expressions/nodes/ExpressionsNodes.h" #include "antares/expressions/visitors/TimeIndex.h" -#include "antares/solver/modeler/api/linearProblemBuilder.h" -#include "antares/solver/modeler/dataSeries/linearProblemData.h" -#include "antares/solver/modeler/ortoolsImpl/linearProblem.h" +#include "antares/optimisation/linear-problem-api/linearProblemBuilder.h" +#include "antares/optimisation/linear-problem-data-impl/linearProblemData.h" +#include "antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h" #include "antares/solver/optim-model-filler/ComponentFiller.h" #include "antares/study/system-model/component.h" #include "antares/study/system-model/parameter.h" @@ -35,8 +35,8 @@ #include "unit_test_utils.h" -using namespace Antares::Solver::Modeler::Api; -using namespace Antares::Solver::Modeler::DataSeries; +using namespace Antares::Optimisation::LinearProblemApi; +using namespace Antares::Optimisation::LinearProblemDataImpl; using namespace Antares::Study::SystemModel; using namespace Antares::Optimization; using namespace Antares::Expressions; @@ -203,7 +203,7 @@ void LinearProblemBuildingFixture::buildLinearProblem(FillContext& time_scenario { fillers_ptr.push_back(component_filler.get()); } - pb = make_unique(false, "sirius"); + pb = make_unique(false, "sirius"); LinearProblemBuilder linear_problem_builder(fillers_ptr); LinearProblemData dummy_data; From cdd2d8f4f8133353d29122de2297eb44ed5f10ad Mon Sep 17 00:00:00 2001 From: Peter Mitri Date: Tue, 4 Feb 2025 11:37:33 +0100 Subject: [PATCH 5/8] clang --- src/solver/modeler/main.cpp | 81 +++++++++++-------- .../optim-model-filler/ComponentFiller.cpp | 9 ++- .../solver/optimisation/LegacyFiller.h | 35 ++++---- .../opt_appel_solveur_lineaire.cpp | 4 +- 4 files changed, 74 insertions(+), 55 deletions(-) diff --git a/src/solver/modeler/main.cpp b/src/solver/modeler/main.cpp index cfd8a645a0..1388e17e16 100644 --- a/src/solver/modeler/main.cpp +++ b/src/solver/modeler/main.cpp @@ -24,11 +24,10 @@ #include #include #include -#include #include +#include #include #include - #include "antares/optimisation/linear-problem-api/linearProblem.h" using namespace Antares::Optimisation::LinearProblemMpsolverImpl; @@ -36,21 +35,27 @@ using namespace Antares; using namespace Antares::Solver; using namespace Antares::Optimisation::LinearProblemApi; -class SystemLinearProblem { +class SystemLinearProblem +{ public: - explicit SystemLinearProblem(const Study::SystemModel::System &system): system_(system) { + explicit SystemLinearProblem(const Study::SystemModel::System& system): + system_(system) + { } ~SystemLinearProblem() = default; - void Provide(ILinearProblem &pb, const ModelerParameters ¶meters) { - std::vector > fillers; - std::vector fillers_ptr; - for (const auto &[_, component]: system_.Components()) { + void Provide(ILinearProblem& pb, const ModelerParameters& parameters) + { + std::vector> fillers; + std::vector fillers_ptr; + for (const auto& [_, component]: system_.Components()) + { auto cf = std::make_unique(component); fillers.push_back(std::move(cf)); } - for (auto &component_filler: fillers) { + for (auto& component_filler: fillers) + { fillers_ptr.push_back(component_filler.get()); } @@ -61,17 +66,20 @@ class SystemLinearProblem { } private: - const Antares::Study::SystemModel::System &system_; + const Antares::Study::SystemModel::System& system_; }; -static void usage() { +static void usage() +{ std::cout << "Usage:\n" - << "antares-modeler \n"; + << "antares-modeler \n"; } -int main(int argc, const char **argv) { +int main(int argc, const char** argv) +{ logs.applicationName("modeler"); - if (argc <= 1) { + if (argc <= 1) + { logs.error() << "No study path provided, exiting."; usage(); return EXIT_FAILURE; @@ -80,12 +88,14 @@ int main(int argc, const char **argv) { std::filesystem::path studyPath(argv[1]); logs.info() << "Study path: " << studyPath; - if (!std::filesystem::is_directory(studyPath)) { + if (!std::filesystem::is_directory(studyPath)) + { logs.error() << "The path provided isn't a valid directory, exiting"; return EXIT_FAILURE; } - try { + try + { const auto parameters = LoadFiles::loadParameters(studyPath); logs.info() << "Parameters loaded"; const auto libraries = LoadFiles::loadLibraries(studyPath); @@ -103,33 +113,40 @@ int main(int argc, const char **argv) { logs.info() << "Number of variables: " << ortools_linear_problem.variableCount(); logs.info() << "Number of constraints: " << ortools_linear_problem.constraintCount(); - if (!parameters.noOutput) { + if (!parameters.noOutput) + { logs.info() << "Writing problem.lp..."; auto mps_path = std::filesystem::current_path() / "problem.lp"; ortools_linear_problem.WriteLP(mps_path.string()); } logs.info() << "Launching resolution..."; - auto *solution = ortools_linear_problem.solve(parameters.solverLogs); - switch (solution->getStatus()) { - case MipStatus::OPTIMAL: - case MipStatus::FEASIBLE: - if (!parameters.noOutput) { - logs.info() << "Writing variables..."; - std::ofstream sol_out(std::filesystem::current_path() / "solution.csv"); - for (const auto &[name, value]: solution->getOptimalValues()) { - sol_out << name << " " << value << std::endl; - } + auto* solution = ortools_linear_problem.solve(parameters.solverLogs); + switch (solution->getStatus()) + { + case MipStatus::OPTIMAL: + case MipStatus::FEASIBLE: + if (!parameters.noOutput) + { + logs.info() << "Writing variables..."; + std::ofstream sol_out(std::filesystem::current_path() / "solution.csv"); + for (const auto& [name, value]: solution->getOptimalValues()) + { + sol_out << name << " " << value << std::endl; } - break; - default: - logs.error() << "Problem during linear optimization"; + } + break; + default: + logs.error() << "Problem during linear optimization"; } - } catch (const LoadFiles::ErrorLoadingYaml &) { + } + catch (const LoadFiles::ErrorLoadingYaml&) + { logs.error() << "Error while loading files, exiting"; return EXIT_FAILURE; } - catch (const std::exception &e) { + catch (const std::exception& e) + { logs.error() << e.what(); logs.error() << "Error during the execution, exiting"; return EXIT_FAILURE; diff --git a/src/solver/optim-model-filler/ComponentFiller.cpp b/src/solver/optim-model-filler/ComponentFiller.cpp index 8f82320205..80198c7e43 100644 --- a/src/solver/optim-model-filler/ComponentFiller.cpp +++ b/src/solver/optim-model-filler/ComponentFiller.cpp @@ -89,10 +89,11 @@ void ComponentFiller::addStaticConstraint(Optimisation::LinearProblemApi::ILinea } } -void ComponentFiller::addTimeDependentConstraints(Optimisation::LinearProblemApi::ILinearProblem& pb, - const LinearConstraint& linear_constraint, - const std::string& constraint_id, - unsigned int nb_cstr) const +void ComponentFiller::addTimeDependentConstraints( + Optimisation::LinearProblemApi::ILinearProblem& pb, + const LinearConstraint& linear_constraint, + const std::string& constraint_id, + unsigned int nb_cstr) const { auto vect_ct = pb.addConstraint(linear_constraint.lb, linear_constraint.ub, diff --git a/src/solver/optimisation/include/antares/solver/optimisation/LegacyFiller.h b/src/solver/optimisation/include/antares/solver/optimisation/LegacyFiller.h index d6b62bd8aa..f7af7f8291 100644 --- a/src/solver/optimisation/include/antares/solver/optimisation/LegacyFiller.h +++ b/src/solver/optimisation/include/antares/solver/optimisation/LegacyFiller.h @@ -5,28 +5,29 @@ namespace Antares::Optimization { -class LegacyFiller: public Antares::Optimisation::LinearProblemApi::LinearProblemFiller +class LegacyFiller: public Optimisation::LinearProblemApi::LinearProblemFiller { public: - explicit LegacyFiller(const Antares::Optimization::PROBLEME_SIMPLEXE_NOMME* problemeSimplexe); - void addVariables(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb, - Antares::Optimisation::LinearProblemApi::ILinearProblemData& data, - Antares::Optimisation::LinearProblemApi::FillContext& ctx) override; - void addConstraints(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb, - Antares::Optimisation::LinearProblemApi::ILinearProblemData& data, - Antares::Optimisation::LinearProblemApi::FillContext& ctx) override; - void addObjective(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb, - Antares::Optimisation::LinearProblemApi::ILinearProblemData& data, - Antares::Optimisation::LinearProblemApi::FillContext& ctx) override; + explicit LegacyFiller(const PROBLEME_SIMPLEXE_NOMME* problemeSimplexe); + void addVariables(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) override; + void addConstraints(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) override; + void addObjective(Optimisation::LinearProblemApi::ILinearProblem& pb, + Optimisation::LinearProblemApi::ILinearProblemData& data, + Optimisation::LinearProblemApi::FillContext& ctx) override; private: - const Antares::Optimization::PROBLEME_SIMPLEXE_NOMME* problemeSimplexe_; + const PROBLEME_SIMPLEXE_NOMME* problemeSimplexe_; - void CreateVariable(unsigned idxVar, Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; - void CopyVariables(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; - void UpdateContraints(unsigned idxRow, Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; - void CopyRows(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; - void CopyMatrix(Antares::Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void CreateVariable(unsigned idxVar, Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void CopyVariables(Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void UpdateContraints(unsigned idxRow, + Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void CopyRows(Optimisation::LinearProblemApi::ILinearProblem& pb) const; + void CopyMatrix(Optimisation::LinearProblemApi::ILinearProblem& pb) const; std::string GetVariableName(unsigned index) const; std::string GetConstraintName(unsigned index) const; }; diff --git a/src/solver/optimisation/opt_appel_solveur_lineaire.cpp b/src/solver/optimisation/opt_appel_solveur_lineaire.cpp index 5e853dca04..0e7f7720d2 100644 --- a/src/solver/optimisation/opt_appel_solveur_lineaire.cpp +++ b/src/solver/optimisation/opt_appel_solveur_lineaire.cpp @@ -25,10 +25,10 @@ #include #include -#include "antares/optimization-options/options.h" -#include "antares/solver/infeasible-problem-analysis/unfeasible-pb-analyzer.h" #include "antares/optimisation/linear-problem-api/linearProblemBuilder.h" #include "antares/optimisation/linear-problem-data-impl/linearProblemData.h" +#include "antares/optimization-options/options.h" +#include "antares/solver/infeasible-problem-analysis/unfeasible-pb-analyzer.h" #include "antares/solver/optimisation/LegacyFiller.h" #include "antares/solver/optimisation/LegacyOrtoolsLinearProblem.h" #include "antares/solver/optimisation/opt_structure_probleme_a_resoudre.h" From 53f02f195cf0c0876aced5999c48df434c005c06 Mon Sep 17 00:00:00 2001 From: Peter Mitri Date: Tue, 4 Feb 2025 11:40:57 +0100 Subject: [PATCH 6/8] clang --- .../io/yml-importers/testConvertorVisitor.cpp | 51 ++++++------ .../io/yml-importers/testModelTranslator.cpp | 77 +++++++++---------- .../io/yml-importers/testSystemConverter.cpp | 14 ++-- .../test_componentFiller.cpp | 4 +- 4 files changed, 72 insertions(+), 74 deletions(-) diff --git a/src/tests/io/yml-importers/testConvertorVisitor.cpp b/src/tests/io/yml-importers/testConvertorVisitor.cpp index 6e7b22ff75..f9115ddde2 100644 --- a/src/tests/io/yml-importers/testConvertorVisitor.cpp +++ b/src/tests/io/yml-importers/testConvertorVisitor.cpp @@ -73,15 +73,14 @@ BOOST_FIXTURE_TEST_CASE(negation, ExpressionToNodeConvertorEmptyModel) BOOST_AUTO_TEST_CASE(identifier) { - YmlModel::Model model{ - .id = "model0", - .description = "description", - .parameters = {{"param1", true, false}, {"param2", false, false}}, - .variables = {{"varP", "7", "pmin", YmlModel::ValueType::CONTINUOUS}}, - .ports = {}, - .port_field_definitions = {}, - .constraints = {}, - .objective = "objectives"}; + YmlModel::Model model{.id = "model0", + .description = "description", + .parameters = {{"param1", true, false}, {"param2", false, false}}, + .variables = {{"varP", "7", "pmin", YmlModel::ValueType::CONTINUOUS}}, + .ports = {}, + .port_field_definitions = {}, + .constraints = {}, + .objective = "objectives"}; ExpressionToNodeConvertorEmptyModel converter(std::move(model)); { @@ -106,15 +105,14 @@ bool expectedMessage(const std::runtime_error& ex) BOOST_AUTO_TEST_CASE(identifierNotFound) { - YmlModel::Model model{ - .id = "model0", - .description = "description", - .parameters = {{"param1", true, false}}, - .variables = {{"varP", "7", "pmin", YmlModel::ValueType::CONTINUOUS}}, - .ports = {}, - .port_field_definitions = {}, - .constraints = {}, - .objective = "objectives"}; + YmlModel::Model model{.id = "model0", + .description = "description", + .parameters = {{"param1", true, false}}, + .variables = {{"varP", "7", "pmin", YmlModel::ValueType::CONTINUOUS}}, + .ports = {}, + .port_field_definitions = {}, + .constraints = {}, + .objective = "objectives"}; std::string expression = "abc"; // not a param or var BOOST_CHECK_EXCEPTION(ModelConverter::convertExpressionToNode(expression, model), @@ -193,15 +191,14 @@ BOOST_FIXTURE_TEST_CASE(comparison, ExpressionToNodeConvertorEmptyModel) BOOST_AUTO_TEST_CASE(medium_expression) { - YmlModel::Model model{ - .id = "model0", - .description = "description", - .parameters = {{"param1", true, false}, {"param2", false, false}}, - .variables = {{"varP", "7", "param1", YmlModel::ValueType::CONTINUOUS}}, - .ports = {}, - .port_field_definitions = {}, - .constraints = {}, - .objective = "objectives"}; + YmlModel::Model model{.id = "model0", + .description = "description", + .parameters = {{"param1", true, false}, {"param2", false, false}}, + .variables = {{"varP", "7", "param1", YmlModel::ValueType::CONTINUOUS}}, + .ports = {}, + .port_field_definitions = {}, + .constraints = {}, + .objective = "objectives"}; ExpressionToNodeConvertorEmptyModel converter(std::move(model)); std::string expression = "(12 * (4 - 1) + param1) / -(42 + 3 + varP)"; diff --git a/src/tests/io/yml-importers/testModelTranslator.cpp b/src/tests/io/yml-importers/testModelTranslator.cpp index 5b14bff4da..b80f3b0a34 100644 --- a/src/tests/io/yml-importers/testModelTranslator.cpp +++ b/src/tests/io/yml-importers/testModelTranslator.cpp @@ -102,13 +102,13 @@ BOOST_FIXTURE_TEST_CASE(portType_with_fields_properly_translated, Fixture) BOOST_FIXTURE_TEST_CASE(empty_model_properly_translated, Fixture) { YmlModel::Model model1{.id = "model1", - .description = "description", - .parameters = {{"param1", true, false}}, - .variables = {}, - .ports = {}, - .port_field_definitions = {}, - .constraints = {}, - .objective = "param1"}; + .description = "description", + .parameters = {{"param1", true, false}}, + .variables = {}, + .ports = {}, + .port_field_definitions = {}, + .constraints = {}, + .objective = "param1"}; library.models = {model1}; SystemModel::Library lib = ModelConverter::convert(library); BOOST_REQUIRE_EQUAL(lib.Models().size(), 1); @@ -120,13 +120,13 @@ BOOST_FIXTURE_TEST_CASE(empty_model_properly_translated, Fixture) BOOST_FIXTURE_TEST_CASE(model_parameters_properly_translated, Fixture) { YmlModel::Model model1{.id = "model1", - .description = "description", - .parameters = {{"param1", true, false}, {"param2", false, false}}, - .variables = {}, - .ports = {}, - .port_field_definitions{}, - .constraints{}, - .objective = ""}; + .description = "description", + .parameters = {{"param1", true, false}, {"param2", false, false}}, + .variables = {}, + .ports = {}, + .port_field_definitions{}, + .constraints{}, + .objective = ""}; library.models = {model1}; SystemModel::Library lib = ModelConverter::convert(library); auto& model = lib.Models().at("model1"); @@ -176,13 +176,13 @@ BOOST_AUTO_TEST_CASE(model_ports_properly_translated, *boost::unit_test::disable YmlModel::Library library; Antares::Expressions::Registry registry; YmlModel::Model model1{.id = "model1", - .description = "description", - .parameters = {}, - .variables = {}, - .ports = {{"port1", "flow"}, {"port2", "impedance"}}, - .port_field_definitions = {}, - .constraints = {}, - .objective = ""}; + .description = "description", + .parameters = {}, + .variables = {}, + .ports = {{"port1", "flow"}, {"port2", "impedance"}}, + .port_field_definitions = {}, + .constraints = {}, + .objective = ""}; library.models = {model1}; SystemModel::Library lib = ModelConverter::convert(library); [[maybe_unused]] auto& model = lib.Models().at("model1"); @@ -199,15 +199,15 @@ BOOST_AUTO_TEST_CASE(model_ports_properly_translated, *boost::unit_test::disable BOOST_FIXTURE_TEST_CASE(model_constraints_properly_translated, Fixture) { YmlModel::Model model1{.id = "model1", - .description = "description", - .parameters = {{"expression1", true, false}, - {"expression2", true, false}}, - .variables = {}, - .ports = {}, - .port_field_definitions = {}, - .constraints = {{"constraint1", "expression1"}, - {"constraint2", "expression2"}}, - .objective = ""}; + .description = "description", + .parameters = {{"expression1", true, false}, + {"expression2", true, false}}, + .variables = {}, + .ports = {}, + .port_field_definitions = {}, + .constraints = {{"constraint1", "expression1"}, + {"constraint2", "expression2"}}, + .objective = ""}; library.models = {model1}; SystemModel::Library lib = ModelConverter::convert(library); auto& model = lib.Models().at("model1"); @@ -223,15 +223,14 @@ BOOST_FIXTURE_TEST_CASE(model_constraints_properly_translated, Fixture) // Test with 2 models BOOST_FIXTURE_TEST_CASE(multiple_models_properly_translated, Fixture) { - YmlModel::Model model1{ - .id = "model1", - .description = "description", - .parameters = {{"param1", true, false}, {"param2", false, false}}, - .variables = {{"varP", "7", "param2", YmlModel::ValueType::CONTINUOUS}}, - .ports = {}, - .port_field_definitions = {}, - .constraints = {}, - .objective = ""}; + YmlModel::Model model1{.id = "model1", + .description = "description", + .parameters = {{"param1", true, false}, {"param2", false, false}}, + .variables = {{"varP", "7", "param2", YmlModel::ValueType::CONTINUOUS}}, + .ports = {}, + .port_field_definitions = {}, + .constraints = {}, + .objective = ""}; YmlModel::Model model2{ .id = "model2", .description = "description", diff --git a/src/tests/io/yml-importers/testSystemConverter.cpp b/src/tests/io/yml-importers/testSystemConverter.cpp index aed5f809f4..6950d97ab3 100644 --- a/src/tests/io/yml-importers/testSystemConverter.cpp +++ b/src/tests/io/yml-importers/testSystemConverter.cpp @@ -37,13 +37,13 @@ using namespace Antares::Study; struct LibraryObjects { YmlModel::Model model1{.id = "node", - .description = "description", - .parameters = {{"cost", true, false}}, - .variables = {}, - .ports = {}, - .port_field_definitions = {}, - .constraints = {{"constraint1", "cost"}}, - .objective = ""}; + .description = "description", + .parameters = {{"cost", true, false}}, + .variables = {}, + .ports = {}, + .port_field_definitions = {}, + .constraints = {{"constraint1", "cost"}}, + .objective = ""}; YmlSystem::Parser parser; YmlModel::Library library; diff --git a/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp b/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp index d1856c178c..94d1ac9abc 100644 --- a/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp +++ b/src/tests/src/solver/optim-model-filler/test_componentFiller.cpp @@ -203,7 +203,9 @@ void LinearProblemBuildingFixture::buildLinearProblem(FillContext& time_scenario { fillers_ptr.push_back(component_filler.get()); } - pb = make_unique(false, "sirius"); + pb = make_unique( + false, + "sirius"); LinearProblemBuilder linear_problem_builder(fillers_ptr); LinearProblemData dummy_data; From f05d7368cf7f9d89866e6d7c0852831957a825b9 Mon Sep 17 00:00:00 2001 From: Peter Mitri Date: Wed, 5 Feb 2025 16:26:52 +0100 Subject: [PATCH 7/8] review Signed-off-by: Peter Mitri --- sonar-project.properties | 2 +- .../include/antares/expressions/visitors/InvalidNode.h | 2 +- .../include/antares/expressions/visitors/NodeVisitor.h | 5 +++-- src/expressions/visitors/InvalidNode.cpp | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index d4ba8cce37..83d79d83e1 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -34,7 +34,7 @@ sonar.sourceEncoding=UTF-8 sonar.exclusions=src/ext/**,\ src/tests/**,\ src/ui/**,\ - src/libs/antares/antlr-interface/** + src/expressions/antlr-interface/** sonar.coverage.exclusions=src/ext/**,\ src/tests/**,\ diff --git a/src/expressions/include/antares/expressions/visitors/InvalidNode.h b/src/expressions/include/antares/expressions/visitors/InvalidNode.h index 7aa171dc81..a23f53edf8 100644 --- a/src/expressions/include/antares/expressions/visitors/InvalidNode.h +++ b/src/expressions/include/antares/expressions/visitors/InvalidNode.h @@ -27,6 +27,6 @@ namespace Antares::Expressions::Visitors class InvalidNode: public std::invalid_argument { public: - explicit InvalidNode(const std::string& node_name = ""); + explicit InvalidNode(const std::string& node_name); }; } // namespace Antares::Expressions::Visitors diff --git a/src/expressions/include/antares/expressions/visitors/NodeVisitor.h b/src/expressions/include/antares/expressions/visitors/NodeVisitor.h index 6a9c7516b8..a5fd1c3fc2 100644 --- a/src/expressions/include/antares/expressions/visitors/NodeVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/NodeVisitor.h @@ -72,7 +72,8 @@ struct NodeVisitsProvider { std::unordered_map nodeDispatchFunctions; ( - [&nodeDispatchFunctions] { + [&nodeDispatchFunctions] + { nodeDispatchFunctions[typeid(NodeTypes)] = &tryVisit, NodeTypes>; @@ -106,7 +107,7 @@ class NodeVisitor: public IName { if (!node) { - throw InvalidNode(); + throw InvalidNode("null"); } const static auto nodeVisitList = NodeVisitsProvider::template NodesVisitList< diff --git a/src/expressions/visitors/InvalidNode.cpp b/src/expressions/visitors/InvalidNode.cpp index 2944c59aec..3f1a3a435e 100644 --- a/src/expressions/visitors/InvalidNode.cpp +++ b/src/expressions/visitors/InvalidNode.cpp @@ -4,7 +4,7 @@ namespace Antares::Expressions::Visitors { InvalidNode::InvalidNode(const std::string& node_name): - std::invalid_argument("Antares::Expressions::Nodes Visitor: invalid node type " + node_name) + std::invalid_argument("Node visitor encountered an invalid node type: " + node_name) { } } // namespace Antares::Expressions::Visitors From 2b7091d4816fef819cb89686d13b596394fd6050 Mon Sep 17 00:00:00 2001 From: Peter Mitri Date: Thu, 6 Feb 2025 11:32:21 +0100 Subject: [PATCH 8/8] format new directories --- src/expressions/NodeRegistry.cpp | 5 ++- .../expressions/visitors/NodeVisitor.h | 3 +- src/expressions/visitors/CompareVisitor.cpp | 4 +- src/expressions/visitors/NodeVisitor.cpp | 2 +- src/format-code.sh | 2 +- src/io/inputs/yml-system/decoders.hxx | 8 ++-- .../linearProblem.h | 38 ++++++++++--------- .../linearProblem.cpp | 20 ++++++---- .../mipConstraint.cpp | 6 ++- src/study/system-model/component.cpp | 3 +- .../antares/study/system-model/parameter.h | 4 +- 11 files changed, 53 insertions(+), 42 deletions(-) diff --git a/src/expressions/NodeRegistry.cpp b/src/expressions/NodeRegistry.cpp index 68ce7e5f0f..223ad54f0d 100644 --- a/src/expressions/NodeRegistry.cpp +++ b/src/expressions/NodeRegistry.cpp @@ -4,8 +4,9 @@ namespace Antares::Expressions { -NodeRegistry::NodeRegistry(Antares::Expressions::Nodes::Node* node, - Antares::Expressions::Registry registry): +NodeRegistry::NodeRegistry( + Antares::Expressions::Nodes::Node* node, + Antares::Expressions::Registry registry): node(node), registry(std::move(registry)) { diff --git a/src/expressions/include/antares/expressions/visitors/NodeVisitor.h b/src/expressions/include/antares/expressions/visitors/NodeVisitor.h index a5fd1c3fc2..41c484db2b 100644 --- a/src/expressions/include/antares/expressions/visitors/NodeVisitor.h +++ b/src/expressions/include/antares/expressions/visitors/NodeVisitor.h @@ -72,8 +72,7 @@ struct NodeVisitsProvider { std::unordered_map nodeDispatchFunctions; ( - [&nodeDispatchFunctions] - { + [&nodeDispatchFunctions] { nodeDispatchFunctions[typeid(NodeTypes)] = &tryVisit, NodeTypes>; diff --git a/src/expressions/visitors/CompareVisitor.cpp b/src/expressions/visitors/CompareVisitor.cpp index 05bf36c29a..3e4067a73f 100644 --- a/src/expressions/visitors/CompareVisitor.cpp +++ b/src/expressions/visitors/CompareVisitor.cpp @@ -22,7 +22,9 @@ #include template -static bool compareBinaryNode(V& visitor, const T* node, const Antares::Expressions::Nodes::Node* other) +static bool compareBinaryNode(V& visitor, + const T* node, + const Antares::Expressions::Nodes::Node* other) { if (const T* other_node = dynamic_cast(other)) { diff --git a/src/expressions/visitors/NodeVisitor.cpp b/src/expressions/visitors/NodeVisitor.cpp index b9281e6640..78bdcc5c03 100644 --- a/src/expressions/visitors/NodeVisitor.cpp +++ b/src/expressions/visitors/NodeVisitor.cpp @@ -19,8 +19,8 @@ ** along with Antares_Simulator. If not, see . */ -#include #include +#include namespace Antares::Expressions::Visitors { diff --git a/src/format-code.sh b/src/format-code.sh index aaededa940..068cc64918 100755 --- a/src/format-code.sh +++ b/src/format-code.sh @@ -3,7 +3,7 @@ if [ $# -eq 0 ] then # No arguments: format all - SOURCE_DIRS="analyzer/ libs/ solver/ tools/ config/ tests/ packaging/ api/" + SOURCE_DIRS="analyzer/ libs/ solver/ tools/ config/ tests/ packaging/ api/ io/ optimisation/ expressions/ study/" SOURCE_FILES=$(find $SOURCE_DIRS -regextype egrep -regex ".*/*\.(c|cxx|cpp|cc|h|hxx|hpp)$" ! -path '*/antlr-interface/*') else # Format files provided as arguments diff --git a/src/io/inputs/yml-system/decoders.hxx b/src/io/inputs/yml-system/decoders.hxx index 426862a881..40226d3342 100644 --- a/src/io/inputs/yml-system/decoders.hxx +++ b/src/io/inputs/yml-system/decoders.hxx @@ -73,8 +73,8 @@ struct convert rhs.id = node["id"].as(); rhs.model = node["model"].as(); rhs.scenarioGroup = node["scenario-group"].as(); - rhs.parameters = as_fallback_default>( - node["parameters"]); + rhs.parameters = as_fallback_default< + std::vector>(node["parameters"]); return true; } }; @@ -86,8 +86,8 @@ struct convert { rhs.id = node["id"].as(); rhs.libraries = as_fallback_default>(node["model-libraries"]); - rhs.components = as_fallback_default>( - node["components"]); + rhs.components = as_fallback_default< + std::vector>(node["components"]); return true; } }; diff --git a/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h index fb9bc74eee..433b3d2dfc 100644 --- a/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h +++ b/src/optimisation/linear-problem-mpsolver-impl/include/antares/optimisation/linear-problem-mpsolver-impl/linearProblem.h @@ -44,38 +44,42 @@ class OrtoolsLinearProblem: public LinearProblemApi::ILinearProblem OrtoolsMipVariable* addNumVariable(double lb, double ub, const std::string& name) override; - std::vector addNumVariable(double lb, - double ub, - const std::string& name, - unsigned int number_new_variables) override; + std::vector addNumVariable( + double lb, + double ub, + const std::string& name, + unsigned int number_new_variables) override; OrtoolsMipVariable* addIntVariable(double lb, double ub, const std::string& name) override; - std::vector addIntVariable(double lb, - double ub, - const std::string& name, - unsigned int number_new_variables) override; + std::vector addIntVariable( + double lb, + double ub, + const std::string& name, + unsigned int number_new_variables) override; OrtoolsMipVariable* addVariable(double lb, double ub, bool integer, const std::string& name) override; - std::vector addVariable(double lb, - double ub, - bool integer, - const std::string& name, - unsigned int number_new_variables) override; + std::vector addVariable( + double lb, + double ub, + bool integer, + const std::string& name, + unsigned int number_new_variables) override; OrtoolsMipVariable* getVariable(const std::string& name) const override; int variableCount() const override; OrtoolsMipConstraint* addConstraint(double lb, double ub, const std::string& name) override; - std::vector addConstraint(double lb, - double ub, - const std::string& name, - unsigned int number_new_constraints) override; + std::vector addConstraint( + double lb, + double ub, + const std::string& name, + unsigned int number_new_constraints) override; OrtoolsMipConstraint* getConstraint(const std::string& name) const override; int constraintCount() const override; diff --git a/src/optimisation/linear-problem-mpsolver-impl/linearProblem.cpp b/src/optimisation/linear-problem-mpsolver-impl/linearProblem.cpp index 25aee4ba38..b8764c9f75 100644 --- a/src/optimisation/linear-problem-mpsolver-impl/linearProblem.cpp +++ b/src/optimisation/linear-problem-mpsolver-impl/linearProblem.cpp @@ -68,11 +68,12 @@ OrtoolsMipVariable* OrtoolsLinearProblem::addVariable(double lb, return pair.first->second.get(); // <, bool> } -std::vector OrtoolsLinearProblem::addVariable(double lb, - double ub, - bool integer, - const std::string& name, - unsigned int number_new_variables) +std::vector OrtoolsLinearProblem::addVariable( + double lb, + double ub, + bool integer, + const std::string& name, + unsigned int number_new_variables) { std::vector new_variables; for (unsigned int i = 0; i < number_new_variables; i++) @@ -186,18 +187,21 @@ static const operations_research::MPVariable* getMpVar(const LinearProblemApi::I const auto* OrtoolsMipVar = dynamic_cast(var); if (!OrtoolsMipVar) { - logs.error() << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; + logs.error() + << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; throw std::bad_cast(); } return OrtoolsMipVar->getMpVar(); } -void OrtoolsLinearProblem::setObjectiveCoefficient(LinearProblemApi::IMipVariable* var, double coefficient) +void OrtoolsLinearProblem::setObjectiveCoefficient(LinearProblemApi::IMipVariable* var, + double coefficient) { objective_->SetCoefficient(getMpVar(var), coefficient); } -double OrtoolsLinearProblem::getObjectiveCoefficient(const LinearProblemApi::IMipVariable* var) const +double OrtoolsLinearProblem::getObjectiveCoefficient( + const LinearProblemApi::IMipVariable* var) const { return objective_->GetCoefficient(getMpVar(var)); } diff --git a/src/optimisation/linear-problem-mpsolver-impl/mipConstraint.cpp b/src/optimisation/linear-problem-mpsolver-impl/mipConstraint.cpp index 92d4f7c90c..e4b44fbe84 100644 --- a/src/optimisation/linear-problem-mpsolver-impl/mipConstraint.cpp +++ b/src/optimisation/linear-problem-mpsolver-impl/mipConstraint.cpp @@ -63,7 +63,8 @@ void OrtoolsMipConstraint::setCoefficient(LinearProblemApi::IMipVariable* var, d auto* mpvar = dynamic_cast(var); if (!mpvar) { - logs.error() << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; + logs.error() + << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; throw std::bad_cast(); } @@ -75,7 +76,8 @@ double OrtoolsMipConstraint::getCoefficient(LinearProblemApi::IMipVariable* var) auto* mpvar = dynamic_cast(var); if (!mpvar) { - logs.error() << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; + logs.error() + << "Invalid cast, tried from LinearProblemApi::IMipVariable to OrtoolsMipVariable"; throw std::bad_cast(); } diff --git a/src/study/system-model/component.cpp b/src/study/system-model/component.cpp index 87b9991865..28ed85e5cd 100644 --- a/src/study/system-model/component.cpp +++ b/src/study/system-model/component.cpp @@ -52,7 +52,8 @@ static void checkComponentDataValidity(const ComponentData& data) { if (!data.parameter_values.contains(param)) { - throw std::invalid_argument("The component \"" + data.id + "\" has no value for parameter '" + param + "'"); + throw std::invalid_argument("The component \"" + data.id + + "\" has no value for parameter '" + param + "'"); } } } diff --git a/src/study/system-model/include/antares/study/system-model/parameter.h b/src/study/system-model/include/antares/study/system-model/parameter.h index 5068641492..71ce5692e8 100644 --- a/src/study/system-model/include/antares/study/system-model/parameter.h +++ b/src/study/system-model/include/antares/study/system-model/parameter.h @@ -22,8 +22,8 @@ #include -#include "valueType.h" #include "timeAndScenarioType.h" +#include "valueType.h" namespace Antares::Study::SystemModel { @@ -36,8 +36,6 @@ namespace Antares::Study::SystemModel class Parameter { public: - - explicit Parameter(std::string id, TimeDependent timeDependent, ScenarioDependent scenarioDependent):