From 3f429990fbc965bb135c30ea8752d75c5e339c43 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Wed, 21 Apr 2021 18:08:38 +0200
Subject: [PATCH] AxisNames: fct -> const

---
 Core/Scan/UnitConverter1D.cpp                 |   4 +-
 Device/Detector/SimpleUnitConverters.cpp      |  16 +-
 Device/Unit/AxisNames.cpp                     | 138 +++++++-----------
 Device/Unit/AxisNames.h                       |  18 +--
 GUI/coregui/DataLoaders/QREDataLoader.cpp     |   2 +-
 GUI/coregui/utils/ImportDataInfo.cpp          |   4 +-
 .../UnitTests/GUI/TestCsvImportAssistant.cpp  |   2 +-
 auto/Wrap/doxygenDevice.i                     |  26 ----
 8 files changed, 76 insertions(+), 134 deletions(-)

diff --git a/Core/Scan/UnitConverter1D.cpp b/Core/Scan/UnitConverter1D.cpp
index 15b0292eef0..d4358b52ad6 100644
--- a/Core/Scan/UnitConverter1D.cpp
+++ b/Core/Scan/UnitConverter1D.cpp
@@ -159,7 +159,7 @@ UnitConverterConvSpec::UnitConverterConvSpec(const UnitConverterConvSpec& other)
 std::vector<std::map<Axes::Units, std::string>> UnitConverterConvSpec::createNameMaps() const
 {
     std::vector<std::map<Axes::Units, std::string>> result;
-    result.push_back(AxisNames::InitSpecAxis());
+    result.push_back(AxisNames::specAxis);
     return result;
 }
 
@@ -234,7 +234,7 @@ UnitConverterQSpec::UnitConverterQSpec(const UnitConverterQSpec& other)
 std::vector<std::map<Axes::Units, std::string>> UnitConverterQSpec::createNameMaps() const
 {
     std::vector<std::map<Axes::Units, std::string>> result;
-    result.push_back(AxisNames::InitSpecAxisQ());
+    result.push_back(AxisNames::specAxisQ);
     return result;
 }
 
