diff --git a/.clang-tidy b/.clang-tidy
index 0fa3334dd3bd5a07f3f9f9490d8dd90faf86c865..01d514dcf04527a1bdbcfe2f3de6cef63925fb78 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -29,7 +29,7 @@ Checks: '*,
 -bugprone-suspicious-include,
 -cert-err58-cpp,
 -cert-err61-cpp,
--cert-msc30-cpp,
+-cert-msc30-c*,
 -cert-msc50-cpp,
 -clang-analyzer-alpha*,
 -clang-analyzer-alpha.deadcode.UnreachableCode,
@@ -53,6 +53,7 @@ Checks: '*,
 -google-readability-casting,
 -google-readability-todo,
 -google-runtime-int,
+-hicpp-exception-baseclass,
 -hicpp-signed-bitwise,
 -hicpp-vararg,
 -llvmlibc-callee-namespace,
@@ -91,18 +92,21 @@ Checks: '*,
 -*avoid-c-arrays,
 -*narrowing-conversions,
 -cppcoreguidelines-owning-memory,
+-bugprone-unused-return-value,
 
 
 -SectionComment_Temporarily_disabled_checks__To_be_resolved_soon,
 
 -*use-auto,
 -*move-const-arg,
+-*-use-emplace,
 -*use-equals-default,
 -*use-nullptr,
 -*use-override,
 -bugprone-parent-virtual-call,
 -clang-analyzer-core.CallAndMessage,
 -clang-analyzer-optin.cplusplus.VirtualCall,
+-cppcoreguidelines-explicit-virtual-functions,
 -cppcoreguidelines-pro-type-const-cast,
 -cppcoreguidelines-pro-type-static-cast-downcast,
 -google-explicit-constructor,
@@ -114,6 +118,7 @@ Checks: '*,
 -llvm-qualified-auto,
 -misc-non-private-member-variables-in-classes,
 -misc-uniqueptr-reset-release,
+-modernize-avoid-bind,
 -modernize-loop-convert,
 -modernize-make-unique,
 -modernize-pass-by-value,
@@ -131,9 +136,10 @@ Checks: '*,
 -readability-redundant-member-init,
 -readability-simplify-boolean-expr,
 
-
 -SectionComment_Temporarily_disabled_checks__We_need_to_investigate_them_one_by_one,
 
+-bugprone-exception-escape,
+-bugprone-misplaced-widening-cast,
 
 '
-# note the closing quotation mark
\ No newline at end of file
+# keep the closing quotation mark
\ No newline at end of file
diff --git a/App/AppOptions.cpp b/App/AppOptions.cpp
index 3e96eca7d0230ea8922b92b93cedc0e517ba6ff4..64df880a829132b798583a8ebebceeea6122970d 100644
--- a/App/AppOptions.cpp
+++ b/App/AppOptions.cpp
@@ -64,12 +64,12 @@ ApplicationOptions::ApplicationOptions(int argc, char** argv) : m_options_is_con
 
 const bpo::variable_value& ApplicationOptions::operator[](const std::string& s) const
 {
-    return m_variables_map[s.c_str()];
+    return m_variables_map[s];
 }
 
 bool ApplicationOptions::find(std::string name) const
 {
-    return (m_variables_map.count(name.c_str()));
+    return (m_variables_map.count(name));
 }
 
 bool ApplicationOptions::isConsistent() const
diff --git a/Base/Math/FourierTransform.cpp b/Base/Math/FourierTransform.cpp
index 69bb3603357c49fd57d1389d6c08c9d31a98782d..e3a74c61dc1664f276569668f9b1c5e9134f48c2 100644
--- a/Base/Math/FourierTransform.cpp
+++ b/Base/Math/FourierTransform.cpp
@@ -14,11 +14,9 @@
 //  ************************************************************************************************
 
 #include "Base/Math/FourierTransform.h"
+#include "Base/Util/Assert.h"
 #include <algorithm>
 #include <cmath>
-#include <iostream>
-#include <sstream>
-#include <stdexcept>
 
 FourierTransform::FourierTransform() = default;
 
@@ -64,15 +62,17 @@ void FourierTransform::fft(const double2d_t& source, double2d_t& result)
     double* ptr = ws.out_fftw;
     result.clear();
 
+    const size_t nh = ws.h_fftw;
+
     // Resize the array for holding the FT output to correct dimensions