diff --git a/Device/Detector/SimpleUnitConverters.cpp b/Device/Detector/SimpleUnitConverters.cpp
index 2dd7e529f93..79e6be5814d 100644
--- a/Device/Detector/SimpleUnitConverters.cpp
+++ b/Device/Detector/SimpleUnitConverters.cpp
@@ -194,8 +194,8 @@ double SphericalConverter::calculateValue(size_t i_axis, Axes::Units units_type,
 std::vector<std::map<Axes::Units, std::string>> SphericalConverter::createNameMaps() const
 {
     std::vector<std::map<Axes::Units, std::string>> result;
-    result.push_back(AxisNames::InitSphericalAxis0());
-    result.push_back(AxisNames::InitSphericalAxis1());
+    result.push_back(AxisNames::sphericalAxis0);
+    result.push_back(AxisNames::sphericalAxis1);
     return result;
 }
 
@@ -281,8 +281,8 @@ double RectangularConverter::calculateValue(size_t i_axis, Axes::Units units_typ
 std::vector<std::map<Axes::Units, std::string>> RectangularConverter::createNameMaps() const
 {
     std::vector<std::map<Axes::Units, std::string>> result;
-    result.push_back(AxisNames::InitRectangularAxis0());
-    result.push_back(AxisNames::InitRectangularAxis1());
+    result.push_back(AxisNames::rectangularAxis0);
+    result.push_back(AxisNames::rectangularAxis1);
     return result;
 }
 
@@ -350,8 +350,8 @@ double OffSpecularConverter::calculateValue(size_t, Axes::Units units_type, doub
 std::vector<std::map<Axes::Units, std::string>> OffSpecularConverter::createNameMaps() const
 {
     std::vector<std::map<Axes::Units, std::string>> result;
-    result.push_back(AxisNames::InitOffSpecularAxis0());
-    result.push_back(AxisNames::InitOffSpecularAxis1());
+    result.push_back(AxisNames::offSpecularAxis0);
+    result.push_back(AxisNames::offSpecularAxis1);
     return result;
 }
 
@@ -440,8 +440,8 @@ double DepthProbeConverter::calculateValue(size_t i_axis, Axes::Units units_type
 std::vector<std::map<Axes::Units, std::string>> DepthProbeConverter::createNameMaps() const
 {
     std::vector<std::map<Axes::Units, std::string>> result;
-    result.push_back(AxisNames::InitSpecAxis());
-    result.push_back(AxisNames::InitSampleDepthAxis());
+    result.push_back(AxisNames::specAxis);
+    result.push_back(AxisNames::sampleDepthAxis);
     return result;
 }
 
diff --git a/Device/Unit/AxisNames.cpp b/Device/Unit/AxisNames.cpp
index 62aa869c3a7..8925a5c994f 100644
--- a/Device/Unit/AxisNames.cpp
+++ b/Device/Unit/AxisNames.cpp
@@ -16,88 +16,59 @@
 #include <map>
 
 namespace AxisNames {
+
 // For spherical detectors in GISAS simulations
-std::map<Axes::Units, std::string> InitSphericalAxis0()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "X [nbins]";
-    result[Axes::Units::RADIANS] = "phi_f [rad]";
-    result[Axes::Units::DEGREES] = "phi_f [deg]";
-    result[Axes::Units::QSPACE] = "Qy [1/nm]";
-    result[Axes::Units::QXQY] = "Qx [1/nm]";
-    return result;
-}
-std::map<Axes::Units, std::string> InitSphericalAxis1()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "Y [nbins]";
-    result[Axes::Units::RADIANS] = "alpha_f [rad]";
-    result[Axes::Units::DEGREES] = "alpha_f [deg]";
-    result[Axes::Units::QSPACE] = "Qz [1/nm]";
-    result[Axes::Units::QXQY] = "Qy [1/nm]";
-    return result;
-}
+const std::map<Axes::Units, std::string> sphericalAxis0 = {
+        { Axes::Units::NBINS, "X [nbins]" },
+        { Axes::Units::RADIANS, "phi_f [rad]" },
+        { Axes::Units::DEGREES, "phi_f [deg]" },
+        { Axes::Units::QSPACE, "Qy [1/nm]" },
+        { Axes::Units::QXQY, "Qx [1/nm]" } };
+const std::map<Axes::Units, std::string> sphericalAxis1 = {
+        { Axes::Units::NBINS, "Y [nbins]" },
+        { Axes::Units::RADIANS, "alpha_f [rad]" },
+        { Axes::Units::DEGREES, "alpha_f [deg]" },
+        { Axes::Units::QSPACE, "Qz [1/nm]" },
+        { Axes::Units::QXQY, "Qy [1/nm]" } };
+
 // For rectangular detectors in GISAS simulations
-std::map<Axes::Units, std::string> InitRectangularAxis0()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "X [nbins]";
-    result[Axes::Units::RADIANS] = "phi_f [rad]";
-    result[Axes::Units::DEGREES] = "phi_f [deg]";
-    result[Axes::Units::MM] = "X [mm]";
-    result[Axes::Units::QSPACE] = "Qy [1/nm]";
-    result[Axes::Units::QXQY] = "Qx [1/nm]";
-    return result;
-}
-std::map<Axes::Units, std::string> InitRectangularAxis1()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "Y [nbins]";
-    result[Axes::Units::RADIANS] = "alpha_f [rad]";
-    result[Axes::Units::DEGREES] = "alpha_f [deg]";
-    result[Axes::Units::MM] = "Y [mm]";
-    result[Axes::Units::QSPACE] = "Qz [1/nm]";
-    result[Axes::Units::QXQY] = "Qy [1/nm]";
-    return result;
-}
+const std::map<Axes::Units, std::string> rectangularAxis0 = {
+        { Axes::Units::NBINS, "X [nbins]" },
+        { Axes::Units::RADIANS, "phi_f [rad]" },
+        { Axes::Units::DEGREES, "phi_f [deg]" },
+        { Axes::Units::MM, "X [mm]" },
+        { Axes::Units::QSPACE, "Qy [1/nm]" },
+        { Axes::Units::QXQY, "Qx [1/nm]" } };
+const std::map<Axes::Units, std::string> rectangularAxis1 = {
+        { Axes::Units::NBINS, "Y [nbins]" },
+        { Axes::Units::RADIANS, "alpha_f [rad]" },
+        { Axes::Units::DEGREES, "alpha_f [deg]" },
+        { Axes::Units::MM, "Y [mm]" },
+        { Axes::Units::QSPACE, "Qz [1/nm]" },
+        { Axes::Units::QXQY, "Qy [1/nm]" } };
+
 // For off-specular simulations (both spherical and rectangular detectors)
 // Currently 'mm' is not supported for the y-axis
-std::map<Axes::Units, std::string> InitOffSpecularAxis0()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "X [nbins]";
-    result[Axes::Units::RADIANS] = "alpha_i [rad]";
-    result[Axes::Units::DEGREES] = "alpha_i [deg]";
-    return result;
-}
-std::map<Axes::Units, std::string> InitOffSpecularAxis1()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "Y [nbins]";
-    result[Axes::Units::RADIANS] = "alpha_f [rad]";
-    result[Axes::Units::DEGREES] = "alpha_f [deg]";
-    return result;
-}
+const std::map<Axes::Units, std::string> offSpecularAxis0 = {
+    { Axes::Units::NBINS, "X [nbins]" },
+    { Axes::Units::RADIANS, "alpha_i [rad]" },
+    { Axes::Units::DEGREES, "alpha_i [deg]" }};
+const std::map<Axes::Units, std::string> offSpecularAxis1 = {
+    { Axes::Units::NBINS, "Y [nbins]" },
+    { Axes::Units::RADIANS, "alpha_f [rad]" },
+    { Axes::Units::DEGREES, "alpha_f [deg]" }};
 
-std::map<Axes::Units, std::string> InitSpecAxis()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "X [nbins]";
-    result[Axes::Units::RADIANS] = "alpha_i [rad]";
-    result[Axes::Units::DEGREES] = "alpha_i [deg]";
-    result[Axes::Units::QSPACE] = "Q [1/nm]";
-    result[Axes::Units::RQ4] = "Q [1/nm]";
-    return result;
-}
+const std::map<Axes::Units, std::string> specAxis = {
+    { Axes::Units::NBINS, "X [nbins]" },
+    { Axes::Units::RADIANS, "alpha_i [rad]" },
+    { Axes::Units::DEGREES, "alpha_i [deg]" },
+    { Axes::Units::QSPACE, "Q [1/nm]" },
+    { Axes::Units::RQ4, "Q [1/nm]" } };
 
-std::map<Axes::Units, std::string> InitSpecAxisQ()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "X [nbins]";
-    result[Axes::Units::QSPACE] = "Q [1/nm]";
-    result[Axes::Units::RQ4] = "Q [1/nm]";
-    return result;
-}
+const std::map<Axes::Units, std::string> specAxisQ = {
+    { Axes::Units::NBINS, "X [nbins]" },
+    { Axes::Units::QSPACE, "Q [1/nm]" },
+    { Axes::Units::RQ4, "Q [1/nm]" } };
 
 // corner case: axis corresponding to the position
 // across sample is accepts only bins and nanometers,
@@ -105,14 +76,11 @@ std::map<Axes::Units, std::string> InitSpecAxisQ()
 // converter correspond to inclination angular axis.
 // For this reason depth axis map returns always
 // nanometers except for bins.
-std::map<Axes::Units, std::string> InitSampleDepthAxis()
-{
-    std::map<Axes::Units, std::string> result;
-    result[Axes::Units::NBINS] = "Y [nbins]";
-    result[Axes::Units::RADIANS] = "Position [nm]";
-    result[Axes::Units::DEGREES] = "Position [nm]";
-    result[Axes::Units::QSPACE] = "Position [nm]";
-    return result;
-}
+
+const std::map<Axes::Units, std::string> sampleDepthAxis = {
+    { Axes::Units::NBINS, "Y [nbins]" },
+    { Axes::Units::RADIANS, "Position [nm]" },
+    { Axes::Units::DEGREES, "Position [nm]" },
+    { Axes::Units::QSPACE, "Position [nm]" } };
 
 } // namespace AxisNames