-    result.resize(static_cast<size_t>(ws.h_fftw),
+    result.resize(nh,
                   std::vector<double>(static_cast<size_t>(ws.w_fftw)));
 
     // Storing FT output
-    for (size_t i = 0; i < static_cast<size_t>(ws.h_fftw); i++) {
-        size_t k = static_cast<size_t>(ws.h_fftw) - i;
+    for (size_t i = 0; i < nh; i++) {
+        size_t k = nh - i;
         if (i == 0)
-            k -= static_cast<size_t>(ws.h_fftw);
+            k -= nh;
         for (size_t j = 0; j < static_cast<size_t>(ws.w_fftw / 2 + 1); j++) {
             result[i][j] = *ptr;
             size_t l = static_cast<size_t>(ws.w_fftw) - j;
@@ -105,10 +105,9 @@ void FourierTransform::fftshift(double2d_t& result) const
     std::rotate(result.begin(), result.begin() + static_cast<int>(row_shift), result.end());
 
     // Second, shifting the cols
-    for (size_t i = 0; i < static_cast<size_t>(ws.h_fftw); i++) {
+    for (size_t i = 0; i < static_cast<size_t>(ws.h_fftw); i++)
         std::rotate(result[i].begin(), result[i].begin() + static_cast<int>(col_shift),
                     result[i].end());
-    }
 }
 
 /* ************************************************************************* */
@@ -123,9 +122,7 @@ void FourierTransform::fft(const double1d_t& source, double1d_t& result)
     double2d_t result2d;
     fft(source2d, result2d);
 
-    if (result2d.size() != 1)
-        throw std::runtime_error("FourierTransform::fft -> Panic in 1d");
-
+    ASSERT(result2d.size() == 1);
     result = result2d[0];
 }
 
@@ -149,12 +146,8 @@ void FourierTransform::fftshift(double1d_t& result) const
 /* ************************************************************************************ */
 void FourierTransform::init(int h_src, int w_src)
 {
-    if (!h_src || !w_src) {
-        std::ostringstream os;
-        os << "FourierTransform::init() -> Panic! Wrong dimensions " << h_src << " " << w_src
-           << std::endl;
-        throw std::runtime_error(os.str());
-    }
+    ASSERT(h_src);
+    ASSERT(w_src);
 
     ws.clear();
     ws.h_src = h_src;
@@ -173,9 +166,7 @@ void FourierTransform::init(int h_src, int w_src)
     // ws.p_forw_src = fftw_plan_dft_r2c_2d(ws.h_fftw, ws.w_fftw, ws.in_src,
     //                                     static_cast<double*>(ws.out_src), FFTW_ESTIMATE);
 
-    if (ws.p_forw_src == nullptr)
-        throw std::runtime_error(
-            "FourierTransform::init() -> Error! Can't initialise p_forw_src plan.");
+    ASSERT(ws.p_forw_src);
 }
 
 /* ************************************************************************* */
@@ -184,9 +175,8 @@ void FourierTransform::init(int h_src, int w_src)
 
 void FourierTransform::fftw_forward_FT(const double2d_t& src)
 {
-    if (ws.h_fftw <= 0 || ws.w_fftw <= 0)
-        throw std::runtime_error(
-            "FourierTransform::fftw_forward_FT() -> Panic! Initialization is missed.");
+    ASSERT(ws.h_fftw > 0);
+    ASSERT(ws.w_fftw > 0);
 
     double *ptr, *ptr_end;
 
diff --git a/GUI/Model/From/FromDomain.cpp b/GUI/Model/From/FromDomain.cpp
index 141a3a7a593cc94fa9418fec1290ef72aa011aa4..bbe7791398716bcd26fe574d5becbdc7b5c497fb 100644
--- a/GUI/Model/From/FromDomain.cpp
+++ b/GUI/Model/From/FromDomain.cpp
@@ -424,7 +424,7 @@ void GUI::Transform::FromDomain::setGISASBeamItem(BeamItem* beam_item,
                                                   const GISASSimulation& simulation)
 {
     ASSERT(beam_item);
-    Beam beam = simulation.beam();
+    const Beam& beam = simulation.beam();
 
     beam_item->setIntensity(beam.intensity());
     beam_item->setWavelength(beam.wavelength());
@@ -432,7 +432,7 @@ void GUI::Transform::FromDomain::setGISASBeamItem(BeamItem* beam_item,
     beam_item->setAzimuthalAngle(Units::rad2deg(beam.direction().phi()));
 
     // distribution parameters
-    const std::vector<ParameterDistribution> distributions = simulation.getDistributions();
+    const std::vector<ParameterDistribution>& distributions = simulation.getDistributions();
     for (size_t i = 0; i < distributions.size(); ++i) {
         // try all, one will have the right 'whichParameter'
         addDistributionToBeamItem(ParameterDistribution::BeamWavelength,
@@ -447,7 +447,7 @@ void GUI::Transform::FromDomain::setGISASBeamItem(BeamItem* beam_item,
 void GUI::Transform::FromDomain::setOffSpecularBeamItem(BeamItem* beam_item,
                                                         const OffSpecularSimulation& simulation)
 {
-    Beam beam = simulation.beam();
+    const Beam& beam = simulation.beam();
 
     beam_item->setIntensity(beam.intensity());
     beam_item->setWavelength(beam.wavelength());
diff --git a/GUI/View/Intensity/Plot1D.cpp b/GUI/View/Intensity/Plot1D.cpp
index 3c02dbbf06bec775b22f881493bd13c735462200..acdbd6f9b9ba95de48f341d5521796a15850fd25 100644
--- a/GUI/View/Intensity/Plot1D.cpp
+++ b/GUI/View/Intensity/Plot1D.cpp
@@ -248,7 +248,7 @@ void Plot1D::updateGraph(Data1DProperties* item)
     auto data_points = viewItem()->graphData(item);
 
     auto graph = m_graph_map.at(item);
-    graph->setData(data_points.first, data_points.second, /*sorted =*/true);
+    graph->setData(data_points.first, data_points.second, /*alreadySorted =*/true);
 }
 
 Data1DViewItem* Plot1D::viewItem()
diff --git a/GUI/View/Mask/MaskEditorPropertyPanel.cpp b/GUI/View/Mask/MaskEditorPropertyPanel.cpp
index 646754c6466ebbe729969d5c5a7dd29d2f984a87..c654f3a51e954f90a6836ac479385f88297c0848 100644
--- a/GUI/View/Mask/MaskEditorPropertyPanel.cpp
+++ b/GUI/View/Mask/MaskEditorPropertyPanel.cpp
@@ -21,8 +21,9 @@
 #include <QListView>
 #include <QVBoxLayout>
 
-//! Widget to cheat Accordion to resize correctly.
+namespace {
 
+//! Widget to cheat Accordion to resize correctly.
 class EnvelopWidget : public QWidget {
 public:
     EnvelopWidget(QWidget* content)
@@ -35,9 +36,12 @@ public:
         setLayout(mainLayout);
     }
 
-    QSize sizeHint() const { return QSize(128, 500); }
+    QSize sizeHint() const override { return QSize(128, 500); }
 };
 
+} // namespace
+
+
 MaskEditorPropertyPanel::MaskEditorPropertyPanel(QWidget* parent)
     : QWidget(parent)
     , m_listView(new QListView)
diff --git a/GUI/View/MaterialEditor/MaterialEditorModel.cpp b/GUI/View/MaterialEditor/MaterialEditorModel.cpp
index cad287d81b7c6d0c6e14154c8b6a7948db224ded..d8ac989b2d09fc9a646e81aba875ab4e1d30633a 100644
--- a/GUI/View/MaterialEditor/MaterialEditorModel.cpp
+++ b/GUI/View/MaterialEditor/MaterialEditorModel.cpp
@@ -36,7 +36,7 @@ QVariant MaterialEditorModel::headerData(int section, Qt::Orientation /*orientat
                                          int role /* = Qt::DisplayRole */) const
 {
     if (role != Qt::DisplayRole)
-        return QVariant();
+        return {};
 
     switch (section) {
     case NAME:
@@ -47,15 +47,15 @@ QVariant MaterialEditorModel::headerData(int section, Qt::Orientation /*orientat
         return "Material parameters";
     case MAGNETIZATION:
         return "Magnetization [A/m]";
+    default:
+        return {};
     }
-
-    return QVariant();
 }
 
 QVariant MaterialEditorModel::data(const QModelIndex& index, int role /*= Qt::DisplayRole*/) const
 {
     if (!index.isValid())
-        return QVariant();
+        return {};
 
     MaterialItem* material = m_model->materialItems()[index.row()];
 
@@ -94,7 +94,7 @@ QVariant MaterialEditorModel::data(const QModelIndex& index, int role /*= Qt::Di
         }
     }
 
-    return QVariant();
+    return {};
 }
 
 void MaterialEditorModel::setMaterialItemName(const QModelIndex& index, const QString& name)
diff --git a/GUI/View/Realspace/IPositionBuilder.cpp b/GUI/View/Realspace/IPositionBuilder.cpp
index 488f1a472c2f4ee7321f310342399feecadc0ab1..18250c548642e21a12d82e4cd7ed18fed08cc9e9 100644
--- a/GUI/View/Realspace/IPositionBuilder.cpp
+++ b/GUI/View/Realspace/IPositionBuilder.cpp
@@ -228,7 +228,7 @@ RadialParacrystalPositionBuilder::generatePositionsImpl(double layer_size, doubl
     // for populating particles correctly within the 3D model's boundaries
     int n = distance <= 0.0 ? 1 : static_cast<int>(layer_size * std::sqrt(2.0) / distance);
 
-    lattice_positions.resize(static_cast<size_t>(2 * n + 1));
+    lattice_positions.resize(2 * n + 1);
     for (auto& it : lattice_positions) {
         it.resize(2);
     }
@@ -241,17 +241,15 @@ RadialParacrystalPositionBuilder::generatePositionsImpl(double layer_size, doubl
         unsigned i_left = static_cast<unsigned>(std::max(0, 2 * i - 3));
 
         double offset = m_iff->randomSample();
-        lattice_positions[static_cast<size_t>(2 * i - 1)][0] =
+        lattice_positions[2 * i - 1][0] =
             lattice_positions[i_left][0] + distance + offset;
-        lattice_positions[static_cast<size_t>(2 * i - 1)][1] = 0.0;
+        lattice_positions[2 * i - 1][1] = 0.0;
 
         // positions of particles located along -x (store at even index)
-        unsigned i_right = static_cast<unsigned>(2 * (i - 1));
-
         offset = m_iff->randomSample();
-        lattice_positions[static_cast<size_t>(2 * i)][0] =
-            lattice_positions[i_right][0] - distance + offset;
-        lattice_positions[static_cast<size_t>(2 * i)][1] = 0.0;
+        lattice_positions[2 * i][0] =
+            lattice_positions[2 * (i - 1)][0] - distance + offset;
+        lattice_positions[2 * i][1] = 0.0;
     }
     return lattice_positions;
 }
diff --git a/GUI/View/Realspace/RealSpace2DParacrystalUtils.cpp b/GUI/View/Realspace/RealSpace2DParacrystalUtils.cpp
index a63352a1262bca91a70f8678d88a091e093e8469..c899f69dee7d3b6ae900d35114494149d1626968 100644
--- a/GUI/View/Realspace/RealSpace2DParacrystalUtils.cpp
+++ b/GUI/View/Realspace/RealSpace2DParacrystalUtils.cpp
@@ -13,56 +13,11 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Realspace/RealSpace2DParacrystalUtils.h"
+#include "Base/Util/Assert.h"
 #include "Sample/Aggregate/Interference2DParaCrystal.h"
 
 namespace {
-void ResizeLatticePositions(std::vector<std::vector<double>>& lattice_positions, double l1,
-                            double l2, double layer_size);
-void FindLatticePositionsIndex(size_t& index, size_t& index_prev, int i, int j, int size,
-                               double l_alpha);
-std::pair<double, double> ComputePositionAlongPositiveLatticeVector(
-    const size_t index_prev, std::vector<std::vector<double>>& lattice_positions,
-    const IFTDistribution2D* pdf, double l, double l_xi, double l_alpha);
-std::pair<double, double> ComputePositionAlongNegativeLatticeVector(
-    const size_t index_prev, std::vector<std::vector<double>>& lattice_positions,
-    const IFTDistribution2D* pdf, double l, double l_xi, double l_alpha);
-std::pair<double, double>
-ComputeLatticePosition(const size_t index_prev, int i, int j,
-                       std::vector<std::vector<double>>& lattice_positions,
-                       const IFTDistribution2D* pdf, double l, double l_xi, double l_alpha);
-void ComputePositionsAlongLatticeVectorAxes(std::vector<std::vector<double>>& lattice_positions,
-                                            const IFTDistribution2D* pdf, double l, double l_xi,
-                                            double l_alpha);
-void ComputePositionsInsideLatticeQuadrants(std::vector<std::vector<double>>& lattice_positions,
-                                            const IFTDistribution2D* pdf1,
-                                            const IFTDistribution2D* pdf2, double l1, double l2,
-                                            double l_xi, double l_alpha);
-} // namespace
-
-std::vector<std::vector<double>>
-GUI::RealSpace::Paracrystal2D::latticePositions(const Interference2DParaCrystal* p_iff,
-                                                double layer_size)
-{
-    auto& lattice = p_iff->lattice();
-    double l1 = lattice.length1();
-    double l2 = lattice.length2();
-    double alpha = lattice.latticeAngle();
-    double xi = lattice.rotationAngle();
 
-    std::vector<std::vector<double>> lattice_positions;
-    ResizeLatticePositions(lattice_positions, l1, l2, layer_size);
-
-    ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf1(), l1, xi, 0);
-
-    ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf2(), l2, xi, alpha);
-
-    ComputePositionsInsideLatticeQuadrants(lattice_positions, p_iff->pdf1(), p_iff->pdf2(), l1, l2,
-                                           xi, alpha);
-
-    return lattice_positions;
-}
-
-namespace {
 void ResizeLatticePositions(std::vector<std::vector<double>>& lattice_positions, double l1,
                             double l2, double layer_size)
 {
@@ -74,7 +29,7 @@ void ResizeLatticePositions(std::vector<std::vector<double>>& lattice_positions,
 
     n1 = std::max(n1, n2);
 
-    lattice_positions.resize(static_cast<size_t>((2 * n1 + 1) * (2 * n1 + 1)));
+    lattice_positions.resize((2 * n1 + 1) * (2 * n1 + 1));
     for (auto& it : lattice_positions) {
         it.resize(2);
     }
@@ -86,17 +41,17 @@ void ResizeLatticePositions(std::vector<std::vector<double>>& lattice_positions,
 void FindLatticePositionsIndex(size_t& index, size_t& index_prev, int i, int j, int size,
                                double l_alpha)
 {
-    index = static_cast<size_t>(i * (2 * size + 1) + j);
+    int newindex = i * (2 * size + 1) + j;
+    ASSERT(newindex>0);
+    index = newindex;
 
-    if (std::sin(l_alpha) == 0) // along l1
-    {
+    if (std::sin(l_alpha) == 0) { // along l1
         // particles along +l1 stored every odd iter (e.g. 1,3,5...) index of lattice_positions
         // particles along -l1 stored every even iter (e.g. 2,4,6...) index of lattice_positions
         index_prev = static_cast<size_t>(i * (2 * size + 1));
         if (j - 2 > 0)
             index_prev = index - 2;
-    } else // along l2
-    {
+    } else { // along l2
         // particles along +l2/-l2 stored every (odd/even iter)*(2*n1+1) index of lattice_positions
         index_prev = static_cast<size_t>(j);
         if (i - 2 > 0)
@@ -229,4 +184,33 @@ void ComputePositionsInsideLatticeQuadrants(std::vector<std::vector<double>>& la
         }
     }
 }
+
 } // namespace
+
+
+//  ************************************************************************************************
+//  implement namespace GUI::RealSpace::Paracrystal2D
+//  ************************************************************************************************
+
+std::vector<std::vector<double>>
+GUI::RealSpace::Paracrystal2D::latticePositions(const Interference2DParaCrystal* p_iff,
+                                                double layer_size)
+{
+    auto& lattice = p_iff->lattice();
+    double l1 = lattice.length1();
+    double l2 = lattice.length2();
+    double alpha = lattice.latticeAngle();
+    double xi = lattice.rotationAngle();
+
+    std::vector<std::vector<double>> lattice_positions;
+    ResizeLatticePositions(lattice_positions, l1, l2, layer_size);
+
+    ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf1(), l1, xi, 0);
+
+    ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf2(), l2, xi, alpha);
+
+    ComputePositionsInsideLatticeQuadrants(lattice_positions, p_iff->pdf1(), p_iff->pdf2(), l1, l2,
+                                           xi, alpha);
+
+    return lattice_positions;
+}
diff --git a/GUI/View/SampleDesigner/SampleEditorCommands.cpp b/GUI/View/SampleDesigner/SampleEditorCommands.cpp
index c2cdac4d7398fe309796b5fb080a6ffbdb549609..e6cc6c2b4a480a3430ebd2a51d586ff37a12d335 100644
--- a/GUI/View/SampleDesigner/SampleEditorCommands.cpp
+++ b/GUI/View/SampleDesigner/SampleEditorCommands.cpp
@@ -19,8 +19,11 @@
 #include "GUI/View/SampleDesigner/SampleEditorController.h"
 
 namespace {
-static constexpr int COMMAND_ID_CHANGE_VALUE = 11;
-}
+
+constexpr int COMMAND_ID_CHANGE_VALUE = 11;
+
+} // namespace
+
 
 CommandRemoveLayer::CommandRemoveLayer(SampleEditorController* ec, LayerItem* layerItem,
                                        QUndoCommand* parent /*= nullptr*/)
diff --git a/GUI/View/SampleDesigner/SampleToolBoxGroupView.cpp b/GUI/View/SampleDesigner/SampleToolBoxGroupView.cpp
index 20ee33dc39c68003d4e4c76c57510ebdaba3c813..aebb8a1ecd811709155b31bdfcea3c80fddd09fc 100644
--- a/GUI/View/SampleDesigner/SampleToolBoxGroupView.cpp
+++ b/GUI/View/SampleDesigner/SampleToolBoxGroupView.cpp
@@ -104,8 +104,9 @@ QVariant SampleToolBoxGroupModel::data(const QModelIndex& index, int role) const
     }
     case FILTER_ROLE:
         return item.filter;
+    default:
+        return {};
     }
-    return QVariant();
 }
 
 Qt::ItemFlags SampleToolBoxGroupModel::flags(const QModelIndex& /*index*/) const
diff --git a/GUI/View/Tool/DesignerHelper.cpp b/GUI/View/Tool/DesignerHelper.cpp
index 9d299b3fce8c0f13f6d18a65d4567573a0552aad..520147f7848cb9a5c5517f14b319ce2ca9215ba9 100644
--- a/GUI/View/Tool/DesignerHelper.cpp
+++ b/GUI/View/Tool/DesignerHelper.cpp
@@ -23,6 +23,7 @@ namespace {
 double m_current_zoom_level = 1.0;
 }
 
+
 QGradient DesignerHelper::getLayerGradient(const QColor& color, const QRectF& rect)
 {
     QColor c = color;
@@ -42,7 +43,7 @@ QGradient DesignerHelper::getLayerGradient(const QColor& color, const QRectF& re
 
 QGradient DesignerHelper::getDecorationGradient(const QColor& color, const QRectF& rect)
 {
-    QColor c = color;
+    const QColor& c = color;
     // c.setAlpha(200);
     QLinearGradient result(rect.x() + rect.width() / 2, rect.y(), rect.x() + rect.width() / 2,
                            rect.y() + rect.height());
diff --git a/Tests/Unit/Core/SimDataPairTest.cpp b/Tests/Unit/Core/SimDataPairTest.cpp
index a0a86eb4442b50d15c09303f6488e64cbe1f9f5b..a850b2f9bd6075c58b699cb45c5df8ec46f09bf2 100644
--- a/Tests/Unit/Core/SimDataPairTest.cpp
+++ b/Tests/Unit/Core/SimDataPairTest.cpp
@@ -35,7 +35,7 @@ TEST_F(SimDataPairTest, standardPair)
 
     // checking arrays
     auto array = obj.simulation_array();
-    EXPECT_DOUBLE_EQ(std::accumulate(array.begin(), array.end(), 0), 0.0);
+    EXPECT_DOUBLE_EQ(std::accumulate(array.begin(), array.end(), 0.), 0.);
     array = obj.experimental_array();
 
     // calling builder second time
@@ -44,7 +44,7 @@ TEST_F(SimDataPairTest, standardPair)
 
     // checking arrays
     array = obj.simulation_array();
-    EXPECT_DOUBLE_EQ(std::accumulate(array.begin(), array.end(), 0), 0.0);
+    EXPECT_DOUBLE_EQ(std::accumulate(array.begin(), array.end(), 0.), 0.);
     array = obj.experimental_array();
 }
 
diff --git a/Tests/Unit/Core/SimulationResultTest.cpp b/Tests/Unit/Core/SimulationResultTest.cpp
index 42cdad2de5f335a657189deee0a3aeb301340600..b904e68e9b209421446165b59967885e21608ea9 100644
--- a/Tests/Unit/Core/SimulationResultTest.cpp
+++ b/Tests/Unit/Core/SimulationResultTest.cpp
@@ -6,16 +6,6 @@
 class SimulationResultTest : public ::testing::Test {
 };
 
-TEST_F(SimulationResultTest, initialState)
-{
-    SimulationResult simres;
-
-    SimulationResult other;
-    EXPECT_THROW(other = simres, std::runtime_error);
-
-    EXPECT_THROW(SimulationResult another(other), std::runtime_error);
-}
-
 TEST_F(SimulationResultTest, accessToEmptySimulation)
 {
     const int nx(5), ny(4);