diff --git a/Device/Unit/AxisNames.h b/Device/Unit/AxisNames.h
index 31fee6d91ad..356c00af5ee 100644
--- a/Device/Unit/AxisNames.h
+++ b/Device/Unit/AxisNames.h
@@ -34,15 +34,15 @@ const std::map<Axes::Units, const char*> axisUnitLabel = {
 //! @ingroup detector
 
 namespace AxisNames {
-std::map<Axes::Units, std::string> InitSphericalAxis0();
-std::map<Axes::Units, std::string> InitSphericalAxis1();
-std::map<Axes::Units, std::string> InitRectangularAxis0();
-std::map<Axes::Units, std::string> InitRectangularAxis1();
-std::map<Axes::Units, std::string> InitOffSpecularAxis0();
-std::map<Axes::Units, std::string> InitOffSpecularAxis1();
-std::map<Axes::Units, std::string> InitSpecAxis();
-std::map<Axes::Units, std::string> InitSpecAxisQ();
-std::map<Axes::Units, std::string> InitSampleDepthAxis();
+extern const std::map<Axes::Units, std::string> sphericalAxis0;
+extern const std::map<Axes::Units, std::string> sphericalAxis1;
+extern const std::map<Axes::Units, std::string> rectangularAxis0;
+extern const std::map<Axes::Units, std::string> rectangularAxis1;
+extern const std::map<Axes::Units, std::string> offSpecularAxis0;
+extern const std::map<Axes::Units, std::string> offSpecularAxis1;
+extern const std::map<Axes::Units, std::string> specAxis;
+extern const std::map<Axes::Units, std::string> specAxisQ;
+extern const std::map<Axes::Units, std::string> sampleDepthAxis;
 } // namespace AxisNames
 
 #endif // BORNAGAIN_DEVICE_UNIT_AXISNAMES_H
diff --git a/GUI/coregui/DataLoaders/QREDataLoader.cpp b/GUI/coregui/DataLoaders/QREDataLoader.cpp
index 15a218831ee..c8738653f71 100644
--- a/GUI/coregui/DataLoaders/QREDataLoader.cpp
+++ b/GUI/coregui/DataLoaders/QREDataLoader.cpp
@@ -561,7 +561,7 @@ void QREDataLoader::createOutputDataFromParsingResult(RealDataItem* item) const
     specularItem->setItemValue(SpecularDataItem::P_AXES_UNITS, combo.variant());
     specularItem->getItem(SpecularDataItem::P_AXES_UNITS)->setVisible(true);
 
-    auto label_map = AxisNames::InitSpecAxis();
+    auto label_map = AxisNames::specAxis;
     const auto xAxisTitle = QString::fromStdString(label_map[Axes::Units::QSPACE]);
     const auto yAxisTitle = "Signal [a.u.]"; // taken from ImportDataInfo::axisLabel
 
diff --git a/GUI/coregui/utils/ImportDataInfo.cpp b/GUI/coregui/utils/ImportDataInfo.cpp
index 773914d25d6..beb67363b1f 100644
--- a/GUI/coregui/utils/ImportDataInfo.cpp
+++ b/GUI/coregui/utils/ImportDataInfo.cpp
@@ -22,7 +22,7 @@ namespace {
 std::vector<Axes::Units> specularUnits()
 {
     std::vector<Axes::Units> result;
-    const auto units_map = AxisNames::InitSpecAxis();
+    const auto units_map = AxisNames::specAxis;
     for (auto& pair : units_map)
         result.push_back(pair.first);
     return result;
@@ -104,7 +104,7 @@ QString ImportDataInfo::axisLabel(size_t axis_index) const
         if (axis_index > 0)
             return "Signal [a.u.]";
 
-        auto label_map = AxisNames::InitSpecAxis();
+        auto label_map = AxisNames::specAxis;
         return QString::fromStdString(label_map[m_units]);
     }
     throw GUIHelpers::Error("Error in ImportDataInfo::axisLabel: unsupported data type");
diff --git a/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp b/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp
index 7ee4034ef42..df737e845bf 100644
--- a/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp
+++ b/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp
@@ -91,6 +91,6 @@ TEST_F(TestCsvImportAssistant, test_readFile)
     EXPECT_EQ(AllocSize, 3u);
     EXPECT_EQ(RawDataVec, expected);
     EXPECT_EQ(UnitsLabel, JobItemUtils::nameFromAxesUnits(Axes::Units::DEGREES));
-    EXPECT_EQ(AxisLabel0, QString::fromStdString(AxisNames::InitSpecAxis()[Axes::Units::DEGREES]));
+    EXPECT_EQ(AxisLabel0, QString::fromStdString(AxisNames::specAxis.at(Axes::Units::DEGREES)));
     EXPECT_EQ(AxisLabel1, SpecularDataAxesNames::y_axis_default_name);
 }
diff --git a/auto/Wrap/doxygenDevice.i b/auto/Wrap/doxygenDevice.i
index 8dcf86a4656..e9458edc8a1 100644
--- a/auto/Wrap/doxygenDevice.i
+++ b/auto/Wrap/doxygenDevice.i
@@ -2789,32 +2789,6 @@ Creates 2D vector from  OutputData.
 
 
 // File: namespaceAxisNames.xml
-%feature("docstring")  AxisNames::InitSphericalAxis0 "std::map< Axes::Units, std::string > AxisNames::InitSphericalAxis0()
-";
-
-%feature("docstring")  AxisNames::InitSphericalAxis1 "std::map< Axes::Units, std::string > AxisNames::InitSphericalAxis1()
-";
-
-%feature("docstring")  AxisNames::InitRectangularAxis0 "std::map< Axes::Units, std::string > AxisNames::InitRectangularAxis0()
-";
-
-%feature("docstring")  AxisNames::InitRectangularAxis1 "std::map< Axes::Units, std::string > AxisNames::InitRectangularAxis1()
-";
-
-%feature("docstring")  AxisNames::InitOffSpecularAxis0 "std::map< Axes::Units, std::string > AxisNames::InitOffSpecularAxis0()
-";
-
-%feature("docstring")  AxisNames::InitOffSpecularAxis1 "std::map< Axes::Units, std::string > AxisNames::InitOffSpecularAxis1()
-";
-
-%feature("docstring")  AxisNames::InitSpecAxis "std::map< Axes::Units, std::string > AxisNames::InitSpecAxis()
-";
-
-%feature("docstring")  AxisNames::InitSpecAxisQ "std::map< Axes::Units, std::string > AxisNames::InitSpecAxisQ()
-";
-
-%feature("docstring")  AxisNames::InitSampleDepthAxis "std::map< Axes::Units, std::string > AxisNames::InitSampleDepthAxis()
-";
 
 
 // File: namespaceboost_1_1geometry.xml
-- 
GitLab