diff --git a/Core/Basics/Algorithms.h b/Core/Basics/Algorithms.h
index 0a9675e622194b1f69837c088f4082e92f040b29..cf52867fe50be2550c42a179e99ec0aee1653b5d 100644
--- a/Core/Basics/Algorithms.h
+++ b/Core/Basics/Algorithms.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_CORE_BASICS_ALGORITHMS_H
 
 #include <algorithm>
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <functional>
 #include <vector>
 
@@ -42,7 +42,7 @@ double max_value(const Iterator& begin, const Iterator& end, const Evaluator& ev
 template <typename Evaluator, typename Iterator>
 double algo::min_value(const Iterator& begin, const Iterator& end, const Evaluator& evaluate)
 {
-    assert(begin != end);
+    ASSERT(begin != end);
     double ret = evaluate(*begin);
     Iterator it = begin;
     while (++it != end)
@@ -53,7 +53,7 @@ double algo::min_value(const Iterator& begin, const Iterator& end, const Evaluat
 template <typename Evaluator, typename Iterator>
 double algo::max_value(const Iterator& begin, const Iterator& end, const Evaluator& evaluate)
 {
-    assert(begin != end);
+    ASSERT(begin != end);
     double ret = evaluate(*begin);
     Iterator it = begin;
     while (++it != end)
diff --git a/Core/InputOutput/TiffHandler.cpp b/Core/InputOutput/TiffHandler.cpp
index ed6cba64c9812280f2c182bd708f03ace38b5edd..b883720400ccdfed14d43054731e255098ba4031 100644
--- a/Core/InputOutput/TiffHandler.cpp
+++ b/Core/InputOutput/TiffHandler.cpp
@@ -61,7 +61,7 @@ void TiffHandler::write(const OutputData<double>& data, std::ostream& output_str
 
 void TiffHandler::read_header()
 {
-    assert(m_tiff);
+    ASSERT(m_tiff);
     uint32 width(0);
     uint32 height(0);
     if (!TIFFGetField(m_tiff, TIFFTAG_IMAGEWIDTH, &width)
@@ -118,9 +118,9 @@ void TiffHandler::read_header()
 
 void TiffHandler::read_data()
 {
-    assert(m_tiff);
+    ASSERT(m_tiff);
 
-    assert(0 == m_bitsPerSample % 8);
+    ASSERT(0 == m_bitsPerSample % 8);
     uint16 bytesPerSample = m_bitsPerSample / 8;
     tmsize_t buf_size = TIFFScanlineSize(m_tiff);
     tmsize_t expected_size = bytesPerSample * m_width;
@@ -197,7 +197,7 @@ void TiffHandler::read_data()
 
 void TiffHandler::write_header()
 {
-    assert(m_tiff);
+    ASSERT(m_tiff);
     TIFFSetField(m_tiff, TIFFTAG_ARTIST, "BornAgain.IOFactory");
     TIFFSetField(m_tiff, TIFFTAG_DATETIME, SysUtils::getCurrentDateAndTime().c_str());
     TIFFSetField(m_tiff, TIFFTAG_IMAGEDESCRIPTION,
@@ -258,7 +258,7 @@ void TiffHandler::close()
 
 void TiffHandler::create_output_data()
 {
-    assert(m_tiff);
+    ASSERT(m_tiff);
     m_data.reset(new OutputData<double>);
     m_data->addAxis("x", m_width, 0.0, double(m_width));
     m_data->addAxis("y", m_height, 0.0, double(m_height));
diff --git a/Core/Instrument/ChiSquaredModule.cpp b/Core/Instrument/ChiSquaredModule.cpp
index ac0ad9420e487f47847d120beea9b88639a1d467..48b7ef7c3faf58ce2c18ca5724120e199183c96a 100644
--- a/Core/Instrument/ChiSquaredModule.cpp
+++ b/Core/Instrument/ChiSquaredModule.cpp
@@ -15,7 +15,7 @@
 #include "Core/Instrument/ChiSquaredModule.h"
 #include "Core/Instrument/IIntensityFunction.h"
 #include "Core/Instrument/VarianceFunctions.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <cmath>
 #include <limits>
 
diff --git a/Core/Instrument/ConvolutionDetectorResolution.cpp b/Core/Instrument/ConvolutionDetectorResolution.cpp
index b926d22712a41304f4e97492cbe092d73577e216..b852f7b43059c3a4b42e4a5da92553d0987909ce 100644
--- a/Core/Instrument/ConvolutionDetectorResolution.cpp
+++ b/Core/Instrument/ConvolutionDetectorResolution.cpp
@@ -186,7 +186,7 @@ double ConvolutionDetectorResolution::getIntegratedPDF1d(double x, double step)
     double halfstep = step / 2.0;
     double xmin = x - halfstep;
     double xmax = x + halfstep;
-    assert(m_res_function_1d != nullptr);
+    ASSERT(m_res_function_1d != nullptr);
     return m_res_function_1d(xmax) - m_res_function_1d(xmin);
 }
 
diff --git a/Core/Instrument/DetectorMask.cpp b/Core/Instrument/DetectorMask.cpp
index 845cf07f7d3ffc7533c9ad0e10e8fbc1034d13d9..312c1b5e0f936a018b11549ee805970e52ba90a5 100644
--- a/Core/Instrument/DetectorMask.cpp
+++ b/Core/Instrument/DetectorMask.cpp
@@ -52,7 +52,7 @@ void DetectorMask::initMaskData(const IDetector2D& detector)
         throw Exceptions::RuntimeErrorException("DetectorMask::initMaskData() -> Error. Attempt "
                                                 "to add masks to uninitialized detector.");
 
-    assert(m_shapes.size() == m_mask_of_shape.size());
+    ASSERT(m_shapes.size() == m_mask_of_shape.size());
     m_mask_data.clear();
 
     for (size_t dim = 0; dim < detector.dimension(); ++dim) {
@@ -65,7 +65,7 @@ void DetectorMask::initMaskData(const IDetector2D& detector)
 
 void DetectorMask::initMaskData(const OutputData<double>& data)
 {
-    assert(m_shapes.size() == m_mask_of_shape.size());
+    ASSERT(m_shapes.size() == m_mask_of_shape.size());
     m_mask_data.clear();
 
     for (size_t dim = 0; dim < data.getRank(); ++dim)
diff --git a/Core/Instrument/OutputData.h b/Core/Instrument/OutputData.h
index bad3a97cede5059a6cea0a2fdf7bf8da7a076ad5..f1ec1855f5c335e294c45e818753daf0b00be6bc 100644
--- a/Core/Instrument/OutputData.h
+++ b/Core/Instrument/OutputData.h
@@ -21,7 +21,7 @@
 #include "Core/Parametrization/ThreadInfo.h"
 #include "Core/Tools/PyObject.h"
 #include "Core/Tools/SafePointerVector.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <sstream>
 
 using std::size_t;
@@ -194,14 +194,14 @@ public:
     //! indexed accessor
     T& operator[](size_t index)
     {
-        assert(mp_ll_data);
+        ASSERT(mp_ll_data);
         return (*mp_ll_data)[index];
     }
 
     //! indexed accessor (const)
     const T& operator[](size_t index) const
     {
-        assert(mp_ll_data);
+        ASSERT(mp_ll_data);
         return (*mp_ll_data)[index];
     }
 
@@ -323,7 +323,7 @@ template <class T> const IAxis& OutputData<T>::getAxis(const std::string& axis_n
 
 template <class T> inline std::vector<size_t> OutputData<T>::getAllSizes() const
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     std::vector<size_t> result;
     for (size_t i = 0; i < getRank(); ++i) {
         int dim = mp_ll_data->getDimensions()[i];
@@ -334,7 +334,7 @@ template <class T> inline std::vector<size_t> OutputData<T>::getAllSizes() const
 
 template <class T> inline std::vector<T> OutputData<T>::getRawDataVector() const
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     std::vector<T> result;
     for (size_t i = 0; i < getAllocatedSize(); ++i)
         result.push_back((*mp_ll_data)[i]);
@@ -355,7 +355,7 @@ template <class T> typename OutputData<T>::const_iterator OutputData<T>::begin()
 
 template <class T> std::vector<int> OutputData<T>::getAxesBinIndices(size_t global_index) const
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     size_t remainder = global_index;
     std::vector<int> result;
     result.resize(mp_ll_data->getRank());
@@ -370,7 +370,7 @@ template <class T> std::vector<int> OutputData<T>::getAxesBinIndices(size_t glob
 template <class T>
 size_t OutputData<T>::getAxisBinIndex(size_t global_index, size_t i_selected_axis) const
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     size_t remainder(global_index);
     for (size_t i = 0; i < mp_ll_data->getRank(); ++i) {
         size_t i_axis = mp_ll_data->getRank() - 1 - i;
@@ -392,7 +392,7 @@ size_t OutputData<T>::getAxisBinIndex(size_t global_index, const std::string& ax
 template <class T>
 size_t OutputData<T>::toGlobalIndex(const std::vector<unsigned>& axes_indices) const
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     if (axes_indices.size() != mp_ll_data->getRank())
         throw Exceptions::LogicErrorException(
             "size_t OutputData<T>::toGlobalIndex() -> "
@@ -417,7 +417,7 @@ size_t OutputData<T>::toGlobalIndex(const std::vector<unsigned>& axes_indices) c
 template <class T>
 size_t OutputData<T>::findGlobalIndex(const std::vector<double>& coordinates) const
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     if (coordinates.size() != mp_ll_data->getRank())
         throw Exceptions::LogicErrorException(
             "OutputData<T>::findClosestIndex() -> "
@@ -466,7 +466,7 @@ Bin1D OutputData<T>::getAxisBin(size_t global_index, const std::string& axis_nam
 
 template <class T> inline T OutputData<T>::totalSum() const
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     return mp_ll_data->getTotalSum();
 }
 
@@ -505,21 +505,21 @@ template <class T> void OutputData<T>::setAxisSizes(size_t rank, int* n_dims)
 
 template <class T> const OutputData<T>& OutputData<T>::operator+=(const OutputData<T>& right)
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     *this->mp_ll_data += *right.mp_ll_data;
     return *this;
 }
 
 template <class T> const OutputData<T>& OutputData<T>::operator-=(const OutputData<T>& right)
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     *this->mp_ll_data -= *right.mp_ll_data;
     return *this;
 }
 
 template <class T> const OutputData<T>& OutputData<T>::operator*=(const OutputData<T>& right)
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     *this->mp_ll_data *= *right.mp_ll_data;
     return *this;
 }
@@ -537,7 +537,7 @@ template <class T> bool OutputData<T>::isInitialized() const
 
 template <class T> const OutputData<T>& OutputData<T>::operator/=(const OutputData<T>& right)
 {
-    assert(mp_ll_data);
+    ASSERT(mp_ll_data);
     *this->mp_ll_data /= *right.mp_ll_data;
     return *this;
 }
diff --git a/Core/Multilayer/SampleProvider.cpp b/Core/Multilayer/SampleProvider.cpp
index 85477c9845c0571fcf95f69bc1cd71186493446f..0fd0fc116643f0b4c4b36e1471e59150a0b04ade 100644
--- a/Core/Multilayer/SampleProvider.cpp
+++ b/Core/Multilayer/SampleProvider.cpp
@@ -14,7 +14,7 @@
 
 #include "Core/Multilayer/SampleProvider.h"
 #include "Core/Multilayer/MultiLayer.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 
 SampleProvider::SampleProvider() {}
 
diff --git a/Core/Parametrization/ParameterPool.cpp b/Core/Parametrization/ParameterPool.cpp
index 66113359cc88eeaebd4f6a8bfaf9e8034210894e..ca50ffdbd2862df0ea1fa4d1bc52113dc76ed4d8 100644
--- a/Core/Parametrization/ParameterPool.cpp
+++ b/Core/Parametrization/ParameterPool.cpp
@@ -18,7 +18,7 @@
 #include "Fit/Tools/RealLimits.h"
 #include "Fit/Tools/StringUtils.h"
 #include <algorithm>
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <iostream>
 #include <sstream>
 #include <stdexcept>
diff --git a/Core/Simulation/DepthProbeSimulation.cpp b/Core/Simulation/DepthProbeSimulation.cpp
index 00a581c1b179bedd4a105fb4b0e13484e3e6bba1..2600f961ac9137d3d8c62f6aefd800ddfbe0c93e 100644
--- a/Core/Simulation/DepthProbeSimulation.cpp
+++ b/Core/Simulation/DepthProbeSimulation.cpp
@@ -188,7 +188,7 @@ std::vector<DepthProbeElement> DepthProbeSimulation::generateSimulationElements(
 std::unique_ptr<IComputation>
 DepthProbeSimulation::generateSingleThreadedComputation(size_t start, size_t n_elements)
 {
-    assert(start < m_sim_elements.size() && start + n_elements <= m_sim_elements.size());
+    ASSERT(start < m_sim_elements.size() && start + n_elements <= m_sim_elements.size());
     const auto& begin = m_sim_elements.begin() + static_cast<long>(start);
     return std::make_unique<DepthProbeComputation>(*sample(), m_options, m_progress, begin,
                                                    begin + static_cast<long>(n_elements));
diff --git a/Core/Simulation/Simulation.cpp b/Core/Simulation/Simulation.cpp
index 5b53bfe2569e6f7c9c10052b9e5d3c8f417992c2..cbc62e631af2b7f4e85624ff6d6bffa6460844b2 100644
--- a/Core/Simulation/Simulation.cpp
+++ b/Core/Simulation/Simulation.cpp
@@ -219,7 +219,7 @@ void Simulation::runSingleSimulation(size_t batch_start, size_t batch_size, doub
     initSimulationElementVector();
 
     const size_t n_threads = m_options.getNumberOfThreads();
-    assert(n_threads > 0);
+    ASSERT(n_threads > 0);
 
     std::vector<std::unique_ptr<IComputation>> computations;
 
@@ -248,8 +248,8 @@ namespace
 {
 size_t getIndexStep(size_t total_size, size_t n_handlers)
 {
-    assert(total_size > 0);
-    assert(n_handlers > 0);
+    ASSERT(total_size > 0);
+    ASSERT(n_handlers > 0);
     size_t result = total_size / n_handlers;
     return total_size % n_handlers ? ++result : result;
 }
@@ -274,7 +274,7 @@ size_t getNumberOfElements(size_t n_handlers, size_t current_handler, size_t n_e
 
 void runComputations(std::vector<std::unique_ptr<IComputation>> computations)
 {
-    assert(!computations.empty());
+    ASSERT(!computations.empty());
 
     if (computations.size() == 1) { // Running computation in current thread
         auto& computation = computations.front();
diff --git a/Core/Simulation/Simulation2D.cpp b/Core/Simulation/Simulation2D.cpp
index 32a2b36d05c36e4b2690a5c14ef1540390526c75..f826f0e4cbc2d1d861e0323d71887c8f71c827b0 100644
--- a/Core/Simulation/Simulation2D.cpp
+++ b/Core/Simulation/Simulation2D.cpp
@@ -94,7 +94,7 @@ void Simulation2D::setDetector(const IDetector2D& detector)
 std::unique_ptr<IComputation> Simulation2D::generateSingleThreadedComputation(size_t start,
                                                                               size_t n_elements)
 {
-    assert(start < m_sim_elements.size() && start + n_elements <= m_sim_elements.size());
+    ASSERT(start < m_sim_elements.size() && start + n_elements <= m_sim_elements.size());
     const auto& begin = m_sim_elements.begin() + static_cast<long>(start);
     return std::make_unique<DWBAComputation>(*sample(), m_options, m_progress, begin,
                                              begin + static_cast<long>(n_elements));
@@ -165,7 +165,7 @@ void Simulation2D::addDataToCache(double weight)
 
 void Simulation2D::moveDataFromCache()
 {
-    assert(!m_cache.empty());
+    ASSERT(!m_cache.empty());
     if (!m_cache.empty()) {
         for (unsigned i = 0; i < m_sim_elements.size(); i++) {
             m_sim_elements[i].setIntensity(m_cache[i]);
diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp
index 3ff3b6f927ef39a851e7efa6f740e13365d8045b..b3f4192131a11a5fc054da2f17809ff812fdff8b 100644
--- a/Core/Simulation/SpecularSimulation.cpp
+++ b/Core/Simulation/SpecularSimulation.cpp
@@ -161,7 +161,7 @@ SpecularSimulation::generateSimulationElements(const Beam& beam)
 std::unique_ptr<IComputation>
 SpecularSimulation::generateSingleThreadedComputation(size_t start, size_t n_elements)
 {
-    assert(start < m_sim_elements.size() && start + n_elements <= m_sim_elements.size());
+    ASSERT(start < m_sim_elements.size() && start + n_elements <= m_sim_elements.size());
     const auto& begin = m_sim_elements.begin() + static_cast<long>(start);
     return std::make_unique<SpecularComputation>(*sample(), m_options, m_progress, begin,
                                                  begin + static_cast<long>(n_elements));
diff --git a/Core/Tools/FileSystemUtils.cpp b/Core/Tools/FileSystemUtils.cpp
index 84706b72ec6eac6064bc98a3da890d4210fe4bde..1d98496cfebf9ddc28fa3b5418c4c4067d73dd41 100644
--- a/Core/Tools/FileSystemUtils.cpp
+++ b/Core/Tools/FileSystemUtils.cpp
@@ -15,7 +15,7 @@
 #include "Core/Tools/FileSystemUtils.h"
 #include "Core/Basics/Exceptions.h"
 #include <boost/filesystem.hpp>
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <codecvt>
 #include <locale>
 #include <regex>
@@ -71,8 +71,8 @@ std::vector<std::string> FileSystemUtils::filesInDirectory(const std::string& di
 
 std::string FileSystemUtils::jointPath(const std::string& spath1, const std::string& spath2)
 {
-    assert(spath1 != "");
-    assert(spath2 != "");
+    ASSERT(spath1 != "");
+    ASSERT(spath2 != "");
     boost::filesystem::path path1(spath1);
     boost::filesystem::path path2(spath2);
     boost::filesystem::path full_path = path1 / path2;
diff --git a/Core/Tools/OrderedMap.h b/Core/Tools/OrderedMap.h
index 1f5e8751e38d4e70e64a89cbd0f0bed97c93e6a7..8926bda95e55b0062fda4f1ea9eb6b4463d625c9 100644
--- a/Core/Tools/OrderedMap.h
+++ b/Core/Tools/OrderedMap.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_TOOLS_ORDEREDMAP_H
 #define BORNAGAIN_CORE_TOOLS_ORDEREDMAP_H
 
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <iostream>
 #include <list>
 #include <stdexcept>
@@ -50,7 +50,7 @@ public:
 
     size_t size()
     {
-        assert(m_list.size() == m_map.size());
+        ASSERT(m_list.size() == m_map.size());
         return m_list.size();
     }
 
diff --git a/Fit/RootAdapter/ResidualFunctionAdapter.cpp b/Fit/RootAdapter/ResidualFunctionAdapter.cpp
index a20266b132f8d15b24f2e5cbef4aa2c4b23e7288..4c492411a5c6276d0a7796c49afd6f08461077d6 100644
--- a/Fit/RootAdapter/ResidualFunctionAdapter.cpp
+++ b/Fit/RootAdapter/ResidualFunctionAdapter.cpp
@@ -14,7 +14,7 @@
 
 #include "Fit/RootAdapter/ResidualFunctionAdapter.h"
 #include "Fit/RootAdapter/RootResidualFunction.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <sstream>
 
 namespace
diff --git a/Fit/TestEngine/IFactory.h b/Fit/TestEngine/IFactory.h
index 8b6cd621b11529c5f2e1dfffc12b33ba544f5ece..13eb205e8bbcce36133653e43818717f8811d807 100644
--- a/Fit/TestEngine/IFactory.h
+++ b/Fit/TestEngine/IFactory.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_FIT_TESTENGINE_IFACTORY_H
 #define BORNAGAIN_FIT_TESTENGINE_IFACTORY_H
 
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <functional>
 #include <iostream> // debug
 #include <map>
@@ -38,7 +38,7 @@ public:
     AbstractProduct* createItem(const Key& item_key) const
     {
         auto it = m_callbacks.find(item_key);
-        assert(it != m_callbacks.end());
+        ASSERT(it != m_callbacks.end());
         return (it->second)();
     }
 
@@ -52,7 +52,7 @@ public:
     //! Registers object's creation function
     bool registerItem(const Key& item_key, CreateItemCallback CreateFn)
     {
-        assert(m_callbacks.find(item_key) == m_callbacks.end());
+        ASSERT(m_callbacks.find(item_key) == m_callbacks.end());
         return m_callbacks.insert(make_pair(item_key, CreateFn)).second;
     }
 
diff --git a/GUI/ba3d/model/geometry.cpp b/GUI/ba3d/model/geometry.cpp
index 4363a03d7aa40bf653b0a725a8f46d8ade37a30b..e35c602b6762700c8ca479b6d1587088ce65adfc 100644
--- a/GUI/ba3d/model/geometry.cpp
+++ b/GUI/ba3d/model/geometry.cpp
@@ -49,7 +49,7 @@ void Geometry::Vertices::addQuad(const Vertices& vs, unsigned i1, unsigned i2, u
 
 void Geometry::Vertices::addStrip(const Vertices& vs, const Indices& is)
 {
-    Q_ASSERT(is.size() >= 3); // at least one triangle
+    ASSERT(is.size() >= 3); // at least one triangle
     for (unsigned i = 0; i + 2 < is.size(); ++i)
         if (i % 2)
             addTriangle(vs.at(is.at(i)), vs.at(is.at(1 + i)), vs.at(is.at(2 + i)));
@@ -59,7 +59,7 @@ void Geometry::Vertices::addStrip(const Vertices& vs, const Indices& is)
 
 void Geometry::Vertices::addFan(const Vertices& vs, const Indices& is)
 {
-    Q_ASSERT(is.size() >= 3); // at least one triangle
+    ASSERT(is.size() >= 3); // at least one triangle
     auto& ctr = vs.at(is.at(0));
     for (unsigned i = 0; i + 2 < is.size(); ++i)
         addTriangle(ctr, vs.at(is.at(1 + i)), vs.at(is.at(2 + i)));
@@ -111,8 +111,8 @@ Geometry::~Geometry()
 Geometry::Mesh Geometry::makeMesh(const Vertices& vs, Vertices const* ns)
 {
     int nv = vs.count();
-    Q_ASSERT(0 == nv % 3);
-    Q_ASSERT(!ns || nv == ns->count()); // if normals not given, will be computed
+    ASSERT(0 == nv % 3);
+    ASSERT(!ns || nv == ns->count()); // if normals not given, will be computed
 
     Mesh mesh(nv);
 
diff --git a/GUI/ba3d/model/geometry/box.cpp b/GUI/ba3d/model/geometry/box.cpp
index 915dfc99b125ae5c54c3b6b7a75979e48ca767cc..7fdea5816326ffd1597badf7868e3f23ddd85ac4 100644
--- a/GUI/ba3d/model/geometry/box.cpp
+++ b/GUI/ba3d/model/geometry/box.cpp
@@ -28,7 +28,7 @@ Geometry::Mesh Geometry::meshBox()
             for (float z : {-D, +D})
                 vs_.append(Vector3D(x, y, z));
 
-    Q_ASSERT(8 == vs_.count());
+    ASSERT(8 == vs_.count());
 
     Vertices vs;
     vs.reserve(36);
@@ -40,7 +40,7 @@ Geometry::Mesh Geometry::meshBox()
     vs.addQuad(vs_, 0, 4, 5, 1);
     vs.addQuad(vs_, 2, 3, 7, 6);
 
-    Q_ASSERT(36 == vs.count());
+    ASSERT(36 == vs.count());
 
     return makeMesh(vs);
 }
diff --git a/GUI/ba3d/model/geometry/column.cpp b/GUI/ba3d/model/geometry/column.cpp
index 549dd6d229dd8e72d6df06cf0757a0270e7c9121..c9d1910af92f2f6d6d695fe2ed561593cd7b6c6a 100644
--- a/GUI/ba3d/model/geometry/column.cpp
+++ b/GUI/ba3d/model/geometry/column.cpp
@@ -69,8 +69,8 @@ Geometry::Mesh Geometry::meshColumn(float ratio_Rt_Rb, float numSides)
         }
     }
 
-    Q_ASSERT(vs.count() == nv);
-    Q_ASSERT(!smooth || ns.count() == nv);
+    ASSERT(vs.count() == nv);
+    ASSERT(!smooth || ns.count() == nv);
 
     return makeMesh(vs, smooth ? &ns : nullptr);
 }
diff --git a/GUI/ba3d/model/geometry/cuboctahedron.cpp b/GUI/ba3d/model/geometry/cuboctahedron.cpp
index 1885597c32cb08f41fdd554e6097924b0a4104aa..227a60fad94e3a1373acf98dd8dc0486fe06da88 100644
--- a/GUI/ba3d/model/geometry/cuboctahedron.cpp
+++ b/GUI/ba3d/model/geometry/cuboctahedron.cpp
@@ -26,8 +26,8 @@ Geometry::Mesh Geometry::meshCuboctahedron(float rH, float alpha, float H)
 
     // H here is the normalized height of the cuboctahedron i.e. H/L (see particles.cpp)
 
-    Q_ASSERT(alpha <= float(M_PI_2));
-    Q_ASSERT(rH >= 0);
+    ASSERT(alpha <= float(M_PI_2));
+    ASSERT(rH >= 0);
 
     float const D = .5f, t = tanf(float(M_PI_2) - alpha);
     float const Db = D - t * H, Dt = D - t * rH * H;
@@ -43,7 +43,7 @@ Geometry::Mesh Geometry::meshCuboctahedron(float rH, float alpha, float H)
                 vs_.append(Vector3D(x * di, y * di, z[i]));
             }
 
-    Q_ASSERT(12 == vs_.count());
+    ASSERT(12 == vs_.count());
 
     Vertices vs;
     vs.reserve(60);
@@ -59,7 +59,7 @@ Geometry::Mesh Geometry::meshCuboctahedron(float rH, float alpha, float H)
     vs.addQuad(vs_, 7, 11, 10, 6);
     vs.addQuad(vs_, 6, 10, 8, 4);
 
-    Q_ASSERT(60 == vs.count());
+    ASSERT(60 == vs.count());
 
     return makeMesh(vs);
 }
diff --git a/GUI/ba3d/model/geometry/dodecahedron.cpp b/GUI/ba3d/model/geometry/dodecahedron.cpp
index 3a5fd6c2619b79f390ffc649c07bec6f9e7030da..46211dbbca0f4b91ae1405033a6c8cc1bf713589 100644
--- a/GUI/ba3d/model/geometry/dodecahedron.cpp
+++ b/GUI/ba3d/model/geometry/dodecahedron.cpp
@@ -37,7 +37,7 @@ Geometry::Mesh Geometry::meshDodecahedron()
             vs_.append(Vector3D(g, 0, g1));
         }
 
-    Q_ASSERT(20 == vs_.count());
+    ASSERT(20 == vs_.count());
 
     // scale to circumscribed sphere
     float const F = .5f / vs_.at(0).length();
@@ -73,7 +73,7 @@ Geometry::Mesh Geometry::meshDodecahedron()
     add5(4, 13, 19, 5, 15);
     add5(4, 8, 14, 6, 13); // top
 
-    Q_ASSERT(144 == vs.count());
+    ASSERT(144 == vs.count());
 
     return makeMesh(vs);
 }
diff --git a/GUI/ba3d/model/geometry/icosahedron.cpp b/GUI/ba3d/model/geometry/icosahedron.cpp
index 17c5212c55a48ae522316f46b8bb4354e67f151f..9205ebffb0e4125202a79a88af99efbbf02ff4cb 100644
--- a/GUI/ba3d/model/geometry/icosahedron.cpp
+++ b/GUI/ba3d/model/geometry/icosahedron.cpp
@@ -41,7 +41,7 @@ Geometry::Mesh Geometry::meshIcosahedron()
     vs_[10] = Vector3D(-0.28867513459481281f * E, 0.5f * E, 1.5115226281523415f * E);
     vs_[11] = Vector3D(-0.28867513459481281f * E, -0.5f * E, 1.5115226281523415f * E);
 
-    Q_ASSERT(12 == vs_.count());
+    ASSERT(12 == vs_.count());
 
     Vertices vs;
     vs.reserve(60);
@@ -72,7 +72,7 @@ Geometry::Mesh Geometry::meshIcosahedron()
     vs.addTriangle(vs_[9], vs_[7], vs_[10]);
     vs.addTriangle(vs_[9], vs_[10], vs_[11]);
 
-    Q_ASSERT(60 == vs.count());
+    ASSERT(60 == vs.count());
 
     return makeMesh(vs);
 }
diff --git a/GUI/ba3d/model/geometry/plane.cpp b/GUI/ba3d/model/geometry/plane.cpp
index 7f75c0c01f088c80f58598b79e3b1c936a0157f4..c61752a2878fbd544d318c50ec04553ab6019b1a 100644
--- a/GUI/ba3d/model/geometry/plane.cpp
+++ b/GUI/ba3d/model/geometry/plane.cpp
@@ -25,7 +25,7 @@ Geometry::Mesh Geometry::meshPlane()
     vs.reserve(4);
     vs.addQuad({+D, +D, 0}, {-D, +D, 0}, {-D, -D, 0}, {+D, -D, 0});
 
-    Q_ASSERT(4 == vs.count());
+    ASSERT(4 == vs.count());
 
     return makeMesh(vs);
 }
diff --git a/GUI/ba3d/model/geometry/ripple.cpp b/GUI/ba3d/model/geometry/ripple.cpp
index c9606198049c514ba3c263a991ad10862a5b4be6..3ffba0ddeb107fb0309c27c6a2019bc7b4727c5b 100644
--- a/GUI/ba3d/model/geometry/ripple.cpp
+++ b/GUI/ba3d/model/geometry/ripple.cpp
@@ -70,7 +70,7 @@ Geometry::Mesh Geometry::meshRipple(float numSides, float ratio_asymmetry_W)
         vs.addQuad(vfront.at(s2), vfront.at(s1), vback.at(s1), vback.at(s2)); // side
     }
 
-    Q_ASSERT(vs.count() == nv);
+    ASSERT(vs.count() == nv);
 
     return makeMesh(vs, nullptr); // normals not calculated here and left for makeMesh to calculate
 }
diff --git a/GUI/ba3d/model/geometry/sphere.cpp b/GUI/ba3d/model/geometry/sphere.cpp
index 7cfc77d3377ea5ef742ae2110847a7e43013d27a..12ac8acf5262e08f2f9420a47baa3dbb5b1d0da8 100644
--- a/GUI/ba3d/model/geometry/sphere.cpp
+++ b/GUI/ba3d/model/geometry/sphere.cpp
@@ -25,7 +25,7 @@ Geometry::Mesh Geometry::meshSphere(float cut, float baseShift, float removedTop
     if (1 <= cut)
         return Mesh();
     cut = qMax(0.f, cut);
-    Q_ASSERT(0 <= cut && cut < 1);
+    ASSERT(0 <= cut && cut < 1);
 
     // 'rings' are the # of horizontal cross-sections ranging from bottom to top of the sphere
     // 'slices' are the # of vertices in a given ring
@@ -50,8 +50,8 @@ Geometry::Mesh Geometry::meshSphere(float cut, float baseShift, float removedTop
     phRge = maxPh - minPh;
     rings = qMax(2, qCeil(qreal(RINGS * phRge) / M_PI)); // At least 2 rings (incl. lowest ring)
 
-    Q_ASSERT(qAbs(minPh) < float(M_PI_2));
-    Q_ASSERT(2 <= rings && 2 <= slices);
+    ASSERT(qAbs(minPh) < float(M_PI_2));
+    ASSERT(2 <= rings && 2 <= slices);
 
     // meshes of vertices and normals, without poles, _[ring][slice]
     QVector<Vertices> vs_(rings), ns_(rings);
diff --git a/GUI/ba3d/model/geometry/truncbox.cpp b/GUI/ba3d/model/geometry/truncbox.cpp
index 8a4a4a3661dd5b22d74f91fcfbb66c69d54327b8..ece32b7b6436b26ab92c1ded80a2f37294692061 100644
--- a/GUI/ba3d/model/geometry/truncbox.cpp
+++ b/GUI/ba3d/model/geometry/truncbox.cpp
@@ -63,7 +63,7 @@ Geometry::Mesh Geometry::meshTruncBox(float tD)
             for (int z : {-1, +1})
                 corner(x, y, z);
 
-    Q_ASSERT(150 == vs.count());
+    ASSERT(150 == vs.count());
 
     return makeMesh(vs);
 }
diff --git a/GUI/ba3d/model/model.cpp b/GUI/ba3d/model/model.cpp
index 40aac8c97ada7cc660f879c55a62428d6144d551..855ce6711e5b0b1b93b5f27b6cb650a3648a67f6 100644
--- a/GUI/ba3d/model/model.cpp
+++ b/GUI/ba3d/model/model.cpp
@@ -118,16 +118,16 @@ Particles::Particle* Model::newParticle(Particles::EShape k, float R)
 
 void Model::add(Object* o)
 {
-    Q_ASSERT(o);
-    Q_ASSERT(!o->model);
+    ASSERT(o);
+    ASSERT(!o->model);
     o->model = this;
     objects.append(o);
 }
 
 void Model::addBlend(Object* o)
 {
-    Q_ASSERT(o);
-    Q_ASSERT(!o->model);
+    ASSERT(o);
+    ASSERT(!o->model);
     o->model = this;
     objectsBlend.append(o);
 }
@@ -140,7 +140,7 @@ void Model::rem(Object* o)
     else if ((i = objectsBlend.indexOf(o)) >= 0)
         objectsBlend.remove(i);
     else
-        Q_ASSERT(false); // object not found, should not happen, bad caller!
+        ASSERT(false); // object not found, should not happen, bad caller!
 
     o->releaseGeometry();
     o->model = nullptr;
diff --git a/GUI/ba3d/view/canvas.cpp b/GUI/ba3d/view/canvas.cpp
index 4edbdbfd161fb4bc726edd484cd826f69b2c7753..aa104a13c143ab19b2d7fac6ece8fece873cfae5 100644
--- a/GUI/ba3d/view/canvas.cpp
+++ b/GUI/ba3d/view/canvas.cpp
@@ -281,7 +281,7 @@ void Canvas::draw(QColor const& color, QMatrix4x4 const& mat, Geometry const& ge
     else
         buf = *it;
 
-    Q_ASSERT(program);
+    ASSERT(program);
     program->set(color);
     program->set(mat);
     buf->draw();
diff --git a/GUI/coregui/Models/ApplicationModels.cpp b/GUI/coregui/Models/ApplicationModels.cpp
index 9bd5345631bed22ef018d7f06dceffe986fba561..512b1eb7ea80d7b6546aaf6375444832bed05aa0 100644
--- a/GUI/coregui/Models/ApplicationModels.cpp
+++ b/GUI/coregui/Models/ApplicationModels.cpp
@@ -130,7 +130,7 @@ void ApplicationModels::createMaterialModel()
 
 void ApplicationModels::createSampleModel()
 {
-    Q_ASSERT(m_materialModel);
+    ASSERT(m_materialModel);
     delete m_sampleModel;
     m_sampleModel = new SampleModel(this);
     connectModel(m_sampleModel);
@@ -225,7 +225,7 @@ QList<SessionModel*> ApplicationModels::modelList()
 
 QVector<SessionItem*> ApplicationModels::nonXMLData() const
 {
-    Q_ASSERT(m_realDataModel && m_jobModel && m_instrumentModel);
+    ASSERT(m_realDataModel && m_jobModel && m_instrumentModel);
     return QVector<SessionItem*>() << m_realDataModel->nonXMLData() << m_jobModel->nonXMLData()
                                    << m_instrumentModel->nonXMLData();
 }
diff --git a/GUI/coregui/Models/BeamDistributionItem.cpp b/GUI/coregui/Models/BeamDistributionItem.cpp
index 72446ecb02f4c15e72f208132f70fcef5829dec7..2ad4dae82eab0bb537ed8bd22012d624f09a98ce 100644
--- a/GUI/coregui/Models/BeamDistributionItem.cpp
+++ b/GUI/coregui/Models/BeamDistributionItem.cpp
@@ -51,7 +51,7 @@ BeamDistributionItem::getParameterDistributionForName(const std::string& paramet
 
             RealLimitsItem* limitsItem = dynamic_cast<RealLimitsItem*>(
                 distributionItem->getGroupItem(DistributionItem::P_LIMITS));
-            Q_ASSERT(limitsItem);
+            ASSERT(limitsItem);
 
             RealLimits limits = limitsItem->createRealLimits(scaleFactor());
 
@@ -67,7 +67,7 @@ BeamDistributionItem::getParameterDistributionForName(const std::string& paramet
 void BeamDistributionItem::initDistributionItem(bool show_mean)
 {
     GroupItem* groupItem = dynamic_cast<GroupItem*>(getItem(P_DISTRIBUTION));
-    Q_ASSERT(groupItem);
+    ASSERT(groupItem);
 
     SessionItem* distributionNone = nullptr;
     for (auto item : groupItem->getItems(GroupItem::T_ITEMS)) {
@@ -119,7 +119,7 @@ void BeamDistributionItem::resetToValue(double value)
 {
     SessionItem* distributionItem =
         setGroupProperty(BeamDistributionItem::P_DISTRIBUTION, "DistributionNone");
-    Q_ASSERT(distributionItem);
+    ASSERT(distributionItem);
     distributionItem->setItemValue(DistributionNoneItem::P_MEAN, value);
 }
 
@@ -133,7 +133,7 @@ double BeamDistributionItem::scaleFactor() const
 
 void BeamDistributionItem::register_distribution_group(const QString& group_type)
 {
-    Q_ASSERT(group_type == "Distribution extended group"
+    ASSERT(group_type == "Distribution extended group"
              || group_type == "Symmetric distribution group");
     addGroupProperty(P_DISTRIBUTION, group_type);
 }
diff --git a/GUI/coregui/Models/BeamItems.cpp b/GUI/coregui/Models/BeamItems.cpp
index 614aa117053609332e996db25808775047acfde4..24087d373d49d8bccf3a916eec7984c0aa30d858 100644
--- a/GUI/coregui/Models/BeamItems.cpp
+++ b/GUI/coregui/Models/BeamItems.cpp
@@ -79,28 +79,28 @@ double BeamItem::getWavelength() const
 void BeamItem::setWavelength(double value)
 {
     auto beam_wavelength = dynamic_cast<BeamWavelengthItem*>(getItem(P_WAVELENGTH));
-    Q_ASSERT(beam_wavelength);
+    ASSERT(beam_wavelength);
     beam_wavelength->resetToValue(value);
 }
 
 void BeamItem::setInclinationAngle(double value)
 {
     auto angleItem = dynamic_cast<BeamDistributionItem*>(getItem(P_INCLINATION_ANGLE));
-    Q_ASSERT(angleItem);
+    ASSERT(angleItem);
     angleItem->resetToValue(value);
 }
 
 double BeamItem::getAzimuthalAngle() const
 {
     const auto inclination = dynamic_cast<BeamAzimuthalAngleItem*>(getItem(P_AZIMUTHAL_ANGLE));
-    Q_ASSERT(inclination);
+    ASSERT(inclination);
     return inclination->azimuthalAngle();
 }
 
 void BeamItem::setAzimuthalAngle(double value)
 {
     auto angleItem = dynamic_cast<BeamDistributionItem*>(getItem(P_AZIMUTHAL_ANGLE));
-    Q_ASSERT(angleItem);
+    ASSERT(angleItem);
     angleItem->resetToValue(value);
 }
 
@@ -171,7 +171,7 @@ double SpecularBeamItem::getInclinationAngle() const
 
 void SpecularBeamItem::setInclinationAngle(double value)
 {
-    Q_ASSERT(value == 0.0);
+    ASSERT(value == 0.0);
     value = 0.0;
     BeamItem::setInclinationAngle(value);
 }
@@ -239,7 +239,7 @@ GISASBeamItem::~GISASBeamItem() = default;
 double GISASBeamItem::getInclinationAngle() const
 {
     const auto inclination = dynamic_cast<BeamInclinationAngleItem*>(getItem(P_INCLINATION_ANGLE));
-    Q_ASSERT(inclination);
+    ASSERT(inclination);
     return inclination->inclinationAngle();
 }
 
diff --git a/GUI/coregui/Models/ComboProperty.cpp b/GUI/coregui/Models/ComboProperty.cpp
index d36a2013876421aa109caf0f3fd268293ee25600..5e7cbd769ef5cbc5f340af1c838be58622c28973 100644
--- a/GUI/coregui/Models/ComboProperty.cpp
+++ b/GUI/coregui/Models/ComboProperty.cpp
@@ -58,7 +58,7 @@ QStringList ComboProperty::getValues() const
 
 void ComboProperty::setValues(const QStringList& values)
 {
-    Q_ASSERT(values.size());
+    ASSERT(values.size());
     QString current = getValue();
     m_values = values;
     setCurrentIndex(m_values.contains(current) ? m_values.indexOf(current) : 0);
diff --git a/GUI/coregui/Models/ComponentProxyModel.cpp b/GUI/coregui/Models/ComponentProxyModel.cpp
index 15654e7eb85649affca800f9fe4c3ed75c4f528d..af4ba24f1bf639acba64ccf2ca9f0bec0085ede1 100644
--- a/GUI/coregui/Models/ComponentProxyModel.cpp
+++ b/GUI/coregui/Models/ComponentProxyModel.cpp
@@ -147,8 +147,8 @@ void ComponentProxyModel::sourceDataChanged(const QModelIndex& topLeft,
                                             const QModelIndex& bottomRight,
                                             const QVector<int>& roles)
 {
-    Q_ASSERT(topLeft.isValid() ? topLeft.model() == sourceModel() : true);
-    Q_ASSERT(bottomRight.isValid() ? bottomRight.model() == sourceModel() : true);
+    ASSERT(topLeft.isValid() ? topLeft.model() == sourceModel() : true);
+    ASSERT(bottomRight.isValid() ? bottomRight.model() == sourceModel() : true);
 
     if (SessionItem* item = m_model->itemForIndex(topLeft)) {
         if (item->modelType() == "GroupProperty")
diff --git a/GUI/coregui/Models/ComponentProxyStrategy.cpp b/GUI/coregui/Models/ComponentProxyStrategy.cpp
index 3b5fc91a095167f05a2750411ad5747e8dbb074f..b5c3c4436b47bc1981948e8ca704b5afe1a4679e 100644
--- a/GUI/coregui/Models/ComponentProxyStrategy.cpp
+++ b/GUI/coregui/Models/ComponentProxyStrategy.cpp
@@ -158,7 +158,7 @@ void ComponentProxyStrategy::processSubGroupItem(SessionItem* item,
 void ComponentProxyStrategy::processDefaultItem(SessionItem* item,
                                                 const QPersistentModelIndex& sourceIndex)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
     if (!item->isVisible())
         return;
 
diff --git a/GUI/coregui/Models/Data1DViewItem.cpp b/GUI/coregui/Models/Data1DViewItem.cpp
index 15d1666c025020534fcef165e0232dc51274aa2f..3435d3f3de5425a63c9847fa471a820c463ab7c4 100644
--- a/GUI/coregui/Models/Data1DViewItem.cpp
+++ b/GUI/coregui/Models/Data1DViewItem.cpp
@@ -223,7 +223,7 @@ BasicAxisItem* Data1DViewItem::xAxisItem()
 const AmplitudeAxisItem* Data1DViewItem::yAxisItem() const
 {
     auto result = dynamic_cast<const AmplitudeAxisItem*>(getItem(P_YAXIS));
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Models/DataItemUtils.cpp b/GUI/coregui/Models/DataItemUtils.cpp
index a4a618af617cdc5c2ab7d6ece9c86c3f49eb241e..c15c98b16ee572ee14580b4e665eb3c52c42574f 100644
--- a/GUI/coregui/Models/DataItemUtils.cpp
+++ b/GUI/coregui/Models/DataItemUtils.cpp
@@ -23,7 +23,7 @@ namespace
 {
 template <class DataItemType> DataItemType* dataItem(SessionItem* parent)
 {
-    assert(parent && "Assertion failed in DataItemUtils::dataItem: nullptr passed.");
+    ASSERT(parent && "Assertion failed in DataItemUtils::dataItem: nullptr passed.");
 
     if (parent->modelType() == "JobItem")
         return dynamic_cast<DataItemType*>(parent->getItem(JobItem::T_OUTPUT));
diff --git a/GUI/coregui/Models/DataPropertyContainer.cpp b/GUI/coregui/Models/DataPropertyContainer.cpp
index 632d636ec3e42ceb0e28583bb1cf14895feb5733..74d3075b3189b322c6ecff1f8b9e6e2d60474cbb 100644
--- a/GUI/coregui/Models/DataPropertyContainer.cpp
+++ b/GUI/coregui/Models/DataPropertyContainer.cpp
@@ -40,7 +40,7 @@ Data1DProperties* DataPropertyContainer::propertyItem(size_t i) const
     if (children.empty())
         return nullptr;
     auto property_item = dynamic_cast<Data1DProperties*>(children[static_cast<int>(i)]);
-    assert(property_item);
+    ASSERT(property_item);
     return property_item;
 }
 
@@ -76,7 +76,7 @@ std::vector<DataItem*> DataPropertyContainer::dataItems()
     std::transform(items.begin(), items.end(), std::back_inserter(result),
                    [](Data1DProperties* item) {
                        auto data_item = item->dataItem();
-                       assert(data_item);
+                       ASSERT(data_item);
                        return data_item;
                    });
     return result;
diff --git a/GUI/coregui/Models/DataViewUtils.cpp b/GUI/coregui/Models/DataViewUtils.cpp
index b8e2de3e7c0d8eae1327c6187b03061511571287..5c553bb197ba96689ecc443195124fb992a7fce4 100644
--- a/GUI/coregui/Models/DataViewUtils.cpp
+++ b/GUI/coregui/Models/DataViewUtils.cpp
@@ -26,7 +26,7 @@ namespace
 std::unique_ptr<IUnitConverter> getConverter(Data1DViewItem* view_item)
 {
     auto job_item = view_item->jobItem();
-    assert(job_item->instrumentItem());
+    ASSERT(job_item->instrumentItem());
 
     return DomainObjectBuilder::createUnitConverter(job_item->instrumentItem());
 }
diff --git a/GUI/coregui/Models/DomainObjectBuilder.cpp b/GUI/coregui/Models/DomainObjectBuilder.cpp
index 8d6a60cb54c53c52c3c3a6a4a6ac02c7156a8066..c1a9017fc8445219a9330615f238688d26fe1299 100644
--- a/GUI/coregui/Models/DomainObjectBuilder.cpp
+++ b/GUI/coregui/Models/DomainObjectBuilder.cpp
@@ -39,7 +39,7 @@ std::unique_ptr<MultiLayer> DomainObjectBuilder::buildMultiLayer(const SessionIt
         if (children[i]->modelType() == "Layer") {
             auto P_layer = buildLayer(*children[i]);
             auto roughnessItem = children[i]->getGroupItem(LayerItem::P_ROUGHNESS);
-            Q_ASSERT(roughnessItem);
+            ASSERT(roughnessItem);
             auto P_roughness = TransformToDomain::createLayerRoughness(*roughnessItem);
             if (P_layer) {
                 if (P_roughness) {
@@ -122,7 +122,7 @@ std::unique_ptr<IInterferenceFunction>
 DomainObjectBuilder::buildInterferenceFunction(const SessionItem& item)
 {
     auto iffItem = dynamic_cast<const InterferenceFunctionItem*>(&item);
-    Q_ASSERT(iffItem);
+    ASSERT(iffItem);
     return iffItem->createInterferenceFunction();
 }
 
diff --git a/GUI/coregui/Models/FitParameterHelper.cpp b/GUI/coregui/Models/FitParameterHelper.cpp
index 0041793242a90b4dc68e9f68d48f97e4605b05ac..25273dbe3b950ea959ea3af0fdf2e3e8aecf885b 100644
--- a/GUI/coregui/Models/FitParameterHelper.cpp
+++ b/GUI/coregui/Models/FitParameterHelper.cpp
@@ -25,14 +25,14 @@
 void FitParameterHelper::createFitParameter(FitParameterContainerItem* container,
                                             ParameterItem* parameterItem)
 {
-    Q_ASSERT(container);
-    Q_ASSERT(parameterItem);
+    ASSERT(container);
+    ASSERT(parameterItem);
 
     removeFromFitParameters(container, parameterItem);
 
     FitParameterItem* fitPar = dynamic_cast<FitParameterItem*>(
         container->model()->insertNewItem("FitParameter", container->index()));
-    Q_ASSERT(fitPar);
+    ASSERT(fitPar);
     fitPar->setDisplayName("par");
     SessionItem* link = fitPar->model()->insertNewItem("FitParameterLink", fitPar->index());
     fitPar->setItemValue(FitParameterItem::P_START_VALUE, parameterItem->value());
@@ -65,7 +65,7 @@ void FitParameterHelper::removeFromFitParameters(FitParameterContainerItem* cont
 void FitParameterHelper::addToFitParameter(FitParameterContainerItem* container,
                                            ParameterItem* parameterItem, const QString& fitParName)
 {
-    Q_ASSERT(container);
+    ASSERT(container);
 
     removeFromFitParameters(container, parameterItem);
     for (auto fitPar : container->getItems(FitParameterContainerItem::T_FIT_PARAMETERS)) {
@@ -82,7 +82,7 @@ void FitParameterHelper::addToFitParameter(FitParameterContainerItem* container,
 FitParameterItem* FitParameterHelper::getFitParameterItem(FitParameterContainerItem* container,
                                                           ParameterItem* parameterItem)
 {
-    Q_ASSERT(container);
+    ASSERT(container);
     return container->fitParameterItem(getParameterItemPath(parameterItem));
 }
 
@@ -90,7 +90,7 @@ FitParameterItem* FitParameterHelper::getFitParameterItem(FitParameterContainerI
 
 QStringList FitParameterHelper::getFitParameterNames(FitParameterContainerItem* container)
 {
-    Q_ASSERT(container);
+    ASSERT(container);
     QStringList result;
     for (auto item : container->getItems(FitParameterContainerItem::T_FIT_PARAMETERS)) {
         result.append(item->displayName());
@@ -119,9 +119,9 @@ ParameterItem* FitParameterHelper::getParameterItem(FitParameterContainerItem* c
     while (cur && cur->modelType() != "JobItem") {
         cur = cur->parent();
     }
-    Q_ASSERT(cur && cur->modelType() == "JobItem");
+    ASSERT(cur && cur->modelType() == "JobItem");
     JobItem* jobItem = dynamic_cast<JobItem*>(cur);
-    Q_ASSERT(jobItem);
+    ASSERT(jobItem);
     return dynamic_cast<ParameterItem*>(
         ModelPath::getItemFromPath(link, jobItem->parameterContainerItem()));
 }
diff --git a/GUI/coregui/Models/FitParameterItems.cpp b/GUI/coregui/Models/FitParameterItems.cpp
index 4d7cc4c96a57c479a04c6253c3753529584c1cf0..8db8b1e303ff58397f2cb207a69b6b919ed1cd36 100644
--- a/GUI/coregui/Models/FitParameterItems.cpp
+++ b/GUI/coregui/Models/FitParameterItems.cpp
@@ -204,7 +204,7 @@ void FitParameterItem::setLimitEnabled(const QString& name, bool enabled)
 {
     if (isTag(name)) {
         SessionItem* propertyItem = getItem(name);
-        Q_ASSERT(propertyItem);
+        ASSERT(propertyItem);
         propertyItem->setEnabled(enabled);
         propertyItem->setEditable(enabled);
     }
@@ -276,7 +276,7 @@ bool FitParameterContainerItem::isEmpty()
 void FitParameterContainerItem::setValuesInParameterContainer(
     const QVector<double>& values, ParameterContainerItem* parameterContainer)
 {
-    Q_ASSERT(parameterContainer);
+    ASSERT(parameterContainer);
 
     QVector<SessionItem*> fitPars = getItems(FitParameterContainerItem::T_FIT_PARAMETERS);
 
diff --git a/GUI/coregui/Models/FitParameterProxyModel.cpp b/GUI/coregui/Models/FitParameterProxyModel.cpp
index 5a17cc2fb0d242f446e58b925181214f10fba715..dd8c4380be707039b5038096b9ae3df440a93b06 100644
--- a/GUI/coregui/Models/FitParameterProxyModel.cpp
+++ b/GUI/coregui/Models/FitParameterProxyModel.cpp
@@ -92,7 +92,7 @@ QModelIndex FitParameterProxyModel::index(int row, int column, const QModelIndex
         return QModelIndex();
 
     SessionItem* parent_item = itemForIndex(parent);
-    Q_ASSERT(parent_item);
+    ASSERT(parent_item);
 
     if (parent_item->modelType() == "FitParameterContainer") {
         if (SessionItem* fitParItem = parent_item->childAt(row)) {
@@ -261,16 +261,16 @@ bool FitParameterProxyModel::dropMimeData(const QMimeData* data, Qt::DropAction
 
     if (parent.isValid()) {
         if (SessionItem* fitParItem = itemForIndex(parent)) {
-            Q_ASSERT(fitParItem->modelType() == "FitParameter");
+            ASSERT(fitParItem->modelType() == "FitParameter");
             ParameterItem* parItem = FitParameterHelper::getParameterItem(
                 m_root_item, QString::fromLatin1(data->data(SessionXML::LinkMimeType)));
-            Q_ASSERT(parItem);
+            ASSERT(parItem);
             FitParameterHelper::addToFitParameter(m_root_item, parItem, fitParItem->displayName());
         }
     } else {
         ParameterItem* parItem = FitParameterHelper::getParameterItem(
             m_root_item, QString::fromLatin1(data->data(SessionXML::LinkMimeType)));
-        Q_ASSERT(parItem);
+        ASSERT(parItem);
         FitParameterHelper::createFitParameter(m_root_item, parItem);
     }
     return true;
@@ -294,7 +294,7 @@ void FitParameterProxyModel::onSourceDataChanged(const QModelIndex& topLeft,
     Q_UNUSED(bottomRight);
 
     JobModel* sourceModel = qobject_cast<JobModel*>(sender());
-    Q_ASSERT(sourceModel);
+    ASSERT(sourceModel);
     SessionItem* sourceItem = sourceModel->itemForIndex(topLeft);
 
     QModelIndex itemIndex = indexOfItem(sourceItem);
@@ -322,7 +322,7 @@ void FitParameterProxyModel::onSourceAboutToBeReset()
 
 void FitParameterProxyModel::connectModel(QAbstractItemModel* sourceModel, bool isConnect)
 {
-    Q_ASSERT(sourceModel);
+    ASSERT(sourceModel);
     if (isConnect) {
         connect(sourceModel, SIGNAL(dataChanged(QModelIndex, QModelIndex, QVector<int>)), this,
                 SLOT(onSourceDataChanged(QModelIndex, QModelIndex, QVector<int>)));
@@ -390,7 +390,7 @@ SessionItem* FitParameterProxyModel::itemForIndex(const QModelIndex& index) cons
 
 SessionModel* FitParameterProxyModel::sourceModel() const
 {
-    Q_ASSERT(m_root_item);
+    ASSERT(m_root_item);
     return m_root_item->model();
 }
 
diff --git a/GUI/coregui/Models/GUIDomainSampleVisitor.cpp b/GUI/coregui/Models/GUIDomainSampleVisitor.cpp
index 2ea7e482db20a3bfcb206c6a3e54011751aa6896..190478cd935ab00caf0b75b81507946493cbb4eb 100644
--- a/GUI/coregui/Models/GUIDomainSampleVisitor.cpp
+++ b/GUI/coregui/Models/GUIDomainSampleVisitor.cpp
@@ -96,10 +96,10 @@ void GUIDomainSampleVisitor::visit(const ParticleLayout* p_sample)
 void GUIDomainSampleVisitor::visit(const Layer* p_sample)
 {
     SessionItem* p_parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(p_parent);
+    ASSERT(p_parent);
 
     auto p_multilayer = dynamic_cast<const MultiLayer*>(m_itemToSample[p_parent]);
-    Q_ASSERT(p_multilayer);
+    ASSERT(p_multilayer);
     size_t layer_index = MultiLayerUtils::IndexOfLayer(*p_multilayer, p_sample);
     const LayerInterface* p_interface =
         MultiLayerUtils::LayerTopInterface(*p_multilayer, layer_index);
@@ -135,10 +135,10 @@ void GUIDomainSampleVisitor::visit(const Particle* p_sample)
 void GUIDomainSampleVisitor::visit(const ParticleDistribution* p_sample)
 {
     SessionItem* p_layout_item = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(p_layout_item);
+    ASSERT(p_layout_item);
     SessionItem* p_particle_distribution_item = m_sampleModel->insertNewItem(
         "ParticleDistribution", m_sampleModel->indexOfItem(p_layout_item));
-    Q_ASSERT(p_particle_distribution_item);
+    ASSERT(p_particle_distribution_item);
 
     TransformFromDomain::setParticleDistributionItem(p_particle_distribution_item, *p_sample);
 
@@ -164,7 +164,7 @@ void GUIDomainSampleVisitor::visit(const MesoCrystal* p_sample)
 void GUIDomainSampleVisitor::visit(const Crystal* p_sample)
 {
     SessionItem* p_mesocrystal_item = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(p_mesocrystal_item);
+    ASSERT(p_mesocrystal_item);
     if (p_mesocrystal_item->modelType() != "MesoCrystal") {
         throw GUIHelpers::Error("GUIObjectBuilder::visit(const Crystal*) "
                                 "-> Error. Parent is not a MesoCrystal");
@@ -458,11 +458,11 @@ void GUIDomainSampleVisitor::visit(const FormFactorTruncatedSpheroid* p_sample)
 void GUIDomainSampleVisitor::visit(const InterferenceFunction1DLattice* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
     SessionItem* item =
         m_sampleModel->insertNewItem("Interference1DLattice", m_sampleModel->indexOfItem(parent),
                                      -1, ParticleLayoutItem::T_INTERFERENCE);
-    Q_ASSERT(item);
+    ASSERT(item);
     TransformFromDomain::set1DLatticeItem(item, *p_sample);
     m_levelToParentItem[depth()] = item;
 }
@@ -470,11 +470,11 @@ void GUIDomainSampleVisitor::visit(const InterferenceFunction1DLattice* p_sample
 void GUIDomainSampleVisitor::visit(const InterferenceFunction2DLattice* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
     SessionItem* item =
         m_sampleModel->insertNewItem("Interference2DLattice", m_sampleModel->indexOfItem(parent),
                                      -1, ParticleLayoutItem::T_INTERFERENCE);
-    Q_ASSERT(item);
+    ASSERT(item);
     TransformFromDomain::set2DLatticeItem(item, *p_sample);
     m_levelToParentItem[depth()] = item;
 }
@@ -482,11 +482,11 @@ void GUIDomainSampleVisitor::visit(const InterferenceFunction2DLattice* p_sample
 void GUIDomainSampleVisitor::visit(const InterferenceFunction2DParaCrystal* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
     SessionItem* item = m_sampleModel->insertNewItem("Interference2DParaCrystal",
                                                      m_sampleModel->indexOfItem(parent), -1,
                                                      ParticleLayoutItem::T_INTERFERENCE);
-    Q_ASSERT(item);
+    ASSERT(item);
     TransformFromDomain::set2DParaCrystalItem(item, *p_sample);
     m_levelToParentItem[depth()] = item;
 }
@@ -494,11 +494,11 @@ void GUIDomainSampleVisitor::visit(const InterferenceFunction2DParaCrystal* p_sa
 void GUIDomainSampleVisitor::visit(const InterferenceFunctionFinite2DLattice* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
     SessionItem* item = m_sampleModel->insertNewItem("InterferenceFinite2DLattice",
                                                      m_sampleModel->indexOfItem(parent), -1,
                                                      ParticleLayoutItem::T_INTERFERENCE);
-    Q_ASSERT(item);
+    ASSERT(item);
     TransformFromDomain::setFinite2DLatticeItem(item, *p_sample);
     m_levelToParentItem[depth()] = item;
 }
@@ -506,11 +506,11 @@ void GUIDomainSampleVisitor::visit(const InterferenceFunctionFinite2DLattice* p_
 void GUIDomainSampleVisitor::visit(const InterferenceFunctionHardDisk* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
     SessionItem* item =
         m_sampleModel->insertNewItem("InterferenceHardDisk", m_sampleModel->indexOfItem(parent), -1,
                                      ParticleLayoutItem::T_INTERFERENCE);
-    Q_ASSERT(item);
+    ASSERT(item);
     TransformFromDomain::setHardDiskItem(item, *p_sample);
     m_levelToParentItem[depth()] = item;
 }
@@ -518,11 +518,11 @@ void GUIDomainSampleVisitor::visit(const InterferenceFunctionHardDisk* p_sample)
 void GUIDomainSampleVisitor::visit(const InterferenceFunctionRadialParaCrystal* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
     SessionItem* item = m_sampleModel->insertNewItem("InterferenceRadialParaCrystal",
                                                      m_sampleModel->indexOfItem(parent), -1,
                                                      ParticleLayoutItem::T_INTERFERENCE);
-    Q_ASSERT(item);
+    ASSERT(item);
     TransformFromDomain::setRadialParaCrystalItem(item, *p_sample);
     m_levelToParentItem[depth()] = item;
 }
@@ -530,7 +530,7 @@ void GUIDomainSampleVisitor::visit(const InterferenceFunctionRadialParaCrystal*
 void GUIDomainSampleVisitor::visit(const RotationX* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
 
     SessionItem* transformation_item = m_sampleModel->insertNewItem(
         "Rotation", m_sampleModel->indexOfItem(parent), -1, ParticleItem::T_TRANSFORMATION);
@@ -543,7 +543,7 @@ void GUIDomainSampleVisitor::visit(const RotationX* p_sample)
 void GUIDomainSampleVisitor::visit(const RotationY* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
 
     SessionItem* transformation_item = m_sampleModel->insertNewItem(
         "Rotation", m_sampleModel->indexOfItem(parent), -1, ParticleItem::T_TRANSFORMATION);
@@ -556,7 +556,7 @@ void GUIDomainSampleVisitor::visit(const RotationY* p_sample)
 void GUIDomainSampleVisitor::visit(const RotationZ* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
 
     SessionItem* transformation_item = m_sampleModel->insertNewItem(
         "Rotation", m_sampleModel->indexOfItem(parent), -1, ParticleItem::T_TRANSFORMATION);
@@ -569,11 +569,11 @@ void GUIDomainSampleVisitor::visit(const RotationZ* p_sample)
 void GUIDomainSampleVisitor::visit(const RotationEuler* p_sample)
 {
     SessionItem* parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(parent);
+    ASSERT(parent);
 
     SessionItem* transformation_item = m_sampleModel->insertNewItem(
         "Rotation", m_sampleModel->indexOfItem(parent), -1, ParticleItem::T_TRANSFORMATION);
-    Q_ASSERT(transformation_item);
+    ASSERT(transformation_item);
     SessionItem* p_rotationItem =
         transformation_item->setGroupProperty(TransformationItem::P_ROT, "EulerRotation");
     p_rotationItem->setItemValue(EulerRotationItem::P_ALPHA, Units::rad2deg(p_sample->getAlpha()));
@@ -617,7 +617,7 @@ SessionItem* GUIDomainSampleVisitor::InsertIParticle(const IParticle* p_particle
                                                      QString model_type)
 {
     auto p_parent = m_levelToParentItem[depth() - 1];
-    Q_ASSERT(p_parent);
+    ASSERT(p_parent);
 
     QString tag;
     auto parent_type = p_parent->modelType();
@@ -625,7 +625,7 @@ SessionItem* GUIDomainSampleVisitor::InsertIParticle(const IParticle* p_particle
         if (parent_type == "ParticleCoreShell") {
             const ParticleCoreShell* p_coreshell =
                 dynamic_cast<const ParticleCoreShell*>(m_itemToSample[p_parent]);
-            Q_ASSERT(p_coreshell);
+            ASSERT(p_coreshell);
             if (p_particle == p_coreshell->coreParticle()) {
                 tag = ParticleCoreShellItem::T_CORE;
             } else if (p_particle == p_coreshell->shellParticle()) {
@@ -639,7 +639,7 @@ SessionItem* GUIDomainSampleVisitor::InsertIParticle(const IParticle* p_particle
     SessionItem* p_particle_item =
         m_sampleModel->insertNewItem(model_type, m_sampleModel->indexOfItem(p_parent), -1, tag);
 
-    Q_ASSERT(p_particle_item);
+    ASSERT(p_particle_item);
     p_particle_item->setItemValue(ParticleItem::P_ABUNDANCE, p_particle->abundance());
     buildPositionInfo(p_particle_item, p_particle);
 
diff --git a/GUI/coregui/Models/GUIExamplesFactory.cpp b/GUI/coregui/Models/GUIExamplesFactory.cpp
index 25bf5dbeec30174d74ff0896e38847ecd40e126e..e25c0aff25e76198ca33e3d5509fe3e23fc6af7c 100644
--- a/GUI/coregui/Models/GUIExamplesFactory.cpp
+++ b/GUI/coregui/Models/GUIExamplesFactory.cpp
@@ -78,7 +78,7 @@ SessionItem* GUIExamplesFactory::createSampleItems(const QString& name, SampleMo
 //    SimulationFactory registry;
 //    const std::unique_ptr<GISASSimulation>
 //    P_simulation(registry.createSimulation(exampleName.toStdString()));
-//    Q_ASSERT(P_simulation.get());
+//    ASSERT(P_simulation.get());
 
 //    QString instrumentName = name + "_instrument";
 //    GUIObjectBuilder guiBuilder;
diff --git a/GUI/coregui/Models/GUIObjectBuilder.cpp b/GUI/coregui/Models/GUIObjectBuilder.cpp
index a444fe9f9f46628a7ebb851c679010fb9e5ad2b7..431da1b5fd9e5231498c9eb9b9672730dff2d48c 100644
--- a/GUI/coregui/Models/GUIObjectBuilder.cpp
+++ b/GUI/coregui/Models/GUIObjectBuilder.cpp
@@ -67,7 +67,7 @@ SessionItem* GUIObjectBuilder::populateInstrumentModel(InstrumentModel* p_instru
                                                        const Simulation& simulation,
                                                        const QString& instrument_name)
 {
-    Q_ASSERT(p_instrument_model);
+    ASSERT(p_instrument_model);
 
     QString name = instrument_name.isEmpty()
                        ? QString::fromStdString(simulation.getInstrument().getName())
@@ -90,7 +90,7 @@ SessionItem* GUIObjectBuilder::populateDocumentModel(DocumentModel* p_document_m
 {
     SimulationOptionsItem* p_options_item =
         dynamic_cast<SimulationOptionsItem*>(p_document_model->insertNewItem("SimulationOptions"));
-    Q_ASSERT(p_options_item);
+    ASSERT(p_options_item);
     if (simulation.getOptions().isIntegrate()) {
         p_options_item->setComputationMethod("Monte-Carlo Integration");
         p_options_item->setNumberOfMonteCarloPoints(
diff --git a/GUI/coregui/Models/IntensityDataItem.cpp b/GUI/coregui/Models/IntensityDataItem.cpp
index 647bc5dd60e1a848f95c9d4c4c9377dc05f7f7dc..8cec633b0b9dc507fa9ba7f24e5ce14f8d2b6db7 100644
--- a/GUI/coregui/Models/IntensityDataItem.cpp
+++ b/GUI/coregui/Models/IntensityDataItem.cpp
@@ -85,7 +85,7 @@ IntensityDataItem::IntensityDataItem() : DataItem("IntensityData")
 
 void IntensityDataItem::setOutputData(OutputData<double>* data)
 {
-    assert(data && "Assertion failed in IntensityDataItem::setOutputData: nullptr data passed");
+    ASSERT(data && "Assertion failed in IntensityDataItem::setOutputData: nullptr data passed");
     if (data->getRank() != 2)
         throw GUIHelpers::Error(
             "Error in IntensityDataItem::setOutputData: cannot handle non-2D data");
@@ -234,7 +234,7 @@ std::vector<int> IntensityDataItem::shape() const
 
 void IntensityDataItem::reset(ImportDataInfo data)
 {
-    assert(data.unitsLabel() == "nbins");
+    ASSERT(data.unitsLabel() == "nbins");
     ComboProperty combo = ComboProperty() << data.unitsLabel();
     setItemValue(IntensityDataItem::P_AXES_UNITS, combo.variant());
     getItem(IntensityDataItem::P_AXES_UNITS)->setVisible(true);
diff --git a/GUI/coregui/Models/JobItemUtils.cpp b/GUI/coregui/Models/JobItemUtils.cpp
index cc51abf32349dbe4a143841f5d890c79493b1d4e..21a0045694080ba3bd705488c8b730c4386c9495 100644
--- a/GUI/coregui/Models/JobItemUtils.cpp
+++ b/GUI/coregui/Models/JobItemUtils.cpp
@@ -48,7 +48,7 @@ void updateAxesTitle(DataItem* intensityItem, const IUnitConverter& converter, A
 
 void JobItemUtils::updateDataAxes(DataItem* intensityItem, const InstrumentItem* instrumentItem)
 {
-    Q_ASSERT(intensityItem);
+    ASSERT(intensityItem);
 
     if (!instrumentItem) {
         // special case when reading old project files: project failed on load instrument
diff --git a/GUI/coregui/Models/JobModel.cpp b/GUI/coregui/Models/JobModel.cpp
index 1d1b8799d86b5df42fe959d1461d66b39f2efc7f..28257729b09507e773e56fe9b57785dc5c356f81 100644
--- a/GUI/coregui/Models/JobModel.cpp
+++ b/GUI/coregui/Models/JobModel.cpp
@@ -46,14 +46,14 @@ JobModel::~JobModel()
 const JobItem* JobModel::getJobItemForIndex(const QModelIndex& index) const
 {
     const JobItem* result = dynamic_cast<const JobItem*>(itemForIndex(index));
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
 JobItem* JobModel::getJobItemForIndex(const QModelIndex& index)
 {
     JobItem* result = dynamic_cast<JobItem*>(itemForIndex(index));
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
@@ -74,9 +74,9 @@ JobItem* JobModel::addJob(const MultiLayerItem* multiLayerItem,
                           const InstrumentItem* instrumentItem, const RealDataItem* realDataItem,
                           const SimulationOptionsItem* optionItem)
 {
-    Q_ASSERT(multiLayerItem);
-    Q_ASSERT(instrumentItem);
-    Q_ASSERT(optionItem);
+    ASSERT(multiLayerItem);
+    ASSERT(instrumentItem);
+    ASSERT(optionItem);
 
     JobItem* jobItem = dynamic_cast<JobItem*>(insertNewItem("JobItem"));
     jobItem->setItemName(generateJobName());
@@ -182,7 +182,7 @@ void JobModel::cancelJob(const QModelIndex& index)
 void JobModel::removeJob(const QModelIndex& index)
 {
     JobItem* jobItem = getJobItemForIndex(index);
-    Q_ASSERT(jobItem);
+    ASSERT(jobItem);
     m_queue_data->removeJob(jobItem->getIdentifier());
 
     emit aboutToDeleteJobItem(jobItem);
diff --git a/GUI/coregui/Models/JobModelFunctions.cpp b/GUI/coregui/Models/JobModelFunctions.cpp
index ac3caee92ffa8f8c67a259e3a3cb07818f6ba6e3..7ad918100014a45480b011670c01704e4cfc0aac 100644
--- a/GUI/coregui/Models/JobModelFunctions.cpp
+++ b/GUI/coregui/Models/JobModelFunctions.cpp
@@ -61,19 +61,19 @@ PointwiseAxisItem* getPointwiseAxisItem(const SpecularInstrumentItem* instrument
 
 void JobModelFunctions::initDataView(JobItem* job_item)
 {
-    assert(job_item && job_item->isValidForFitting());
-    assert(job_item->instrumentItem()
+    ASSERT(job_item && job_item->isValidForFitting());
+    ASSERT(job_item->instrumentItem()
            && job_item->instrumentItem()->modelType() == "SpecularInstrument");
-    assert(!job_item->getItem(JobItem::T_DATAVIEW));
+    ASSERT(!job_item->getItem(JobItem::T_DATAVIEW));
 
     SessionModel* model = job_item->model();
     auto view_item = dynamic_cast<Data1DViewItem*>(
         model->insertNewItem("Data1DViewItem", job_item->index(), -1, JobItem::T_DATAVIEW));
-    assert(view_item);
+    ASSERT(view_item);
 
     auto property_container = dynamic_cast<DataPropertyContainer*>(model->insertNewItem(
         "DataPropertyContainer", view_item->index(), -1, Data1DViewItem::T_DATA_PROPERTIES));
-    assert(property_container);
+    ASSERT(property_container);
 
     property_container->addItem(job_item->realDataItem()->dataItem());
     property_container->addItem(job_item->dataItem());
@@ -199,7 +199,7 @@ void JobModelFunctions::copyRealDataItem(JobItem* jobItem, const RealDataItem* r
 
     RealDataItem* realDataItemCopy =
         dynamic_cast<RealDataItem*>(model->copyItem(realDataItem, jobItem, JobItem::T_REALDATA));
-    Q_ASSERT(realDataItemCopy);
+    ASSERT(realDataItemCopy);
 
     realDataItemCopy->dataItem()->setOutputData(realDataItem->dataItem()->getOutputData()->clone());
 
diff --git a/GUI/coregui/Models/JobQueueData.cpp b/GUI/coregui/Models/JobQueueData.cpp
index 34a1ff31c534fb2c8b92a0adf5792032a7b0bbb8..a6ae685921f010dd5b2ff30cc2ad8dc0bd3b816d 100644
--- a/GUI/coregui/Models/JobQueueData.cpp
+++ b/GUI/coregui/Models/JobQueueData.cpp
@@ -201,7 +201,7 @@ void JobQueueData::assignForDeletion(QThread* thread)
 
 void JobQueueData::assignForDeletion(JobWorker* worker)
 {
-    Q_ASSERT(worker);
+    ASSERT(worker);
     worker->disconnect();
     for (auto it = m_workers.begin(); it != m_workers.end(); ++it) {
         if (it.value() == worker) {
diff --git a/GUI/coregui/Models/MaterialPropertyController.cpp b/GUI/coregui/Models/MaterialPropertyController.cpp
index dbe29505223e0644a18491d127bf8fe3cf9ed3ff..c610119522b212d89036ae51f2186b20224144a7 100644
--- a/GUI/coregui/Models/MaterialPropertyController.cpp
+++ b/GUI/coregui/Models/MaterialPropertyController.cpp
@@ -47,7 +47,7 @@ void MaterialPropertyController::onMaterialModelLoad()
 {
     for (auto sampleItem : relatedSampleItems()) {
         QString tag = MaterialItemUtils::materialTag(*sampleItem);
-        Q_ASSERT(!tag.isEmpty());
+        ASSERT(!tag.isEmpty());
 
         ExternalProperty property = sampleItem->getItemValue(tag).value<ExternalProperty>();
         if (MaterialItem* material =
@@ -72,7 +72,7 @@ void MaterialPropertyController::onMaterialDataChanged(const QModelIndex& topLef
 
         for (auto sampleItem : relatedSampleItems()) {
             QString tag = MaterialItemUtils::materialTag(*sampleItem);
-            Q_ASSERT(!tag.isEmpty());
+            ASSERT(!tag.isEmpty());
 
             ExternalProperty property = sampleItem->getItemValue(tag).value<ExternalProperty>();
             if (property.identifier() == materialItem->identifier()) {
@@ -103,7 +103,7 @@ void MaterialPropertyController::onMaterialRowsAboutToBeRemoved(const QModelInde
     // rewriting MaterialProperty in corresponding sample items
     for (auto sampleItem : relatedSampleItems()) {
         QString tag = MaterialItemUtils::materialTag(*sampleItem);
-        Q_ASSERT(!tag.isEmpty());
+        ASSERT(!tag.isEmpty());
 
         ExternalProperty property = sampleItem->getItemValue(tag).value<ExternalProperty>();
         if (identifiersToDelete.contains(property.identifier())) {
diff --git a/GUI/coregui/Models/ModelPath.cpp b/GUI/coregui/Models/ModelPath.cpp
index cf1249aff2a90f2110fae3dfb12b7cb2bb479bf6..fd50c01d4140720a1b8beda25ca4e1fd0c474b5b 100644
--- a/GUI/coregui/Models/ModelPath.cpp
+++ b/GUI/coregui/Models/ModelPath.cpp
@@ -59,7 +59,7 @@ QModelIndex ModelPath::getIndexFromPath(const SessionModel* model, const QString
 
 SessionItem* ModelPath::getItemFromPath(const QString& relPath, const SessionItem* parent)
 {
-    Q_ASSERT(parent);
+    ASSERT(parent);
     QString fullPath = getPathFromIndex(parent->index()) + "/" + relPath;
     return parent->model()->itemForIndex(ModelPath::getIndexFromPath(parent->model(), fullPath));
 }
diff --git a/GUI/coregui/Models/ParameterTranslators.cpp b/GUI/coregui/Models/ParameterTranslators.cpp
index 35a7af952f533432150a6bec411480c45f5d6cdb..f028ec598ececbf89eed7aee3da436c0464e083c 100644
--- a/GUI/coregui/Models/ParameterTranslators.cpp
+++ b/GUI/coregui/Models/ParameterTranslators.cpp
@@ -73,7 +73,7 @@ QStringList RotationTranslator::translate(const QStringList& list) const
     if (list.back() != "Rotation")
         return list;
 
-    Q_ASSERT(list.size() == 3);
+    ASSERT(list.size() == 3);
     QStringList result = list;
     result.removeLast();
     return result;
@@ -153,7 +153,7 @@ QStringList VectorParameterTranslator::translate(const QStringList& list) const
     if (list.back() != m_gui_name)
         return list;
 
-    Q_ASSERT(list.size() == 2);
+    ASSERT(list.size() == 2);
 
     QStringList result;
     if (list.front() == VectorItem::P_X) {
diff --git a/GUI/coregui/Models/ParameterTreeItems.cpp b/GUI/coregui/Models/ParameterTreeItems.cpp
index 38008d2545f813705707b1df41d8a122a3275d6f..25ecca7675608de4cc48a6938686e8922210decd 100644
--- a/GUI/coregui/Models/ParameterTreeItems.cpp
+++ b/GUI/coregui/Models/ParameterTreeItems.cpp
@@ -58,7 +58,7 @@ void ParameterItem::propagateValueToLink(double newValue)
 SessionItem* ParameterItem::linkedItem()
 {
     const SessionItem* jobItem = ModelPath::ancestor(this, "JobItem");
-    Q_ASSERT(jobItem);
+    ASSERT(jobItem);
     QString link = jobItem->itemName() + "/" + getItemValue(P_LINK).toString();
     return model()->itemForIndex(ModelPath::getIndexFromPath(model(), link));
 }
diff --git a/GUI/coregui/Models/ParameterTreeUtils.cpp b/GUI/coregui/Models/ParameterTreeUtils.cpp
index 6b90ea2352239d286a4e49a6df0972c30e418c99..09d6646d21535dfa20346f6d0436cb0b0a4c9ffb 100644
--- a/GUI/coregui/Models/ParameterTreeUtils.cpp
+++ b/GUI/coregui/Models/ParameterTreeUtils.cpp
@@ -139,7 +139,7 @@ QStringList ParameterTreeUtils::translatedParameterTreeNames(const SessionItem*
 
 QVector<QPair<QString, QString>> ParameterTreeUtils::parameterDictionary(const SessionItem* source)
 {
-    Q_ASSERT(source);
+    ASSERT(source);
 
     QVector<QPair<QString, QString>> result;
 
diff --git a/GUI/coregui/Models/ParameterTuningModel.cpp b/GUI/coregui/Models/ParameterTuningModel.cpp
index f0214dfc99f26ed49de740276072b79792e6750c..20c1aa1ce3ae7e64ae77c2850be76c363ea3d68a 100644
--- a/GUI/coregui/Models/ParameterTuningModel.cpp
+++ b/GUI/coregui/Models/ParameterTuningModel.cpp
@@ -55,7 +55,7 @@ QMimeData* ParameterTuningModel::mimeData(const QModelIndexList& proxyIndexes) c
 ParameterItem* ParameterTuningModel::getParameterItem(const QModelIndex& proxyIndex) const
 {
     SessionModel* sessionModel = dynamic_cast<SessionModel*>(sourceModel());
-    Q_ASSERT(sessionModel);
+    ASSERT(sessionModel);
 
     QModelIndex sourceIndex = toSourceIndex(proxyIndex);
     if (sourceIndex.column() == 0) {
diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp
index 44245a71e5c66857c013084ae79553d8d3691f8f..9e94f1b561c4c32ec7d77d8795a79d2a148098d8 100644
--- a/GUI/coregui/Models/ParticleDistributionItem.cpp
+++ b/GUI/coregui/Models/ParticleDistributionItem.cpp
@@ -202,7 +202,7 @@ const SessionItem* ParticleDistributionItem::childParticle() const
     if (getItems(T_PARTICLES).size() == 0)
         return nullptr;
 
-    Q_ASSERT(getItems(T_PARTICLES).size() == 1);
+    ASSERT(getItems(T_PARTICLES).size() == 1);
     return getItems(T_PARTICLES).front();
 }
 
diff --git a/GUI/coregui/Models/ProxyModelStrategy.cpp b/GUI/coregui/Models/ProxyModelStrategy.cpp
index 824829c7143095f831fa178b9e020b4d835e96a6..bdddd167dd32cec121e6e5055ed56dfbdc1d4c28 100644
--- a/GUI/coregui/Models/ProxyModelStrategy.cpp
+++ b/GUI/coregui/Models/ProxyModelStrategy.cpp
@@ -62,7 +62,7 @@ void ProxyModelStrategy::setRootIndex(const QModelIndex& sourceRootIndex)
 
 QModelIndex ProxyModelStrategy::createProxyIndex(int nrow, int ncol, void* adata)
 {
-    Q_ASSERT(m_proxy);
+    ASSERT(m_proxy);
     return m_proxy->createIndex(nrow, ncol, adata);
 }
 
diff --git a/GUI/coregui/Models/RealDataItem.cpp b/GUI/coregui/Models/RealDataItem.cpp
index 3d200eec223c10dd98d363e14f36e4a9af7124ec..dbbb78f00c1aed552e18f2dc0c295a0c0c6d4922 100644
--- a/GUI/coregui/Models/RealDataItem.cpp
+++ b/GUI/coregui/Models/RealDataItem.cpp
@@ -102,8 +102,8 @@ const DataItem* RealDataItem::nativeData() const
 
 void RealDataItem::setOutputData(OutputData<double>* data)
 {
-    assert(data && "Assertion failed in RealDataItem::setOutputData: passed data is nullptr");
-    assert(data->getRank() < 3 && data->getRank() > 0);
+    ASSERT(data && "Assertion failed in RealDataItem::setOutputData: passed data is nullptr");
+    ASSERT(data->getRank() < 3 && data->getRank() > 0);
 
     const QString& target_model_type =
         data->getRank() == 2 ? "IntensityData" : data->getRank() == 1 ? "SpecularData" : "";
@@ -113,7 +113,7 @@ void RealDataItem::setOutputData(OutputData<double>* data)
                                 "incompatible with underlying data item");
     if (!data_item) {
         this->model()->insertNewItem(target_model_type, this->index(), 0, T_INTENSITY_DATA);
-        assert(getItem(T_INTENSITY_DATA)
+        ASSERT(getItem(T_INTENSITY_DATA)
                && "Assertion failed in RealDataItem::setOutputData: inserting data item failed.");
     }
     dataItem()->setOutputData(data);
@@ -121,7 +121,7 @@ void RealDataItem::setOutputData(OutputData<double>* data)
 
 void RealDataItem::initDataItem(size_t data_rank, const QString& tag)
 {
-    assert(data_rank <= 2 && data_rank > 0);
+    ASSERT(data_rank <= 2 && data_rank > 0);
     const QString& target_model_type = data_rank == 2 ? "IntensityData" : "SpecularData";
     auto data_item = getItem(tag);
     if (data_item && data_item->modelType() != target_model_type)
@@ -164,7 +164,7 @@ std::vector<int> RealDataItem::shape() const
 {
     auto data_item = dataItem();
     if (!data_item) {
-        assert(data_item);
+        ASSERT(data_item);
         return {};
     }
     return data_item->shape();
diff --git a/GUI/coregui/Models/SessionItem.cpp b/GUI/coregui/Models/SessionItem.cpp
index 24d8fcf37961f2203a2e6ad8be6b7af3095120d3..c09b442ba30180485d0ab8b00e4a420e2b31ad3d 100644
--- a/GUI/coregui/Models/SessionItem.cpp
+++ b/GUI/coregui/Models/SessionItem.cpp
@@ -220,7 +220,7 @@ QVector<SessionItem*> SessionItem::getItems(const QString& tag) const
         return QVector<SessionItem*>();
 
     int index = m_tags->tagStartIndex(tagName);
-    Q_ASSERT(index >= 0 && index <= m_children.size());
+    ASSERT(index >= 0 && index <= m_children.size());
     return m_children.mid(index, m_tags->childCount(tagName));
 }
 
@@ -240,7 +240,7 @@ bool SessionItem::insertItem(int row, SessionItem* item, const QString& tag)
     if (index < 0)
         throw GUIHelpers::Error("SessionItem::insertItem() -> Invalid row, maximum reached.");
 
-    Q_ASSERT(index <= m_children.size());
+    ASSERT(index <= m_children.size());
 
     if (m_model)
         m_model->beginInsertRows(this->index(), index, index);
@@ -268,7 +268,7 @@ SessionItem* SessionItem::takeItem(int row, const QString& tag)
         throw GUIHelpers::Error("SessionItem::takeItem() -> Single item tag.");
 
     int index = m_tags->indexFromTagRow(tagName, row);
-    Q_ASSERT(index >= 0 && index <= m_children.size());
+    ASSERT(index >= 0 && index <= m_children.size());
 
     if (m_model)
         m_model->beginRemoveRows(this->index(), index, index);
@@ -330,7 +330,7 @@ SessionItem* SessionItem::addGroupProperty(const QString& groupTag, const QStrin
         // create group item
         GroupInfo groupInfo = SessionItemUtils::GetGroupInfo(groupType);
         GroupItem* groupItem = dynamic_cast<GroupItem*>(ItemFactory::CreateItem("GroupProperty"));
-        Q_ASSERT(groupItem);
+        ASSERT(groupItem);
         groupItem->setGroupInfo(groupInfo);
         registerTag(groupTag, 1, 1, QStringList() << "GroupProperty");
         result = groupItem;
@@ -339,7 +339,7 @@ SessionItem* SessionItem::addGroupProperty(const QString& groupTag, const QStrin
         registerTag(groupTag, 1, 1, QStringList() << groupType);
         result = ItemFactory::CreateItem(groupType);
     }
-    Q_ASSERT(result);
+    ASSERT(result);
     result->setDisplayName(groupTag);
     if (!insertItem(0, result, groupTag)) {
         throw GUIHelpers::Error("SessionItem::addGroupProperty -> Error. Can't insert group item");
@@ -585,7 +585,7 @@ void SessionItem::addTranslator(const IPathTranslator& translator)
 void SessionItem::childDeleted(SessionItem* child)
 {
     int index = rowOfChild(child);
-    Q_ASSERT(index != -1);
+    ASSERT(index != -1);
     m_children.replace(index, nullptr);
 }
 
diff --git a/GUI/coregui/Models/SessionItem.h b/GUI/coregui/Models/SessionItem.h
index 6f5c6fdff3d61afd2a88bcab548ddf537e5a85d5..ba7f06d5698ea035e9abecddf3e7611b13c96214 100644
--- a/GUI/coregui/Models/SessionItem.h
+++ b/GUI/coregui/Models/SessionItem.h
@@ -140,14 +140,14 @@ private:
 template <typename T> T& SessionItem::item(const QString& tag) const
 {
     T* t = dynamic_cast<T*>(getItem(tag));
-    Q_ASSERT(t);
+    ASSERT(t);
     return *t;
 }
 
 template <typename T> T& SessionItem::groupItem(const QString& groupName) const
 {
     T* t = dynamic_cast<T*>(getGroupItem(groupName));
-    Q_ASSERT(t);
+    ASSERT(t);
     return *t;
 }
 
diff --git a/GUI/coregui/Models/SessionItemUtils.cpp b/GUI/coregui/Models/SessionItemUtils.cpp
index bde42abeb84e4e05eaea35358ce2ec03954b8706..2a9f9668db5ff5be90bfe6bc340f5bc84716854d 100644
--- a/GUI/coregui/Models/SessionItemUtils.cpp
+++ b/GUI/coregui/Models/SessionItemUtils.cpp
@@ -52,7 +52,7 @@ int SessionItemUtils::ParentRow(const SessionItem& item)
 kvector_t SessionItemUtils::GetVectorItem(const SessionItem& item, const QString& name)
 {
     SessionItem* vectorItem = item.getItem(name);
-    Q_ASSERT(vectorItem);
+    ASSERT(vectorItem);
     double x = vectorItem->getItemValue(VectorItem::P_X).toDouble();
     double y = vectorItem->getItemValue(VectorItem::P_Y).toDouble();
     double z = vectorItem->getItemValue(VectorItem::P_Z).toDouble();
diff --git a/GUI/coregui/Models/SessionModel.cpp b/GUI/coregui/Models/SessionModel.cpp
index 6e7b611cede50010150691ea40c58e43c1722cdd..72a1ed3184729f7fdfb4312ed160892d0adda06f 100644
--- a/GUI/coregui/Models/SessionModel.cpp
+++ b/GUI/coregui/Models/SessionModel.cpp
@@ -344,7 +344,7 @@ SessionItem* SessionModel::itemForIndex(const QModelIndex& index) const
 
 void SessionModel::readFrom(QXmlStreamReader* reader, MessageService* messageService)
 {
-    Q_ASSERT(reader);
+    ASSERT(reader);
 
     if (reader->name() != m_model_tag)
         throw GUIHelpers::Error("SessionModel::readFrom() -> Format error in p1");
diff --git a/GUI/coregui/Models/SessionModelDelegate.cpp b/GUI/coregui/Models/SessionModelDelegate.cpp
index 75820cd728fc83f476b70f761ae1bc2f752e3e4b..4d40f99c77fc120952d0a2b8a15506ee1a21c1a6 100644
--- a/GUI/coregui/Models/SessionModelDelegate.cpp
+++ b/GUI/coregui/Models/SessionModelDelegate.cpp
@@ -106,7 +106,7 @@ void SessionModelDelegate::updateEditorGeometry(QWidget* editor, const QStyleOpt
 void SessionModelDelegate::onCustomEditorDataChanged(const QVariant&)
 {
     CustomEditor* editor = qobject_cast<CustomEditor*>(sender());
-    Q_ASSERT(editor);
+    ASSERT(editor);
     emit commitData(editor);
 }
 
diff --git a/GUI/coregui/Models/SessionXML.cpp b/GUI/coregui/Models/SessionXML.cpp
index e68b595e0952bcbbb7b5cf406365e8d89d291d8f..6c22f0d9b206b296e0ddad56d4422c2bd4d29a86 100644
--- a/GUI/coregui/Models/SessionXML.cpp
+++ b/GUI/coregui/Models/SessionXML.cpp
@@ -114,7 +114,7 @@ void SessionXML::writeVariant(QXmlStreamWriter* writer, QVariant variant, int ro
 void SessionXML::readItems(QXmlStreamReader* reader, SessionItem* parent, QString topTag,
                            MessageService* messageService)
 {
-    Q_ASSERT(parent);
+    ASSERT(parent);
     const QString start_type = parent->model()->getModelTag();
     while (!reader->atEnd()) {
         reader->readNext();
diff --git a/GUI/coregui/Models/SpecularBeamInclinationItem.cpp b/GUI/coregui/Models/SpecularBeamInclinationItem.cpp
index 58f5c00616e12643501a9350a067757f021fa819..944966d89e008ac43b9d0af33c24a32a0797ef6c 100644
--- a/GUI/coregui/Models/SpecularBeamInclinationItem.cpp
+++ b/GUI/coregui/Models/SpecularBeamInclinationItem.cpp
@@ -80,10 +80,10 @@ namespace
 {
 void setupDistributionMean(SessionItem* distribution)
 {
-    Q_ASSERT(distribution);
+    ASSERT(distribution);
 
     SessionItem* valueItem = distribution->getItem(DistributionNoneItem::P_MEAN);
-    Q_ASSERT(valueItem);
+    ASSERT(valueItem);
 
     valueItem->setLimits(RealLimits::limited(-90.0, 90.0));
     valueItem->setDecimals(3);
diff --git a/GUI/coregui/Models/SpecularDataItem.cpp b/GUI/coregui/Models/SpecularDataItem.cpp
index fe94c2e5e5a23ca2a75119e651e1b7021097d90e..187906f0a1ed531304b7050008b89c78301e1b66 100644
--- a/GUI/coregui/Models/SpecularDataItem.cpp
+++ b/GUI/coregui/Models/SpecularDataItem.cpp
@@ -44,7 +44,7 @@ SpecularDataItem::SpecularDataItem() : DataItem("SpecularData")
 
 void SpecularDataItem::setOutputData(OutputData<double>* data)
 {
-    assert(data && "Assertion failed in SpecularDataItem::setOutputData: nullptr data passed");
+    ASSERT(data && "Assertion failed in SpecularDataItem::setOutputData: nullptr data passed");
     if (data->getRank() != 1)
         throw GUIHelpers::Error(
             "Error in SpecularDataItem::setOutputData: cannot handle non-1D data");
@@ -235,7 +235,7 @@ BasicAxisItem* SpecularDataItem::xAxisItem()
 const AmplitudeAxisItem* SpecularDataItem::yAxisItem() const
 {
     auto result = dynamic_cast<const AmplitudeAxisItem*>(getItem(P_YAXIS));
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Models/SphericalDetectorItem.cpp b/GUI/coregui/Models/SphericalDetectorItem.cpp
index 492abf07241419fd0535d3a7f5122a9d82b7b70b..add01044947552984c2ff613bd4506686dc3e116 100644
--- a/GUI/coregui/Models/SphericalDetectorItem.cpp
+++ b/GUI/coregui/Models/SphericalDetectorItem.cpp
@@ -48,13 +48,13 @@ std::unique_ptr<IDetector2D> SphericalDetectorItem::createDomainDetector() const
     std::unique_ptr<SphericalDetector> result(new SphericalDetector());
 
     auto x_axis = dynamic_cast<BasicAxisItem*>(getItem(SphericalDetectorItem::P_PHI_AXIS));
-    Q_ASSERT(x_axis);
+    ASSERT(x_axis);
     int n_x = x_axis->getItemValue(BasicAxisItem::P_NBINS).toInt();
     double x_min = Units::deg2rad(x_axis->getItemValue(BasicAxisItem::P_MIN_DEG).toDouble());
     double x_max = Units::deg2rad(x_axis->getItemValue(BasicAxisItem::P_MAX_DEG).toDouble());
 
     auto y_axis = dynamic_cast<BasicAxisItem*>(getItem(SphericalDetectorItem::P_ALPHA_AXIS));
-    Q_ASSERT(y_axis);
+    ASSERT(y_axis);
     int n_y = y_axis->getItemValue(BasicAxisItem::P_NBINS).toInt();
     double y_min = Units::deg2rad(y_axis->getItemValue(BasicAxisItem::P_MIN_DEG).toDouble());
     double y_max = Units::deg2rad(y_axis->getItemValue(BasicAxisItem::P_MAX_DEG).toDouble());
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index bde01219a948372b2d4a70f08a525c9ab8f98b08..81baf891ced0ec8f15ea90f8756874255021da50 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -217,7 +217,7 @@ void TransformFromDomain::setParticleDistributionItem(SessionItem* item,
                                                       const ParticleDistribution& sample)
 {
     ParticleDistributionItem* distItem = dynamic_cast<ParticleDistributionItem*>(item);
-    Q_ASSERT(distItem);
+    ASSERT(distItem);
 
     distItem->setItemValue(ParticleItem::P_ABUNDANCE, sample.abundance());
 
@@ -248,7 +248,7 @@ bool TransformFromDomain::isValidRoughness(const LayerRoughness* roughness)
 
 void TransformFromDomain::setGISASBeamItem(BeamItem* beam_item, const GISASSimulation& simulation)
 {
-    Q_ASSERT(beam_item);
+    ASSERT(beam_item);
     Beam beam = simulation.getInstrument().getBeam();
 
     beam_item->setIntensity(beam.getIntensity());
@@ -402,14 +402,14 @@ void TransformFromDomain::setSphericalDetector(SphericalDetectorItem* detector_i
 
     BasicAxisItem* phiAxisItem =
         dynamic_cast<BasicAxisItem*>(detector_item->getItem(SphericalDetectorItem::P_PHI_AXIS));
-    Q_ASSERT(phiAxisItem);
+    ASSERT(phiAxisItem);
     phiAxisItem->setItemValue(BasicAxisItem::P_NBINS, (int)phi_axis.size());
     phiAxisItem->setItemValue(BasicAxisItem::P_MIN_DEG, Units::rad2deg(phi_axis.getMin()));
     phiAxisItem->setItemValue(BasicAxisItem::P_MAX_DEG, Units::rad2deg(phi_axis.getMax()));
 
     BasicAxisItem* alphaAxisItem =
         dynamic_cast<BasicAxisItem*>(detector_item->getItem(SphericalDetectorItem::P_ALPHA_AXIS));
-    Q_ASSERT(alphaAxisItem);
+    ASSERT(alphaAxisItem);
     alphaAxisItem->setItemValue(BasicAxisItem::P_NBINS, (int)alpha_axis.size());
     alphaAxisItem->setItemValue(BasicAxisItem::P_MIN_DEG, Units::rad2deg(alpha_axis.getMin()));
     alphaAxisItem->setItemValue(BasicAxisItem::P_MAX_DEG, Units::rad2deg(alpha_axis.getMax()));
@@ -421,13 +421,13 @@ void TransformFromDomain::setRectangularDetector(RectangularDetectorItem* detect
     // Axes
     BasicAxisItem* xAxisItem =
         dynamic_cast<BasicAxisItem*>(detector_item->getItem(RectangularDetectorItem::P_X_AXIS));
-    Q_ASSERT(xAxisItem);
+    ASSERT(xAxisItem);
     xAxisItem->setItemValue(BasicAxisItem::P_NBINS, (int)detector.getNbinsX());
     xAxisItem->setItemValue(BasicAxisItem::P_MAX_DEG, detector.getWidth());
 
     BasicAxisItem* yAxisItem =
         dynamic_cast<BasicAxisItem*>(detector_item->getItem(RectangularDetectorItem::P_Y_AXIS));
-    Q_ASSERT(yAxisItem);
+    ASSERT(yAxisItem);
     yAxisItem->setItemValue(BasicAxisItem::P_NBINS, (int)detector.getNbinsY());
     yAxisItem->setItemValue(BasicAxisItem::P_MAX_DEG, detector.getHeight());
 
@@ -585,7 +585,7 @@ void TransformFromDomain::setMaskContainer(MaskContainerItem* container_item,
 void TransformFromDomain::setItemFromSample(BeamDistributionItem* beam_distribution_item,
                                             const ParameterDistribution& parameter_distribution)
 {
-    Q_ASSERT(beam_distribution_item);
+    ASSERT(beam_distribution_item);
 
     if (parameter_distribution.getMinValue() < parameter_distribution.getMaxValue()) {
         throw GUIHelpers::Error(
@@ -842,7 +842,7 @@ void setDistribution(SessionItem* part_distr_item, ParameterDistribution par_dis
     }
 
     DistributionItem* distItem = dynamic_cast<DistributionItem*>(item);
-    Q_ASSERT(distItem);
+    ASSERT(distItem);
 
     distItem->setItemValue(DistributionItem::P_NUMBER_OF_SAMPLES, (int)par_distr.getNbrSamples());
 
diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp
index c087330b7320c44e8b8aaae3c196a274edadad6d..33f955c0e6c5b274a05de35d6863829893469eea 100644
--- a/GUI/coregui/Models/TransformToDomain.cpp
+++ b/GUI/coregui/Models/TransformToDomain.cpp
@@ -153,7 +153,7 @@ void TransformToDomain::addDistributionParametersToSimulation(const SessionItem&
                                                               GISASSimulation& simulation)
 {
     if (beam_item.modelType() != "GISASBeam") {
-        Q_ASSERT(beam_item.modelType() == "GISASBeam");
+        ASSERT(beam_item.modelType() == "GISASBeam");
         return;
     }
 
@@ -169,7 +169,7 @@ void TransformToDomain::addBeamDivergencesToScan(const SessionItem& beam_item,
                                                  AngularSpecScan& scan)
 {
     if (beam_item.modelType() != "SpecularBeam") {
-        Q_ASSERT(beam_item.modelType() == "SpecularBeam");
+        ASSERT(beam_item.modelType() == "SpecularBeam");
         return;
     }
 
@@ -195,7 +195,7 @@ void TransformToDomain::setBeamDistribution(const std::string& parameter_name,
 
 void TransformToDomain::setSimulationOptions(Simulation* simulation, const SessionItem& item)
 {
-    Q_ASSERT(item.modelType() == "SimulationOptions");
+    ASSERT(item.modelType() == "SimulationOptions");
 
     if (auto optionItem = dynamic_cast<const SimulationOptionsItem*>(&item)) {
         simulation->getOptions().setNumberOfThreads(optionItem->getNumberOfThreads());
@@ -244,7 +244,7 @@ void setParameterDistributionToSimulation(const std::string& parameter_name,
 {
     const auto parameter_item = dynamic_cast<const T*>(item);
     if (!parameter_item) {
-        Q_ASSERT(parameter_item);
+        ASSERT(parameter_item);
         return;
     }
 
diff --git a/GUI/coregui/Views/CommonWidgets/ColumnResizer.cpp b/GUI/coregui/Views/CommonWidgets/ColumnResizer.cpp
index 9d30bf888cf7023bb023342b6b348e8b4d98f14b..ae3ed1086d1c8ffc9ff8eae4c971214bef4d2190 100644
--- a/GUI/coregui/Views/CommonWidgets/ColumnResizer.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ColumnResizer.cpp
@@ -167,7 +167,7 @@ bool ColumnResizer::eventFilter(QObject*, QEvent* event)
 
 void ColumnResizer::addWidgetsFromLayout(QLayout* layout, int column)
 {
-    Q_ASSERT(column >= 0);
+    ASSERT(column >= 0);
     QGridLayout* gridLayout = qobject_cast<QGridLayout*>(layout);
     QFormLayout* formLayout = qobject_cast<QFormLayout*>(layout);
     if (gridLayout) {
@@ -259,7 +259,7 @@ void ColumnResizer::dropWidgetsFromGridLayout(QGridLayout* layout)
 //    qDebug() << "ColumnResizer::onObjectDestroyed" << object;
 //    d->block_update = true;
 //    if(QWidget *widget = dynamic_cast<QWidget *>(object)) {
-//        Q_ASSERT(0);
+//        ASSERT(0);
 //        if(d->m_widgets.contains(widget)) {
 //            d->m_widgets.removeAll(widget);
 //        }
diff --git a/GUI/coregui/Views/CommonWidgets/DocksController.cpp b/GUI/coregui/Views/CommonWidgets/DocksController.cpp
index f0f4750362c9162483c8bcf194334568262b217f..9610cc83a786119861bf25f770b1e0e577138825 100644
--- a/GUI/coregui/Views/CommonWidgets/DocksController.cpp
+++ b/GUI/coregui/Views/CommonWidgets/DocksController.cpp
@@ -105,9 +105,9 @@ void DocksController::show_docks(const std::vector<int>& docks_to_show)
 void DocksController::setDockHeightForWidget(int height)
 {
     QWidget* widget = qobject_cast<QWidget*>(sender());
-    Q_ASSERT(widget);
+    ASSERT(widget);
     QDockWidget* dock = findDock(widget);
-    Q_ASSERT(dock);
+    ASSERT(dock);
 
     m_dock_info.m_dock = dock;
     m_dock_info.m_min_size = dock->minimumSize();
@@ -125,7 +125,7 @@ void DocksController::setDockHeightForWidget(int height)
 
 void DocksController::dockToMinMaxSizes()
 {
-    Q_ASSERT(m_dock_info.m_dock);
+    ASSERT(m_dock_info.m_dock);
     m_dock_info.m_dock->setMinimumSize(m_dock_info.m_min_size);
     m_dock_info.m_dock->setMaximumSize(m_dock_info.m_max_size);
     m_dock_info.m_dock = nullptr;
@@ -134,9 +134,9 @@ void DocksController::dockToMinMaxSizes()
 void DocksController::onWidgetCloseRequest()
 {
     QWidget* widget = qobject_cast<QWidget*>(sender());
-    Q_ASSERT(widget);
+    ASSERT(widget);
     QDockWidget* dock = findDock(widget);
-    Q_ASSERT(dock);
+    ASSERT(dock);
 
     dock->toggleViewAction()->trigger();
 }
diff --git a/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.cpp b/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.cpp
index 63579c911ca9d2174520833229f21ab7e6c8e113..c7a0ea4288bcc5f186851dc37e389d350b6d022a 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ItemComboToolBar.cpp
@@ -39,7 +39,7 @@ void ItemComboToolBar::setPresentation(const QString& name)
 void ItemComboToolBar::setPresentationList(const QStringList& presentationList,
                                            const QStringList& activeList)
 {
-    Q_ASSERT(presentationList.size());
+    ASSERT(presentationList.size());
 
     QString previous = currentPresentation();
 
@@ -90,7 +90,7 @@ void ItemComboToolBar::setComboConnected(bool value)
 void ItemComboToolBar::makeItemsEnabled(const QStringList& activePresentations)
 {
     const QStandardItemModel* model = dynamic_cast<const QStandardItemModel*>(m_comboBox->model());
-    Q_ASSERT(model);
+    ASSERT(model);
 
     for (int row = 0; row < m_comboBox->count(); ++row) {
         QString text = m_comboBox->itemText(row);
diff --git a/GUI/coregui/Views/CommonWidgets/ItemComboWidget.cpp b/GUI/coregui/Views/CommonWidgets/ItemComboWidget.cpp
index 60e9ef35487604f0ed87ece15baaf8e3eeedd20e..77484fb3c41e4d6b57bb16824031cedaa0e87f1f 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemComboWidget.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ItemComboWidget.cpp
@@ -53,7 +53,7 @@ void ItemComboWidget::setPresentation(const QString& presentationType)
 
     m_toolBar->setPresentation(presentationType);
 
-    Q_ASSERT(currentItem());
+    ASSERT(currentItem());
 
     SessionItemWidget* widget = m_presentationTypeToWidget[presentationType];
 
@@ -62,7 +62,7 @@ void ItemComboWidget::setPresentation(const QString& presentationType)
         m_stackedWidget->addWidget(widget);
         m_presentationTypeToWidget[presentationType] = widget;
     }
-    Q_ASSERT(widget);
+    ASSERT(widget);
     widget->setItem(currentItem());
     m_toolBar->setActionList(widget->actionList());
     m_stackedWidget->setCurrentWidget(widget);
diff --git a/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h b/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h
index f3492b96b9754e82205d874d732127d8bddaa87f..21743538cdb993f56f7439edd938a82e4d6e207a 100644
--- a/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h
+++ b/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h
@@ -101,7 +101,7 @@ template <class T> void ItemStackPresenter<T>::hideWidgets()
 
 template <class T> void ItemStackPresenter<T>::removeWidgetForItem(SessionItem* item)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
 
     if (m_single_widget)
         return;
diff --git a/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp b/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
index db70f0bb30aecba9c3c3b94b07a3d447fa3353aa..5217115d18f003b32108f8ca3c455319c64397ae 100644
--- a/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
@@ -57,7 +57,7 @@ void ModelTreeView::toggleExpanded()
 
 void ModelTreeView::setExpanded(bool expanded)
 {
-    Q_ASSERT(m_tree);
+    ASSERT(m_tree);
     if (expanded) {
         m_tree->expandAll();
         m_tree->resizeColumnToContents(0);
diff --git a/GUI/coregui/Views/CommonWidgets/SessionItemController.cpp b/GUI/coregui/Views/CommonWidgets/SessionItemController.cpp
index d76f3d13e77ea8cccbcc5691ec84cd9c265c6a88..215101abca0730f2900be9d3e9708f026d214838 100644
--- a/GUI/coregui/Views/CommonWidgets/SessionItemController.cpp
+++ b/GUI/coregui/Views/CommonWidgets/SessionItemController.cpp
@@ -19,7 +19,7 @@
 SessionItemController::SessionItemController(QObject* prt)
     : QObject(prt), m_item(nullptr), m_parent_subscribed(false)
 {
-    Q_ASSERT(parent());
+    ASSERT(parent());
 }
 
 SessionItemController::~SessionItemController()
@@ -101,8 +101,8 @@ void SessionItemController::onControllerDestroy()
 
 void SessionItemController::subscribeParent()
 {
-    Q_ASSERT(m_subscribe_callback);
-    Q_ASSERT(m_parent_subscribed == false);
+    ASSERT(m_subscribe_callback);
+    ASSERT(m_parent_subscribed == false);
     m_subscribe_callback();
     m_parent_subscribed = true;
 }
@@ -111,8 +111,8 @@ void SessionItemController::subscribeParent()
 
 void SessionItemController::unsubscribeParent()
 {
-    Q_ASSERT(m_unsubscribe_callback);
-    Q_ASSERT(m_parent_subscribed == true);
+    ASSERT(m_unsubscribe_callback);
+    ASSERT(m_parent_subscribed == true);
     m_unsubscribe_callback();
     m_parent_subscribed = false;
 }
diff --git a/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp b/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp
index f6129f9156c763ed4c7d06759459129152653a7b..730b8ad3c71fe0ef80d4c07b6e5e0f60675fbf16 100644
--- a/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp
@@ -51,7 +51,7 @@ FitActivityPanel::FitActivityPanel(JobModel* jobModel, QWidget* parent)
 
 void FitActivityPanel::setRealTimeWidget(JobRealTimeWidget* realTimeWidget)
 {
-    Q_ASSERT(realTimeWidget);
+    ASSERT(realTimeWidget);
     m_realTimeWidget = realTimeWidget;
 }
 
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
index 7b4352c216cd2d77e5b58c49742aa2dd7b673296..5b957aa44e8fccf4f28fd0607e3ce50433379dd6 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
@@ -58,13 +58,13 @@ FitComparisonController2D::FitComparisonController2D(QObject* parent)
 
 IntensityDataItem* FitComparisonController2D::diffItem()
 {
-    assert(dynamic_cast<IntensityDataItem*>(m_diff_item_controller->diffItem()));
+    ASSERT(dynamic_cast<IntensityDataItem*>(m_diff_item_controller->diffItem()));
     return dynamic_cast<IntensityDataItem*>(m_diff_item_controller->diffItem());
 }
 
 void FitComparisonController2D::setItem(JobItem* job_item)
 {
-    assert(job_item);
+    ASSERT(job_item);
 
     clear();
     m_diff_item_controller->setItem(job_item);
@@ -123,7 +123,7 @@ DiffItemController::DiffItemController(const QString& data_type, QObject* parent
       m_tempIntensityDataModel(new SessionModel("TempIntensityDataModel", this)),
       m_diff_item(dynamic_cast<DataItem*>(m_tempIntensityDataModel->insertNewItem(data_type)))
 {
-    assert(m_diff_item);
+    ASSERT(m_diff_item);
 }
 
 DiffItemController::~DiffItemController()
@@ -133,7 +133,7 @@ DiffItemController::~DiffItemController()
 
 void DiffItemController::setItem(JobItem* job_item)
 {
-    assert(job_item);
+    ASSERT(job_item);
     if (m_current_item)
         unsubscribe();
     m_current_item = job_item;
@@ -143,11 +143,11 @@ void DiffItemController::setItem(JobItem* job_item)
 
 void DiffItemController::updateDiffData()
 {
-    assert(m_current_item);
+    ASSERT(m_current_item);
 
     auto sim_data = m_current_item->dataItem();
     auto real_data = m_current_item->realDataItem()->dataItem();
-    assert(sim_data && real_data);
+    ASSERT(sim_data && real_data);
 
     if (!sim_data->getOutputData()) // job failed
         return;
@@ -165,7 +165,7 @@ DataItem* DiffItemController::diffItem()
 void DiffItemController::subscribe()
 {
     if (!m_current_item) {
-        assert(false);
+        ASSERT(false);
         return;
     }
 
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
index 4dd53ff5516b1f3f584a31761269ae4bf502f59b..708cbafb234008c445beaaadbfdd1bc8feb2d9fb 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
@@ -43,7 +43,7 @@ Data1DViewItem* FitComparison1DViewController::diffItemView()
 
 void FitComparison1DViewController::setItem(JobItem* job_item)
 {
-    assert(job_item);
+    ASSERT(job_item);
 
     clear();
     m_diff_item_controller->setJobItem(job_item);
@@ -104,7 +104,7 @@ void FitComparison1DViewController::deleteDiffViewItem()
 {
     auto parent = m_diff_view_item->parent();
     auto old_view_item = parent->takeRow(parent->rowOfChild(m_diff_view_item));
-    assert(old_view_item == m_diff_view_item);
+    ASSERT(old_view_item == m_diff_view_item);
     delete (old_view_item);
     m_diff_view_item = nullptr;
 }
@@ -114,7 +114,7 @@ DiffItemController::DiffItemController(const QString& data_type, QObject* parent
       m_private_model(new SessionModel("TempIntensityDataModel", this)),
       m_diff_item(dynamic_cast<DataItem*>(m_private_model->insertNewItem(data_type)))
 {
-    assert(m_diff_item);
+    ASSERT(m_diff_item);
 }
 
 DiffItemController::~DiffItemController()
@@ -124,7 +124,7 @@ DiffItemController::~DiffItemController()
 
 void DiffItemController::setJobItem(JobItem* job_item)
 {
-    assert(job_item);
+    ASSERT(job_item);
     if (m_current_item)
         unsubscribe();
     m_current_item = job_item;
@@ -134,11 +134,11 @@ void DiffItemController::setJobItem(JobItem* job_item)
 
 void DiffItemController::updateDiffData()
 {
-    assert(m_current_item);
+    ASSERT(m_current_item);
 
     auto sim_data = m_current_item->dataItem();
     auto real_data = m_current_item->realDataItem()->dataItem();
-    assert(sim_data && real_data);
+    ASSERT(sim_data && real_data);
 
     if (!sim_data->getOutputData()) // job failed
         return;
@@ -151,7 +151,7 @@ void DiffItemController::updateDiffData()
 void DiffItemController::subscribe()
 {
     if (!m_current_item) {
-        assert(false);
+        ASSERT(false);
         return;
     }
 
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.cpp
index 1d45f29a234b10eaf06433a65ac7a5c782b9c64b..a7f3280c71d8abdd470e169e8813cac879927637 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget1D.cpp
@@ -120,6 +120,6 @@ JobItem* FitComparisonWidget1D::jobItem()
 Data1DViewItem* FitComparisonWidget1D::viewItem()
 {
     auto view_item = dynamic_cast<Data1DViewItem*>(jobItem()->dataItemView());
-    Q_ASSERT(view_item);
+    ASSERT(view_item);
     return view_item;
 }
diff --git a/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp b/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp
index 657d56390b19f5d9a02c52eb4220f93f6d60c51a..029ac58c1bffe0b569ac88dfd723de6c10c70db1 100644
--- a/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp
@@ -37,7 +37,7 @@
 
 FitObjectiveBuilder::FitObjectiveBuilder(JobItem* jobItem) : m_jobItem(jobItem)
 {
-    Q_ASSERT(m_jobItem->fitSuiteItem());
+    ASSERT(m_jobItem->fitSuiteItem());
 }
 
 FitObjectiveBuilder::~FitObjectiveBuilder() = default;
@@ -127,8 +127,8 @@ std::unique_ptr<OutputData<double>> FitObjectiveBuilder::createOutputData() cons
         throw GUIHelpers::Error("FitObjectiveBuilder::createOutputData() -> No Real Data defined.");
 
     const DataItem* intensity_item = realDataItem->dataItem();
-    Q_ASSERT(intensity_item);
-    Q_ASSERT(intensity_item->getOutputData());
+    ASSERT(intensity_item);
+    ASSERT(intensity_item->getOutputData());
 
     return std::unique_ptr<OutputData<double>>(intensity_item->getOutputData()->clone());
 }
diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
index 597c44578f825e901bba60ab9240ad47c5057d93..2ea6e090df035b4c56cf37331e8359148bbf10a4 100644
--- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp
@@ -339,7 +339,7 @@ QVector<FitParameterItem*> FitParameterWidget::selectedFitParameters()
         if (SessionItem* item = m_fitParameterModel->itemForIndex(index)) {
             if (item->modelType() == "FitParameter") {
                 FitParameterItem* fitParItem = dynamic_cast<FitParameterItem*>(item);
-                Q_ASSERT(fitParItem);
+                ASSERT(fitParItem);
                 result.push_back(fitParItem);
             }
         }
@@ -370,7 +370,7 @@ QVector<FitParameterLinkItem*> FitParameterWidget::selectedFitParameterLinks()
             if (item->parent()->modelType() == "FitParameterLink") {
                 FitParameterLinkItem* fitParItem =
                     dynamic_cast<FitParameterLinkItem*>(item->parent());
-                Q_ASSERT(fitParItem);
+                ASSERT(fitParItem);
                 result.push_back(fitParItem);
             }
         }
@@ -408,7 +408,7 @@ void FitParameterWidget::updateInfoLabel()
 
 void FitParameterWidget::connectTuningWidgetSelection(bool active)
 {
-    Q_ASSERT(m_tuningWidget);
+    ASSERT(m_tuningWidget);
 
     if (active) {
         connect(m_tuningWidget->selectionModel(),
diff --git a/GUI/coregui/Views/FitWidgets/FitSessionController.cpp b/GUI/coregui/Views/FitWidgets/FitSessionController.cpp
index 45561b67b0905489bedf87aaed6312b4891e980c..dd3e82b56460cfa08ee79c6db98a37100baab6fc 100644
--- a/GUI/coregui/Views/FitWidgets/FitSessionController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitSessionController.cpp
@@ -52,7 +52,7 @@ void FitSessionController::setItem(JobItem* item)
         throw GUIHelpers::Error("FitSuiteManager::setItem() -> Item was already set.");
 
     m_jobItem = item;
-    Q_ASSERT(m_jobItem);
+    ASSERT(m_jobItem);
 
     // no need to unsubscribe from jobItem on jobItem destroy. FitSessionManager deletes
     // controller right after the jobItem.
diff --git a/GUI/coregui/Views/FitWidgets/FitSessionWidget.cpp b/GUI/coregui/Views/FitWidgets/FitSessionWidget.cpp
index ec37c2a57109315ea2c6c7602b7e4c56f65fd34d..a55fe03f9963822269a8ed6e214682af88eaed87 100644
--- a/GUI/coregui/Views/FitWidgets/FitSessionWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitSessionWidget.cpp
@@ -50,7 +50,7 @@ FitSessionWidget::FitSessionWidget(QWidget* parent)
 
 void FitSessionWidget::setItem(JobItem* jobItem)
 {
-    Q_ASSERT(jobItem);
+    ASSERT(jobItem);
     m_fitParametersWidget->setItem(jobItem);
     m_minimizerSettingsWidget->setItem(jobItem);
     m_controlWidget->setItem(jobItem);
@@ -58,8 +58,8 @@ void FitSessionWidget::setItem(JobItem* jobItem)
 
 void FitSessionWidget::setModelTuningWidget(ParameterTuningWidget* tuningWidget)
 {
-    Q_ASSERT(m_fitParametersWidget);
-    Q_ASSERT(tuningWidget);
+    ASSERT(m_fitParametersWidget);
+    ASSERT(tuningWidget);
     m_fitParametersWidget->setParameterTuningWidget(tuningWidget);
 }
 
diff --git a/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.cpp b/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.cpp
index 36a19d6880e90d89a32365742ad6c3035e07d047..583e3fdf62c89f35c4e59a52f12015fd0529f0ce 100644
--- a/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.cpp
+++ b/GUI/coregui/Views/FitWidgets/MinimizerSettingsWidget.cpp
@@ -41,13 +41,13 @@ QSize MinimizerSettingsWidget::minimumSizeHint() const
 
 void MinimizerSettingsWidget::setItem(JobItem* jobItem)
 {
-    Q_ASSERT(jobItem);
+    ASSERT(jobItem);
     setItem(jobItem->fitSuiteItem()->minimizerContainerItem());
 }
 
 void MinimizerSettingsWidget::setItem(MinimizerContainerItem* minimizerItem)
 {
-    Q_ASSERT(minimizerItem);
+    ASSERT(minimizerItem);
     m_currentItem = minimizerItem;
     m_componentEditor->setItem(minimizerItem);
 }
diff --git a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
index d522c79366d6af67e6a22c6e7a1f582e86103df8..4283126283b5339ecaa1052b9d57f143abeba9cd 100644
--- a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp
@@ -89,7 +89,7 @@ int LinkInstrumentManager::instrumentComboIndex(const QString& identifier)
 
 QString LinkInstrumentManager::instrumentIdentifier(int comboIndex)
 {
-    Q_ASSERT(comboIndex >= 0 && comboIndex < m_instrumentVec.size());
+    ASSERT(comboIndex >= 0 && comboIndex < m_instrumentVec.size());
     return m_instrumentVec[comboIndex].m_identifier;
 }
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.cpp
index e677e0c2b2210b8e6da9c4841b3d995f2bbc99a0..001ef329c6d0e36f0f5cf99c3874d7369a6cac9c 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataMaskWidget.cpp
@@ -61,7 +61,7 @@ void RealDataMaskWidget::unsubscribeFromItem()
 IntensityDataItem* RealDataMaskWidget::intensityDataItem()
 {
     IntensityDataItem* result = dynamic_cast<RealDataItem*>(currentItem())->intensityDataItem();
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.cpp
index 34c85156ba7722360616407dc88c04576aa97fad..6f4f259cb9f2c6ae5be1e68418fb063b13fbc5f2 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataPresenter.cpp
@@ -20,7 +20,7 @@
 #include "GUI/coregui/Views/SpecularDataWidgets/SpecularDataWidget.h"
 #include "GUI/coregui/utils/GUIHelpers.h"
 #include <QAction>
-#include <cassert>
+#include "Core/Basics/Assert.h"
 
 RealDataPresenter::RealDataPresenter(QWidget* parent) : ItemComboWidget(parent)
 {
@@ -37,7 +37,7 @@ QList<QAction*> RealDataPresenter::actionList()
 
 QStringList RealDataPresenter::activePresentationList(SessionItem* item)
 {
-    assert(item && dynamic_cast<RealDataItem*>(item));
+    ASSERT(item && dynamic_cast<RealDataItem*>(item));
     const auto& underlying_data_model = dynamic_cast<RealDataItem*>(item)->underlyingDataModel();
 
     QStringList result;
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
index 2c8681b476319e694113e273c7737193446bf929..71e00fd601b1b33425c2ac74dfe7032ebef864f1 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataPropertiesWidget.cpp
@@ -166,7 +166,7 @@ void RealDataPropertiesWidget::setComboToIdentifier(const QString& identifier)
     setComboConnected(false);
     m_current_id = identifier;
     int index = m_linkManager->instrumentComboIndex(identifier);
-    Q_ASSERT(index >= 0);
+    ASSERT(index >= 0);
     m_instrumentCombo->setCurrentIndex(index);
     setComboConnected(true);
 }
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
index 24c3ddbbb15b54fa9711171ac5a8f6e040dca5fd..5ea82226383ee3813e4a3ddd3c411af4d60d182b 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
@@ -123,8 +123,8 @@ void RealDataSelectorActions::setSelectionModel(QItemSelectionModel* selectionMo
 
 void RealDataSelectorActions::importDataLoop(int ndim)
 {
-    Q_ASSERT(m_realDataModel);
-    Q_ASSERT(m_selectionModel);
+    ASSERT(m_realDataModel);
+    ASSERT(m_selectionModel);
     QString filter_string_ba;
     if (ndim == 2) {
         filter_string_ba = "Intensity File (*.int *.gz *.tif *.tiff *.txt *.csv);;"
@@ -198,9 +198,9 @@ void RealDataSelectorActions::onRotateDataRequest()
 
     RealDataItem* dataItem =
         dynamic_cast<RealDataItem*>(m_realDataModel->itemForIndex(currentIndex));
-    Q_ASSERT(dataItem);
+    ASSERT(dataItem);
     auto intensityItem = dataItem->intensityDataItem();
-    Q_ASSERT(intensityItem);
+    ASSERT(intensityItem);
 
     if (rotationAffectsSetup(*intensityItem)) {
         if (!openRotateWarningDialog(nullptr))
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp b/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
index 70ff7a791f567967114ae2464ba80d777a00c73a..65d78c4f08ec6a72773a583413967773cc74b0c0 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionEditor.cpp
@@ -68,14 +68,14 @@ void DistributionEditor::onPropertyChanged(const QString& property_name)
 GroupItem* DistributionEditor::groupItem()
 {
     auto result = dynamic_cast<GroupItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
 DistributionItem* DistributionEditor::distributionItem()
 {
     auto result = dynamic_cast<DistributionItem*>(groupItem()->currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp b/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
index 28e095323cb1684f96f0e73a39d98e5f257d2244..0f97b2d672fa63b5385e118bf352cec6b7a75611 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
@@ -174,7 +174,7 @@ void DistributionWidget::plot_distributions()
 
 void DistributionWidget::plot_single_value()
 {
-    Q_ASSERT(m_item->displayName() == "DistributionNone");
+    ASSERT(m_item->displayName() == "DistributionNone");
 
     double value = m_item->getItemValue(DistributionNoneItem::P_MEAN).toDouble();
 
@@ -187,7 +187,7 @@ void DistributionWidget::plot_single_value()
 
 void DistributionWidget::plot_multiple_values()
 {
-    Q_ASSERT(m_item->displayName() != "DistributionNone");
+    ASSERT(m_item->displayName() != "DistributionNone");
 
     int numberOfSamples = m_item->getItemValue(DistributionItem::P_NUMBER_OF_SAMPLES).toInt();
     double sigmafactor(0.0);
@@ -209,7 +209,7 @@ void DistributionWidget::plot_multiple_values()
     std::transform(xp.begin(), xp.end(), yp.begin(),
                    [&](double value) { return dist->probabilityDensity(value); });
     double sumOfWeights = std::accumulate(yp.begin(), yp.end(), 0.0);
-    Q_ASSERT(sumOfWeights != 0.0);
+    ASSERT(sumOfWeights != 0.0);
 
 #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
     QVector<double> xBar(xp.begin(), xp.end());
@@ -255,7 +255,7 @@ void DistributionWidget::setPlotRange(const QPair<double, double>& xRange,
 
 void DistributionWidget::plotBars(const QVector<double>& xbars, const QVector<double>& ybars)
 {
-    Q_ASSERT(xbars.size() > 0);
+    ASSERT(xbars.size() > 0);
 
     auto xRange = xRangeForValues(xbars);
     auto yRange = yRangeForValues(ybars);
@@ -336,14 +336,14 @@ QPair<double, double> xRangeForValues(double value1, double value2)
 {
     const double range_factor(0.1);
     double dr = (value2 - value1) * range_factor;
-    Q_ASSERT(dr > 0.0);
+    ASSERT(dr > 0.0);
 
     return QPair<double, double>(value1 - dr, value2 + dr);
 }
 
 QPair<double, double> xRangeForValues(const QVector<double>& xvec)
 {
-    Q_ASSERT(!xvec.isEmpty());
+    ASSERT(!xvec.isEmpty());
     return xvec.size() == 1 ? xRangeForValue(xvec.front())
                             : xRangeForValues(xvec.front(), xvec.back());
 }
diff --git a/GUI/coregui/Views/InfoWidgets/OverlayLabelController.cpp b/GUI/coregui/Views/InfoWidgets/OverlayLabelController.cpp
index 569a68d604f6d371258e8fa04c998e68da49484f..22e964d40fe444a1359f6b9f70b8b9c05830d446 100644
--- a/GUI/coregui/Views/InfoWidgets/OverlayLabelController.cpp
+++ b/GUI/coregui/Views/InfoWidgets/OverlayLabelController.cpp
@@ -39,7 +39,7 @@ void OverlayLabelController::setArea(QAbstractScrollArea* area)
 void OverlayLabelController::setShown(bool shown)
 {
     if (shown) {
-        Q_ASSERT(m_area);
+        ASSERT(m_area);
         if (!m_label) {
             m_label = new OverlayLabelWidget(m_area);
             m_label->setText(m_text);
diff --git a/GUI/coregui/Views/InfoWidgets/WarningSign.cpp b/GUI/coregui/Views/InfoWidgets/WarningSign.cpp
index 4108629209e7d00cedab7d266e08b0d997bf25ce..f682e70ab99c81059a857fef0b1370c76973a6a5 100644
--- a/GUI/coregui/Views/InfoWidgets/WarningSign.cpp
+++ b/GUI/coregui/Views/InfoWidgets/WarningSign.cpp
@@ -54,7 +54,7 @@ void WarningSign::setWarningHeader(const QString& warningHeader)
 
 void WarningSign::setWarningMessage(const QString& warningMessage)
 {
-    Q_ASSERT(m_area);
+    ASSERT(m_area);
 
     if (m_clear_just_had_happened) {
         m_clear_just_had_happened = false;
@@ -102,7 +102,7 @@ void WarningSign::updateLabelGeometry()
 
 QPoint WarningSign::positionForWarningSign() const
 {
-    Q_ASSERT(m_area);
+    ASSERT(m_area);
 
     int x = m_area->width() - xpos_offset;
     int y = m_area->height() - ypos_offset;
diff --git a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
index 682446b578979f4a6dc51c5f8c41e1f681e1b10a..974653ba7c7c38b966907a6d863ef77c039d4c52 100644
--- a/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/DetectorMaskDelegate.cpp
@@ -37,8 +37,8 @@ void DetectorMaskDelegate::initMaskEditorContext(MaskEditor* maskEditor,
     m_instrumentModel = instrumentModel;
     m_detectorItem = detectorItem;
 
-    Q_ASSERT(m_instrumentModel);
-    Q_ASSERT(m_detectorItem);
+    ASSERT(m_instrumentModel);
+    ASSERT(m_detectorItem);
 
     createIntensityDataItem();
     m_detectorItem->createMaskContainer();
@@ -57,7 +57,7 @@ void DetectorMaskDelegate::createIntensityDataItem()
 
     m_intensityItem =
         dynamic_cast<IntensityDataItem*>(m_tempIntensityDataModel->insertNewItem("IntensityData"));
-    Q_ASSERT(m_intensityItem);
+    ASSERT(m_intensityItem);
 
     m_intensityItem->getItem(IntensityDataItem::P_PROJECTIONS_FLAG)->setEnabled(false);
     m_intensityItem->setItemValue(IntensityDataItem::P_IS_INTERPOLATED, false);
diff --git a/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.cpp
index 6264c1b5ba8b3f4c7c956bc23b33948545e668bd..0253e16eb7cf0e0f35df44ed7575827bcb387532 100644
--- a/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/EnvironmentEditor.cpp
@@ -58,6 +58,6 @@ void EnvironmentEditor::unsubscribeFromItem()
 InstrumentItem* EnvironmentEditor::instrumentItem()
 {
     auto result = dynamic_cast<InstrumentItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
index 74abaad110b7e7ba10d853182fdb99a73b7495cf..7a3d7ea1353d7a1d0d7ed92dd69e4c8c705662ad 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASBeamEditor.cpp
@@ -85,7 +85,7 @@ void GISASBeamEditor::unsubscribeFromItem()
 GISASInstrumentItem* GISASBeamEditor::instrumentItem()
 {
     auto result = dynamic_cast<GISASInstrumentItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.cpp
index c709662780fcea894866bd69779767f442c78e4b..5b0f1fb297963cbde2ad0c0c2c2bd8fc5fad7333 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASDetectorEditor.cpp
@@ -53,7 +53,7 @@ void GISASDetectorEditor::unsubscribeFromItem()
 Instrument2DItem* GISASDetectorEditor::instrumentItem()
 {
     auto result = dynamic_cast<Instrument2DItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp
index dfdab242cd47315d6b85a6903560e1f874b4e504..af03d57f4c50c2317928c11460d6ec230409baf0 100644
--- a/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp
@@ -52,6 +52,6 @@ void GISASInstrumentEditor::subscribeToItem()
 GISASInstrumentItem* GISASInstrumentEditor::instrumentItem()
 {
     auto result = dynamic_cast<GISASInstrumentItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
diff --git a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.cpp b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.cpp
index 91f114647805b530ac7d58d52e85264cb049fb46..4f38b65c1d7a8d0a10e416fbd18e7787a72dc01a 100644
--- a/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/InstrumentViewActions.cpp
@@ -70,7 +70,7 @@ QMenu* InstrumentViewActions::instrumentMenu()
 void InstrumentViewActions::onAddInstrument()
 {
     auto action = qobject_cast<QAction*>(sender());
-    Q_ASSERT(action && action->data().canConvert(QVariant::String));
+    ASSERT(action && action->data().canConvert(QVariant::String));
 
     QString instrumentType = action->data().toString();
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.cpp
index f0e2a03e063dbf86ec4a5458ac0fd5271146ddd3..41b0963f643cfe4c2d40aa0cbfc39e06dbae80d1 100644
--- a/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/OffSpecBeamEditor.cpp
@@ -85,7 +85,7 @@ void OffSpecBeamEditor::unsubscribeFromItem()
 OffSpecInstrumentItem* OffSpecBeamEditor::instrumentItem()
 {
     auto result = dynamic_cast<OffSpecInstrumentItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.cpp
index 2e3ac60a764ea6c1df2af396ccd9b5df75801375..a4b6b76962b5d64db2a759ac88682b5ea5b12280 100644
--- a/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/OffSpecInstrumentEditor.cpp
@@ -52,6 +52,6 @@ void OffSpecInstrumentEditor::subscribeToItem()
 OffSpecInstrumentItem* OffSpecInstrumentEditor::instrumentItem()
 {
     auto result = dynamic_cast<OffSpecInstrumentItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
diff --git a/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
index fb0857bcc2305c6a2457eee3ee9db6317cd4f661..e41af72b241a5ae71056a4c9221a265bb6cb967c 100644
--- a/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/PolarizationAnalysisEditor.cpp
@@ -77,7 +77,7 @@ void PolarizationAnalysisEditor::unsubscribeFromItem()
 GISASInstrumentItem* PolarizationAnalysisEditor::instrumentItem()
 {
     auto result = dynamic_cast<GISASInstrumentItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
index e977b06fe8d06592598a1abe14c473214a5d3818..4122927aaa0b12c986b23a2ec9841d4867d31e71 100644
--- a/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
@@ -60,7 +60,7 @@ void RectangularDetectorEditor::unsubscribeFromItem()
 RectangularDetectorItem* RectangularDetectorEditor::detectorItem()
 {
     auto result = dynamic_cast<RectangularDetectorItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp
index e3bf615ccfe6e66e82505aa9c90f1337cf950dc1..b2f99c8cdaef4f30a631b9f354c06d9992ecf8c0 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp
@@ -64,7 +64,7 @@ SpecularBeamEditor::SpecularBeamEditor(ColumnResizer* columnResizer, QWidget* pa
 void SpecularBeamEditor::subscribeToItem()
 {
     const auto beam_item = instrumentItem()->beamItem();
-    Q_ASSERT(beam_item);
+    ASSERT(beam_item);
 
     m_intensityEditor->setItem(beam_item->getItem(SpecularBeamItem::P_INTENSITY));
 
@@ -91,7 +91,7 @@ void SpecularBeamEditor::unsubscribeFromItem()
 SpecularInstrumentItem* SpecularBeamEditor::instrumentItem()
 {
     auto result = dynamic_cast<SpecularInstrumentItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.cpp
index 77b6e856bf242a3388e372159ab9a9d2a3f696a3..bd9a8e23a46ca930bda3403eef5c14efd2cd82de 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/SpecularInstrumentEditor.cpp
@@ -47,6 +47,6 @@ void SpecularInstrumentEditor::subscribeToItem()
 SpecularInstrumentItem* SpecularInstrumentEditor::instrumentItem()
 {
     auto result = dynamic_cast<SpecularInstrumentItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
diff --git a/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.cpp
index fa49920901cab4a01e5b2c39ea7a2e9b3954a5a5..072df909bd02ac4571f80e98b0c34fe6750148d1 100644
--- a/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.cpp
+++ b/GUI/coregui/Views/InstrumentWidgets/SphericalDetectorEditor.cpp
@@ -66,6 +66,6 @@ void SphericalDetectorEditor::unsubscribeFromItem()
 SphericalDetectorItem* SphericalDetectorEditor::detectorItem()
 {
     auto result = dynamic_cast<SphericalDetectorItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
index 4c6dd651809eb7a1b9da470bd1264c475f9c7126..8b86f4c00410108125993271ed5957328c63b7bf 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
@@ -312,7 +312,7 @@ void ColorMap::setFixedColorMapMargins()
 
 void ColorMap::setColorMapFromItem(IntensityDataItem* intensityItem)
 {
-    Q_ASSERT(intensityItem);
+    ASSERT(intensityItem);
 
     m_block_update = true;
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.cpp b/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.cpp
index cb83e9090e44ea65f370bf89e549b6f0300e7774..6b68262dddcbb6004d5b91412ffae0f3de12ed0c 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/FontScalingEvent.cpp
@@ -33,7 +33,7 @@ bool FontScalingEvent::eventFilter(QObject* obj, QEvent* event)
 {
     if (event->type() == QEvent::Resize) {
         QResizeEvent* resizeEvent = static_cast<QResizeEvent*>(event);
-        Q_ASSERT(resizeEvent);
+        ASSERT(resizeEvent);
 
         if (!m_fonts.contains(tick_font)) {
             backupFonts();
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
index c7a4d455c3006b665c882f7708be6c63c42050c0..1cb86de6ecc96e07c74d8f5d50a8293bfae37b2b 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
@@ -113,7 +113,7 @@ void IntensityDataCanvas::subscribeToItem()
 IntensityDataItem* IntensityDataCanvas::intensityDataItem()
 {
     IntensityDataItem* result = dynamic_cast<IntensityDataItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.cpp
index 6e69662587992e3aadea8031fd3cefa7b405a9b4..ee491fca90504075fe9e4dcd3216c14a733f40a3 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataProjectionsWidget.cpp
@@ -58,7 +58,7 @@ IntensityDataItem* IntensityDataProjectionsWidget::intensityDataItem()
 ProjectionContainerItem*
 IntensityDataProjectionsWidget::projectionContainer(IntensityDataItem* intensityItem)
 {
-    Q_ASSERT(intensityItem);
+    ASSERT(intensityItem);
 
     auto containerItem = intensityItem->getItem(IntensityDataItem::T_PROJECTIONS);
     if (!containerItem)
diff --git a/GUI/coregui/Views/IntensityDataWidgets/Plot1D.cpp b/GUI/coregui/Views/IntensityDataWidgets/Plot1D.cpp
index 33454afa273f87c1cb7cbd76d1830bfcd9498b28..6eb081a130a8fb2b2dd9be2dab09d9ef3526ed69 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/Plot1D.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/Plot1D.cpp
@@ -198,7 +198,7 @@ void Plot1D::refreshPlotData()
     m_block_update = true;
 
     auto view_item = viewItem();
-    assert(view_item);
+    ASSERT(view_item);
 
     setAxesRangeFromItem(view_item);
     setAxesLabelsFromItem(view_item);
@@ -229,7 +229,7 @@ void Plot1D::setAxesLabelsFromItem(Data1DViewItem* item)
 
 void Plot1D::setLabel(const BasicAxisItem* item, QCPAxis* axis, QString label)
 {
-    assert(item && axis);
+    ASSERT(item && axis);
     if (item->getItemValue(BasicAxisItem::P_TITLE_IS_VISIBLE).toBool())
         axis->setLabel(std::move(label));
     else
@@ -259,7 +259,7 @@ Data1DViewItem* Plot1D::viewItem()
 const Data1DViewItem* Plot1D::viewItem() const
 {
     const auto result = dynamic_cast<const Data1DViewItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp b/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp
index bea0334d086bdb079b7474d830b5d352f1e15fae..abece750e3573c6713d09978618c3116663897df 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp
@@ -123,7 +123,7 @@ void ProjectionsPlot::onProjectionPropertyChanged(SessionItem* item, const QStri
 IntensityDataItem* ProjectionsPlot::intensityItem()
 {
     IntensityDataItem* result = dynamic_cast<IntensityDataItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
@@ -131,7 +131,7 @@ ProjectionContainerItem* ProjectionsPlot::projectionContainerItem()
 {
     ProjectionContainerItem* result = dynamic_cast<ProjectionContainerItem*>(
         intensityItem()->getItem(IntensityDataItem::T_PROJECTIONS));
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.cpp b/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.cpp
index c8cc41a7d78bd67b736ec35e4ec714cb0e36edc0..6d25f626a1bcf0f22abc242baa866b521ca0086f 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/SavePlotAssistant.cpp
@@ -90,7 +90,7 @@ void SavePlotAssistant::saveToFile(const QString& fileName, QCustomPlot* plot,
     }
 
     else {
-        Q_ASSERT(output_data);
+        ASSERT(output_data);
         IntensityDataIOFactory::writeOutputData(*output_data, fileName.toStdString());
     }
 }
diff --git a/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp b/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp
index 6332bfff06213b1a28783943273fb45b390f42ce..9ddd13b906ec88ee6ecb595cbac8d6cbf542c325 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp
@@ -49,7 +49,7 @@ SaveProjectionsAssistant::~SaveProjectionsAssistant() = default;
 
 void SaveProjectionsAssistant::saveProjections(QWidget* parent, IntensityDataItem* intensityItem)
 {
-    Q_ASSERT(intensityItem);
+    ASSERT(intensityItem);
 
     QString defaultName = ProjectUtils::userExportDir() + "/untitled.txt";
     QString fileName = QFileDialog::getSaveFileName(parent, "Save projections data", defaultName);
diff --git a/GUI/coregui/Views/JobWidgets/JobListViewDelegate.cpp b/GUI/coregui/Views/JobWidgets/JobListViewDelegate.cpp
index 5d9334210ceca15a0082e1b3e6930d3857d8c1b5..05e77b206accda9d8d8ce0518d735b1adc4c6261 100644
--- a/GUI/coregui/Views/JobWidgets/JobListViewDelegate.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobListViewDelegate.cpp
@@ -41,10 +41,10 @@ void JobListViewDelegate::paint(QPainter* painter, const QStyleOptionViewItem& o
         painter->fillRect(option.rect, option.palette.highlight());
 
     const JobModel* model = static_cast<const JobModel*>(index.model());
-    Q_ASSERT(model);
+    ASSERT(model);
 
     const JobItem* item = model->getJobItemForIndex(index);
-    Q_ASSERT(item);
+    ASSERT(item);
 
     painter->save();
 
@@ -79,10 +79,10 @@ bool JobListViewDelegate::editorEvent(QEvent* event, QAbstractItemModel* model,
     }
 
     const JobModel* jqmodel = static_cast<const JobModel*>(index.model());
-    Q_ASSERT(model);
+    ASSERT(model);
 
     const JobItem* item = jqmodel->getJobItemForIndex(index);
-    Q_ASSERT(item);
+    ASSERT(item);
 
     if (!item->isRunning())
         return false;
diff --git a/GUI/coregui/Views/JobWidgets/JobListWidget.cpp b/GUI/coregui/Views/JobWidgets/JobListWidget.cpp
index 26043412918ded082e1d5db90ba2f9e5b5a6e580..4dc041c65b65f12bd83b012a9d233b1548c29917 100644
--- a/GUI/coregui/Views/JobWidgets/JobListWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobListWidget.cpp
@@ -53,7 +53,7 @@ JobListWidget::JobListWidget(QWidget* parent)
 
 void JobListWidget::setModel(JobModel* model)
 {
-    Q_ASSERT(model);
+    ASSERT(model);
     if (model != m_jobModel) {
         m_jobModel = model;
         m_listView->setModel(model);
@@ -88,7 +88,7 @@ QSize JobListWidget::minimumSizeHint() const
 
 void JobListWidget::makeJobItemSelected(JobItem* jobItem)
 {
-    Q_ASSERT(jobItem);
+    ASSERT(jobItem);
     QModelIndexList selected = m_listView->selectionModel()->selectedIndexes();
 
     // Already selected, but we still will emit the signal to notify widgets.
@@ -111,7 +111,7 @@ void JobListWidget::onItemSelectionChanged(SessionItem* item)
     JobItem* jobItem(nullptr);
     if (item) {
         jobItem = dynamic_cast<JobItem*>(item);
-        Q_ASSERT(jobItem);
+        ASSERT(jobItem);
     }
     emit selectionChanged(jobItem);
 }
diff --git a/GUI/coregui/Views/JobWidgets/JobProgressAssistant.cpp b/GUI/coregui/Views/JobWidgets/JobProgressAssistant.cpp
index 3dc4afe79b3fe0025308aff224483d9ad394abcc..8bf2f4e02dfa91df4fe4b72c0ad2ee1a5c4c4b74 100644
--- a/GUI/coregui/Views/JobWidgets/JobProgressAssistant.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobProgressAssistant.cpp
@@ -30,7 +30,7 @@ JobProgressAssistant::JobProgressAssistant(MainWindow* mainWindow)
 
 void JobProgressAssistant::onGlobalProgress(int progress)
 {
-    Q_ASSERT(m_mainWindow->progressBar());
+    ASSERT(m_mainWindow->progressBar());
     if (progress < 0 || progress >= 100) {
         m_mainWindow->progressBar()->setFinished(true);
         m_mainWindow->progressBar()->hide();
diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp b/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp
index 4f61a08e3da35ce72688d28242bc1d7e6fd03f9e..5e144ee0138e0f75aa20d604dc3e507662757665 100644
--- a/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp
@@ -84,7 +84,7 @@ void JobSelectorActions::equalizeSelectedToJob(int selected_id)
         return;
 
     JobItem* referenceItem = m_jobModel->getJobItemForIndex(selectedList.at(selected_id));
-    Q_ASSERT(referenceItem);
+    ASSERT(referenceItem);
 
     IntensityDataItem* referenceDataItem = referenceItem->intensityDataItem();
     if (!referenceDataItem)
diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp
index 0a9e4770efa241f1604dcc06ef12c1a490ff21d2..fc61e22142b507b21242b598d26dfea96df1d3c8 100644
--- a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp
@@ -83,7 +83,7 @@ const JobItem* JobSelectorWidget::currentJobItem() const
 
 void JobSelectorWidget::makeJobItemSelected(JobItem* item)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
     m_jobListWidget->makeJobItemSelected(item);
 }
 
diff --git a/GUI/coregui/Views/JobWidgets/JobViewStatusBar.cpp b/GUI/coregui/Views/JobWidgets/JobViewStatusBar.cpp
index d25197e23b46f263604e2b96db9c995d8954a32a..5b967bf9597df08b64623f37eb22394ac3a03a0e 100644
--- a/GUI/coregui/Views/JobWidgets/JobViewStatusBar.cpp
+++ b/GUI/coregui/Views/JobWidgets/JobViewStatusBar.cpp
@@ -73,7 +73,7 @@ void JobViewStatusBar::onActivityChanged(int activity)
 
 void JobViewStatusBar::initAppearance()
 {
-    Q_ASSERT(m_mainWindow);
+    ASSERT(m_mainWindow);
     m_mainWindow->statusBar()->addWidget(this, 1);
     m_mainWindow->statusBar()->setSizeGripEnabled(false);
     this->hide();
diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
index b90c215b03674b5ec0f0ad06b31f04fa0adcfa72..5c116dedeea9e6af6f3d06c6f3bcc54d682cb195 100644
--- a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
@@ -61,7 +61,7 @@ ParameterTuningWidget::ParameterTuningWidget(QWidget* parent)
 
 QItemSelectionModel* ParameterTuningWidget::selectionModel()
 {
-    Q_ASSERT(m_treeView);
+    ASSERT(m_treeView);
     return m_treeView->selectionModel();
 }
 
@@ -80,7 +80,7 @@ QVector<ParameterItem*> ParameterTuningWidget::getSelectedParameters()
 
 void ParameterTuningWidget::onCurrentLinkChanged(SessionItem* item)
 {
-    Q_ASSERT(jobItem());
+    ASSERT(jobItem());
 
     if (jobItem()->isRunning())
         return;
@@ -106,7 +106,7 @@ void ParameterTuningWidget::onLockZValueChanged(bool value)
 
 void ParameterTuningWidget::updateParameterModel()
 {
-    Q_ASSERT(m_jobModel);
+    ASSERT(m_jobModel);
 
     if (!jobItem())
         return;
@@ -134,8 +134,8 @@ void ParameterTuningWidget::onCustomContextMenuRequested(const QPoint& point)
 
 void ParameterTuningWidget::restoreModelsOfCurrentJobItem()
 {
-    Q_ASSERT(m_jobModel);
-    Q_ASSERT(jobItem());
+    ASSERT(m_jobModel);
+    ASSERT(jobItem());
 
     if (jobItem()->isRunning())
         return;
@@ -196,7 +196,7 @@ JobItem* ParameterTuningWidget::jobItem()
 
 void ParameterTuningWidget::updateDragAndDropSettings()
 {
-    Q_ASSERT(jobItem());
+    ASSERT(jobItem());
     if (jobItem()->getStatus() == "Fitting") {
         setTuningDelegateEnabled(false);
         m_treeView->setDragDropMode(QAbstractItemView::NoDragDrop);
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.cpp b/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.cpp
index 5e3a7086e3fb223ea7b45fa16e9770576d2ccae9..21ff270e248b6bd505b98fb5052495b5536fd431 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.cpp
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsEditorActions.cpp
@@ -63,8 +63,8 @@ QList<QAction*> ProjectionsEditorActions::topToolBarActions()
 
 void ProjectionsEditorActions::onDeleteAction()
 {
-    Q_ASSERT(m_model);
-    Q_ASSERT(m_selectionModel);
+    ASSERT(m_model);
+    ASSERT(m_selectionModel);
 
     QModelIndexList indexes = m_selectionModel->selectedIndexes();
     while (indexes.size()) {
diff --git a/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.cpp b/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.cpp
index 56ccca6b248633d6d3336aaba674958306869a99..a3d20bd1100a96f1dca20ebfe90f4d3f9bcbac28 100644
--- a/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.cpp
+++ b/GUI/coregui/Views/JobWidgets/ProjectionsEditorCanvas.cpp
@@ -142,7 +142,7 @@ void ProjectionsEditorCanvas::onActivityModeChanged(MaskEditorFlags::Activity va
 
 void ProjectionsEditorCanvas::setColorMap(ColorMap* colorMap)
 {
-    Q_ASSERT(colorMap);
+    ASSERT(colorMap);
     setConnected(false);
 
     m_colorMap = colorMap;
diff --git a/GUI/coregui/Views/MaskWidgets/IShape2DView.cpp b/GUI/coregui/Views/MaskWidgets/IShape2DView.cpp
index bf649d864c4f1e2db33937894e72c7feeef6655b..e5f20038cf4144266f1a337642787d0b09cca393 100644
--- a/GUI/coregui/Views/MaskWidgets/IShape2DView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/IShape2DView.cpp
@@ -66,7 +66,7 @@ SessionItem* IShape2DView::parameterizedItem()
 
 void IShape2DView::setSceneAdaptor(const ISceneAdaptor* adaptor)
 {
-    Q_ASSERT(adaptor);
+    ASSERT(adaptor);
 
     if (m_adaptor != adaptor) {
         if (m_adaptor)
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
index 7151f03c4fb839f6821156f72fce74bb043c4c7b..97ea28c65ec9b17035346deeb507e8c71836eea8 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditor.cpp
@@ -50,9 +50,9 @@ void MaskEditor::setMaskContext(SessionModel* model, const QModelIndex& maskCont
 {
     m_editorPropertyPanel->setMaskContext(model, maskContainerIndex, intensityItem);
 
-    Q_ASSERT(intensityItem);
-    Q_ASSERT(maskContainerIndex.isValid());
-    Q_ASSERT(model->itemForIndex(maskContainerIndex)->modelType() == "MaskContainer");
+    ASSERT(intensityItem);
+    ASSERT(maskContainerIndex.isValid());
+    ASSERT(model->itemForIndex(maskContainerIndex)->modelType() == "MaskContainer");
 
     m_editorCanvas->setSelectionModel(m_editorPropertyPanel->selectionModel());
     m_editorCanvas->setMaskContext(model, maskContainerIndex, intensityItem);
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
index e7dfb853c55accd91913c2257b629c902e674bf2..a80e118ae42065bac507cf181fbd4e5ebc9dc1bf 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorActions.cpp
@@ -103,8 +103,8 @@ void MaskEditorActions::onItemContextMenuRequest(const QPoint& point)
 
 void MaskEditorActions::onDeleteMaskAction()
 {
-    Q_ASSERT(m_maskModel);
-    Q_ASSERT(m_selectionModel);
+    ASSERT(m_maskModel);
+    ASSERT(m_selectionModel);
 
     QModelIndexList indexes = m_selectionModel->selectedIndexes();
     while (indexes.size()) {
@@ -116,8 +116,8 @@ void MaskEditorActions::onDeleteMaskAction()
 //! Performs switch of mask value for all selected items (true -> false, false -> true)
 void MaskEditorActions::onToggleMaskValueAction()
 {
-    Q_ASSERT(m_maskModel);
-    Q_ASSERT(m_selectionModel);
+    ASSERT(m_maskModel);
+    ASSERT(m_selectionModel);
     for (auto itemIndex : m_selectionModel->selectedIndexes()) {
         if (SessionItem* item = m_maskModel->itemForIndex(itemIndex)) {
             bool old_value = item->getItemValue(MaskItem::P_MASK_VALUE).toBool();
@@ -204,8 +204,8 @@ void MaskEditorActions::initItemContextMenu(QMenu& menu)
     if (!m_rootIndex.isValid())
         return;
 
-    Q_ASSERT(m_maskModel);
-    Q_ASSERT(m_selectionModel);
+    ASSERT(m_maskModel);
+    ASSERT(m_selectionModel);
 
     if (m_selectionModel->selectedIndexes().isEmpty())
         setAllActionsEnabled(false);
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.cpp
index 51b09b50cc772cb7ce0568d84726b3322ca427a3..f3c084f5f52f807a1c497f06f132732eae06808a 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorCanvas.cpp
@@ -111,7 +111,7 @@ void MaskEditorCanvas::onResetViewRequest()
 
 bool MaskEditorCanvas::isAxisRangeMatchData() const
 {
-    Q_ASSERT(m_intensityDataItem);
+    ASSERT(m_intensityDataItem);
 
     if (m_intensityDataItem->getLowerX() != m_intensityDataItem->getXmin())
         return false;
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp
index d603beb8c9b99d919be9ff14c536eee3c83b1ebd..ee403d40ec00ed3e3f6c7c333840bbe38e58c7c3 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp
@@ -106,7 +106,7 @@ void MaskEditorPropertyPanel::resetContext()
 
 QItemSelectionModel* MaskEditorPropertyPanel::selectionModel()
 {
-    Q_ASSERT(m_listView);
+    ASSERT(m_listView);
     return m_listView->selectionModel();
 }
 
diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.cpp
index 7730f2eda65ee6127deb23ac306234e5ee2304dd..18ca83c4b693f7b62cce59b7a5138e0bf94e7b59 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskEditorToolBar.cpp
@@ -185,7 +185,7 @@ void MaskEditorToolBar::setup_shapes_group()
 
 void MaskEditorToolBar::setup_maskmodify_group()
 {
-    Q_ASSERT(m_editorActions);
+    ASSERT(m_editorActions);
     addAction(m_editorActions->bringToFrontAction());
     addAction(m_editorActions->sendToBackAction());
     add_separator();
diff --git a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
index 9f61a7334668dfa37015b12dcc4eb5b6b99aa54a..fa12bd6d046500ab6cf7899f2283c47e713c1f57 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.cpp
@@ -115,7 +115,7 @@ void MaskGraphicsScene::resetContext()
 
 void MaskGraphicsScene::setSelectionModel(QItemSelectionModel* model)
 {
-    Q_ASSERT(model);
+    ASSERT(model);
     m_selectionModel = model;
     connect(m_selectionModel, &QItemSelectionModel::selectionChanged, this,
             &MaskGraphicsScene::onSessionSelectionChanged, Qt::UniqueConnection);
@@ -123,7 +123,7 @@ void MaskGraphicsScene::setSelectionModel(QItemSelectionModel* model)
 
 ColorMap* MaskGraphicsScene::colorMap()
 {
-    Q_ASSERT(m_proxy);
+    ASSERT(m_proxy);
     return m_proxy->colorMap();
 }
 
@@ -169,7 +169,7 @@ void MaskGraphicsScene::onRowsRemoved(const QModelIndex&, int, int)
 void MaskGraphicsScene::cancelCurrentDrawing()
 {
     if (isDrawingInProgress()) {
-        Q_ASSERT(m_currentItem);
+        ASSERT(m_currentItem);
         QModelIndex index = m_maskModel->indexOfItem(m_currentItem);
         m_maskModel->removeRows(index.row(), 1, index.parent());
         setDrawingInProgress(false);
@@ -178,7 +178,7 @@ void MaskGraphicsScene::cancelCurrentDrawing()
 
 void MaskGraphicsScene::resetScene()
 {
-    Q_ASSERT(m_selectionModel);
+    ASSERT(m_selectionModel);
     m_block_selection = true;
     m_selectionModel->clearSelection();
     clearSelection();
@@ -235,7 +235,7 @@ void MaskGraphicsScene::onSceneSelectionChanged()
     for (QGraphicsItem* graphicsItem : selectedItems()) {
         if (IShape2DView* view = dynamic_cast<IShape2DView*>(graphicsItem)) {
             QModelIndex itemIndex = m_maskModel->indexOfItem(view->parameterizedItem());
-            Q_ASSERT(itemIndex.isValid());
+            ASSERT(itemIndex.isValid());
             if (!m_selectionModel->isSelected(itemIndex))
                 m_selectionModel->select(itemIndex, QItemSelectionModel::Select);
         }
@@ -360,7 +360,7 @@ void MaskGraphicsScene::contextMenuEvent(QGraphicsSceneContextMenuEvent* event)
 
 void MaskGraphicsScene::updateProxyWidget()
 {
-    Q_ASSERT(m_intensityItem);
+    ASSERT(m_intensityItem);
     if (!m_proxy) {
         m_proxy = new MaskGraphicsProxy;
         m_proxy->setIntensityItem(m_intensityItem);
@@ -373,7 +373,7 @@ void MaskGraphicsScene::updateProxyWidget()
 
 void MaskGraphicsScene::updateViews(const QModelIndex& parentIndex, IShape2DView* parentView)
 {
-    Q_ASSERT(m_maskModel);
+    ASSERT(m_maskModel);
     IShape2DView* childView(0);
     for (int i_row = 0; i_row < m_maskModel->rowCount(parentIndex); ++i_row) {
         QModelIndex itemIndex = m_maskModel->index(i_row, 0, parentIndex);
@@ -395,7 +395,7 @@ void MaskGraphicsScene::updateViews(const QModelIndex& parentIndex, IShape2DView
 
 IShape2DView* MaskGraphicsScene::addViewForItem(SessionItem* item)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
     IShape2DView* view = m_ItemToView[item];
     if (!view) {
         view = MaskViewFactory::createMaskView(item, m_adaptor.data());
@@ -630,7 +630,7 @@ void MaskGraphicsScene::processRectangleShapeItem(QGraphicsSceneMouseEvent* even
 
 void MaskGraphicsScene::processPolygonItem(QGraphicsSceneMouseEvent* event)
 {
-    Q_ASSERT(m_context.isPolygonMode());
+    ASSERT(m_context.isPolygonMode());
 
     if (!m_currentItem) {
         setDrawingInProgress(true);
@@ -641,7 +641,7 @@ void MaskGraphicsScene::processPolygonItem(QGraphicsSceneMouseEvent* event)
                                  QItemSelectionModel::Select);
         setItemName(m_currentItem);
     }
-    Q_ASSERT(m_currentItem->modelType() == "PolygonMask");
+    ASSERT(m_currentItem->modelType() == "PolygonMask");
 
     if (PolygonView* polygon = currentPolygon()) {
         if (polygon->closePolygonIfNecessary()) {
@@ -703,7 +703,7 @@ void MaskGraphicsScene::processMaskAllItem(QGraphicsSceneMouseEvent* event)
 
 void MaskGraphicsScene::setZValues()
 {
-    Q_ASSERT(m_maskContainerIndex.isValid());
+    ASSERT(m_maskContainerIndex.isValid());
     for (int i = 0; i < m_maskModel->rowCount(m_maskContainerIndex); i++) {
         QModelIndex itemIndex = m_maskModel->index(i, 0, m_maskContainerIndex);
         SessionItem* item = m_maskModel->itemForIndex(itemIndex);
diff --git a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
index cf77a50d2b61fd5328583042f58616820e6491bf..5fa6b5675cab75c622652ca6455ca2f079e36b81 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
@@ -113,8 +113,8 @@ void MaskUnitsConverter::convertCoordinate(SessionItem* maskItem, const QString&
 
 double MaskUnitsConverter::convert(double value, int axis_index)
 {
-    Q_ASSERT(mp_data);
-    Q_ASSERT(axis_index == 0 || axis_index == 1);
+    ASSERT(mp_data);
+    ASSERT(axis_index == 0 || axis_index == 1);
 
     if (m_direction == TO_NBINS) {
         return IntensityDataFunctions::coordinateToBinf(value, mp_data->getAxis(axis_index));
diff --git a/GUI/coregui/Views/MaskWidgets/PolygonView.cpp b/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
index 2544a34aa201643473f9b36664dbd773bdf63ac3..6c1eeaba2af3e9248117f5b78ea9c5aa9a261d19 100644
--- a/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/PolygonView.cpp
@@ -38,7 +38,7 @@ void PolygonView::addView(IShape2DView* childView, int row)
         return;
 
     PolygonPointView* pointView = dynamic_cast<PolygonPointView*>(childView);
-    Q_ASSERT(pointView);
+    ASSERT(pointView);
     pointView->setParentItem(this);
 
     // polygon consisting from more than 2 points can be closed via hover event by clicking
@@ -88,7 +88,7 @@ bool PolygonView::isClosedPolygon()
 
 void PolygonView::paint(QPainter* painter, const QStyleOptionGraphicsItem*, QWidget*)
 {
-    Q_ASSERT(m_item);
+    ASSERT(m_item);
     painter->setRenderHints(QPainter::Antialiasing);
 
     bool mask_value = m_item->getItemValue(MaskItem::P_MASK_VALUE).toBool();
diff --git a/GUI/coregui/Views/MaskWidgets/RectangleBaseView.cpp b/GUI/coregui/Views/MaskWidgets/RectangleBaseView.cpp
index f0bea1eb9114b1438caf176aa63d0ee385f5d282..6b2e55312d773daff3329ce31cf5287fca7af209 100644
--- a/GUI/coregui/Views/MaskWidgets/RectangleBaseView.cpp
+++ b/GUI/coregui/Views/MaskWidgets/RectangleBaseView.cpp
@@ -34,7 +34,7 @@ void RectangleBaseView::onSizeHandleElementRequest(bool going_to_resize)
     if (going_to_resize) {
         setFlag(QGraphicsItem::ItemIsMovable, false);
         m_activeHandleElement = qobject_cast<SizeHandleElement*>(sender());
-        Q_ASSERT(m_activeHandleElement);
+        ASSERT(m_activeHandleElement);
         SizeHandleElement::EHandleLocation oposite_corner =
             m_activeHandleElement->getOppositeHandleLocation();
         m_resize_opposite_origin = m_resize_handles[oposite_corner]->scenePos();
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditor.cpp b/GUI/coregui/Views/MaterialEditor/MaterialEditor.cpp
index 2d7b31392f7d827b4b2c6589e85bfc75c4756080..153116dbfdc2ca7bfad69aeb403f1de8f8dc0c3b 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditor.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditor.cpp
@@ -51,7 +51,7 @@ MaterialEditor::MaterialEditor(MaterialModel* materialModel, QWidget* parent)
 
 QItemSelectionModel* MaterialEditor::selectionModel()
 {
-    Q_ASSERT(m_listView);
+    ASSERT(m_listView);
     return m_listView->selectionModel();
 }
 
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.cpp b/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.cpp
index 77865cb66993da8467cfea8ae940fa8e0849e9a3..cce5df81b53866a9cc76cf2c0633813bcf557fe6 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.cpp
@@ -86,7 +86,7 @@ QBoxLayout* MaterialEditorDialog::createButtonLayout()
 
 void MaterialEditorDialog::init_material_editor()
 {
-    Q_ASSERT(m_origMaterialModel);
+    ASSERT(m_origMaterialModel);
     m_tmpMaterialModel.reset(m_origMaterialModel->createCopy());
     m_materialEditor = new MaterialEditor(m_tmpMaterialModel.get(), this);
     readSettings();
@@ -126,7 +126,7 @@ ExternalProperty MaterialEditorDialog::selectedMaterialProperty()
 //!
 void MaterialEditorDialog::setMaterialProperty(const ExternalProperty& matProperty)
 {
-    Q_ASSERT(m_materialEditor);
+    ASSERT(m_materialEditor);
 
     m_materialEditor->setInitialMaterialProperty(matProperty);
 }
diff --git a/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.cpp b/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.cpp
index 66a694a97d9d3f096cd924ba02d28319fce40fad..d66e88d287a4d767cdae0e71d453a3bdcf65ede5 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialEditorToolBar.cpp
@@ -63,7 +63,7 @@ void MaterialEditorToolBar::setSelectionModel(QItemSelectionModel* selectionMode
 void MaterialEditorToolBar::onCustomContextMenuRequested(const QPoint& point)
 {
     QListView* listView = qobject_cast<QListView*>(sender());
-    Q_ASSERT(listView);
+    ASSERT(listView);
     QMenu menu;
     initItemContextMenu(menu);
     menu.exec(listView->mapToGlobal(point));
@@ -84,8 +84,8 @@ void MaterialEditorToolBar::onCloneMaterialAction()
 
 void MaterialEditorToolBar::onRemoveMaterialAction()
 {
-    Q_ASSERT(m_materialModel);
-    Q_ASSERT(m_selectionModel);
+    ASSERT(m_materialModel);
+    ASSERT(m_selectionModel);
 
     auto selected = m_selectionModel->currentIndex();
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentFlatView.cpp b/GUI/coregui/Views/PropertyEditor/ComponentFlatView.cpp
index 9ab7bca9382f70f4a239aed281e09475521b678e..fd478ca82934fe1c87b969546f61b5c92913ca86 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentFlatView.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentFlatView.cpp
@@ -74,7 +74,7 @@ void ComponentFlatView::setModel(SessionModel* model)
 
 void ComponentFlatView::clearLayout()
 {
-    Q_ASSERT(m_gridLayout);
+    ASSERT(m_gridLayout);
     LayoutUtils::clearGridLayout(m_gridLayout, false);
 
     for (auto widget : m_widgetItems)
@@ -92,7 +92,7 @@ void ComponentFlatView::onDataChanged(const QModelIndex& topLeft, const QModelIn
 {
     Q_UNUSED(bottomRight);
     SessionItem* item = m_model->itemForIndex(topLeft);
-    Q_ASSERT(item);
+    ASSERT(item);
     if (item->modelType() == "GroupProperty")
         updateItemProperties();
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentTreeView.cpp b/GUI/coregui/Views/PropertyEditor/ComponentTreeView.cpp
index 1b51071d511dd8f15349a380ad813043d84ed813..ef529d552bf940738c14155a5a00f9fed73b22cc 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentTreeView.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentTreeView.cpp
@@ -86,7 +86,7 @@ void ComponentTreeView::setRootIndex(const QModelIndex& index, bool show_root_it
 {
     if (QWidget* editor = m_tree->indexWidget(m_tree->currentIndex()))
         m_delegate->closeEditor(editor, QAbstractItemDelegate::NoHint);
-    Q_ASSERT(m_proxyModel);
+    ASSERT(m_proxyModel);
     m_proxyModel->setRootIndex(index);
     if (!show_root_item)
         m_tree->setRootIndex(m_proxyModel->mapFromSource(index));
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentUtils.cpp b/GUI/coregui/Views/PropertyEditor/ComponentUtils.cpp
index 9f9fa9d9784a4ae3fe8b5101e31a2978b8194e45..3a9ef195ed8143e967fc75ef2974e2714623219d 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentUtils.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentUtils.cpp
@@ -65,7 +65,7 @@ namespace
 {
 QList<const SessionItem*> groupItems(const SessionItem& item)
 {
-    Q_ASSERT(item.modelType() == "GroupProperty");
+    ASSERT(item.modelType() == "GroupProperty");
 
     QList<const SessionItem*> result;
     for (auto grandchild : item.children()) {
diff --git a/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp b/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
index d5000656163ccab0ab53a8301a4c953ea765a02b..805a13cd5c3bef4cae71f52ce5e595e431d2c981 100644
--- a/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
+++ b/GUI/coregui/Views/PropertyEditor/CustomEditors.cpp
@@ -124,7 +124,7 @@ void ExternalPropertyEditor::buttonClicked()
 
 void ExternalPropertyEditor::initEditor()
 {
-    Q_ASSERT(m_data.canConvert<ExternalProperty>());
+    ASSERT(m_data.canConvert<ExternalProperty>());
     ExternalProperty materialProperty = m_data.value<ExternalProperty>();
     m_textLabel->setText(materialProperty.text());
     m_pixmapLabel->setPixmap(materialProperty.pixmap());
@@ -250,7 +250,7 @@ void ScientificDoublePropertyEditor::onEditingFinished()
 
 void ScientificDoublePropertyEditor::initEditor()
 {
-    Q_ASSERT(m_data.type() == QVariant::Double);
+    ASSERT(m_data.type() == QVariant::Double);
     m_lineEdit->setText(QString::number(m_data.toDouble(), 'g'));
 }
 
@@ -306,7 +306,7 @@ void DoubleEditor::onEditingFinished()
 
 void DoubleEditor::initEditor()
 {
-    Q_ASSERT(m_data.type() == QVariant::Double);
+    ASSERT(m_data.type() == QVariant::Double);
     m_doubleEditor->setValue(m_data.toDouble());
 }
 
@@ -362,7 +362,7 @@ void ScientificSpinBoxEditor::onEditingFinished()
 
 void ScientificSpinBoxEditor::initEditor()
 {
-    Q_ASSERT(m_data.type() == QVariant::Double);
+    ASSERT(m_data.type() == QVariant::Double);
     m_doubleEditor->setValue(m_data.toDouble());
 }
 
@@ -436,7 +436,7 @@ void BoolEditor::onCheckBoxChange(bool value)
 
 void BoolEditor::initEditor()
 {
-    Q_ASSERT(m_data.type() == QVariant::Bool);
+    ASSERT(m_data.type() == QVariant::Bool);
     bool value = m_data.toBool();
 
     m_checkBox->blockSignals(true);
diff --git a/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.cpp b/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.cpp
index a283ded46cbce10a3b0e4b0d068d0dd844441fcf..1186c3c3e9a35ba2306aa9f24ad3545b3e36db5e 100644
--- a/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.cpp
+++ b/GUI/coregui/Views/PropertyEditor/PropertyWidgetItem.cpp
@@ -45,7 +45,7 @@ PropertyWidgetItem::~PropertyWidgetItem()
 
 void PropertyWidgetItem::setItemEditor(const SessionItem* item, QWidget* editor)
 {
-    Q_ASSERT(m_item == nullptr);
+    ASSERT(m_item == nullptr);
     m_item = item;
     m_editor = editor;
 
@@ -71,8 +71,8 @@ void PropertyWidgetItem::setItemEditor(const SessionItem* item, QWidget* editor)
 
 void PropertyWidgetItem::addToGrid(QGridLayout* gridLayout, int nrow)
 {
-    Q_ASSERT(m_label);
-    Q_ASSERT(m_editor);
+    ASSERT(m_label);
+    ASSERT(m_editor);
 
     gridLayout->addWidget(m_label, nrow, 0);
     gridLayout->addWidget(m_editor, nrow, 1);
@@ -80,7 +80,7 @@ void PropertyWidgetItem::addToGrid(QGridLayout* gridLayout, int nrow)
 
 void PropertyWidgetItem::updateItemRoles()
 {
-    Q_ASSERT(m_item);
+    ASSERT(m_item);
     m_label->setEnabled(m_item->isEnabled());
     m_editor->setEnabled(m_item->isEnabled());
     m_label->setToolTip(SessionItemUtils::ToolTipRole(*m_item).toString());
diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp
index b8df2905fb767460c7e7f24af2cccf5b5da4353a..4f55b051e56c9b3d389694046625cf01d0ec4796 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp
@@ -114,7 +114,7 @@ void RealSpaceBuilder::populateLayer(RealSpaceModel* model, const SessionItem& l
 void RealSpaceBuilder::populateLayout(RealSpaceModel* model, const SessionItem& layoutItem,
                                       const SceneGeometry& sceneGeometry, const QVector3D& origin)
 {
-    Q_ASSERT(layoutItem.modelType() == "ParticleLayout");
+    ASSERT(layoutItem.modelType() == "ParticleLayout");
 
     // If there is no particle to populate
     if (!layoutItem.getItem(ParticleLayoutItem::T_PARTICLES))
diff --git a/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp b/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp
index 1bb0473fec5d11328a328dd732f994fb0ac91664..2074637ea0a10203edf6303383382d42dbbb4fae 100644
--- a/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp
+++ b/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp
@@ -44,7 +44,7 @@ bool isBottomLayer(const SessionItem& layerItem)
 double TransformTo3D::visualLayerThickness(const SessionItem& layerItem,
                                            const SceneGeometry& sceneGeometry)
 {
-    Q_ASSERT(layerItem.modelType() == "Layer");
+    ASSERT(layerItem.modelType() == "Layer");
 
     double thickness(0.0);
     if (isTopLayer(layerItem))
@@ -61,7 +61,7 @@ std::unique_ptr<RealSpace::Layer> TransformTo3D::createLayer(const SessionItem&
                                                              const SceneGeometry& sceneGeometry,
                                                              const QVector3D& origin)
 {
-    Q_ASSERT(layerItem.modelType() == "Layer");
+    ASSERT(layerItem.modelType() == "Layer");
 
     double thickness = TransformTo3D::visualLayerThickness(layerItem, sceneGeometry);
 
@@ -86,7 +86,7 @@ std::unique_ptr<RealSpace::Layer> TransformTo3D::createLayer(const SessionItem&
 std::unique_ptr<RealSpace::Particles::Particle>
 TransformTo3D::createParticle3D(const SessionItem& particleItem)
 {
-    Q_ASSERT(particleItem.modelType() == "Particle");
+    ASSERT(particleItem.modelType() == "Particle");
 
     std::unique_ptr<RealSpace::Particles::Particle> result;
 
diff --git a/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp b/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
index 0d8d42320224f40e3c08d72ab6672c3f54090725..baa39c01865caeb337c4baeae97a9b52400d100c 100644
--- a/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
@@ -86,7 +86,7 @@ void ConnectableView::setLabel(const QString& name)
 
 void ConnectableView::connectInputPort(ConnectableView* other, int port_number)
 {
-    Q_ASSERT(other);
+    ASSERT(other);
 
     if (port_number >= m_input_ports.size())
         throw GUIHelpers::Error("ConnectableView::connectInputPort() -> Wrong input port number");
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp b/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
index e68779605f2bf71c98a526f4812cbf2402e2b6f4..741881b984dd2a96b47cf3c29ff5f61dea0e2a52 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
+++ b/GUI/coregui/Views/SampleDesigner/DesignerScene.cpp
@@ -61,7 +61,7 @@ DesignerScene::~DesignerScene()
 
 void DesignerScene::setSampleModel(SampleModel* sampleModel)
 {
-    Q_ASSERT(sampleModel);
+    ASSERT(sampleModel);
 
     if (sampleModel != m_sampleModel) {
 
@@ -104,7 +104,7 @@ void DesignerScene::setMaterialModel(MaterialModel* materialModel)
 
 void DesignerScene::setSelectionModel(QItemSelectionModel* model, FilterPropertyProxy* proxy)
 {
-    Q_ASSERT(model);
+    ASSERT(model);
 
     if (model != m_selectionModel) {
 
@@ -202,7 +202,7 @@ void DesignerScene::onSceneSelectionChanged()
         if (view) {
             SessionItem* sampleItem = view->getItem();
             QModelIndex itemIndex = m_sampleModel->indexOfItem(sampleItem);
-            Q_ASSERT(itemIndex.isValid());
+            ASSERT(itemIndex.isValid());
             if (!m_selectionModel->isSelected(m_proxy->mapFromSource(itemIndex)))
                 m_selectionModel->select(m_proxy->mapFromSource(itemIndex),
                                          QItemSelectionModel::Select);
@@ -215,7 +215,7 @@ void DesignerScene::onSceneSelectionChanged()
 //! runs through all items recursively and updates corresponding views
 void DesignerScene::updateViews(const QModelIndex& parentIndex, IView* parentView)
 {
-    Q_ASSERT(m_sampleModel);
+    ASSERT(m_sampleModel);
 
     IView* childView(0);
     int childCount = 0;
@@ -241,7 +241,7 @@ void DesignerScene::updateViews(const QModelIndex& parentIndex, IView* parentVie
 //! adds view for item, if it doesn't exists
 IView* DesignerScene::addViewForItem(SessionItem* item)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
 
     IView* view = getViewForItem(item);
 
@@ -285,7 +285,7 @@ void DesignerScene::deleteViews(const QModelIndex& viewIndex)
 //! removes view from scene corresponding to given item
 void DesignerScene::removeItemViewFromScene(SessionItem* item)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
 
     for (QMap<SessionItem*, IView*>::iterator it = m_ItemToView.begin(); it != m_ItemToView.end();
          ++it) {
diff --git a/GUI/coregui/Views/SampleDesigner/DesignerView.cpp b/GUI/coregui/Views/SampleDesigner/DesignerView.cpp
index 5ea591fb3d5c403f65fd110f6a9fb130397b5d97..ee79863fd7011bb066db4cfe870cba9bf09fa7e4 100644
--- a/GUI/coregui/Views/SampleDesigner/DesignerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/DesignerView.cpp
@@ -84,7 +84,7 @@ void DesignerView::onChangeScale(double new_scale)
 void DesignerView::deleteSelectedItems()
 {
     DesignerScene* designerScene = dynamic_cast<DesignerScene*>(scene());
-    Q_ASSERT(designerScene);
+    ASSERT(designerScene);
     designerScene->deleteSelectedItems();
 }
 
diff --git a/GUI/coregui/Views/SampleDesigner/ILayerView.cpp b/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
index 156edb18e9c55acc40dfeacf2135d5a54edb7423..c1f2da5f1c1712dc882b8dde2ad2780f762e08b3 100644
--- a/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ILayerView.cpp
@@ -25,7 +25,7 @@
 
 QLineF MultiLayerCandidate::getInterfaceToScene()
 {
-    Q_ASSERT(multilayer);
+    ASSERT(multilayer);
     QLineF line = multilayer->getInterfaceLine(row);
     if (line.length() != 0) {
         QPointF p1(multilayer->mapToScene(line.p1()));
@@ -82,7 +82,7 @@ void ILayerView::updateColor()
             setColor(mp.color());
             update();
         } else {
-            Q_ASSERT(0);
+            ASSERT(0);
         }
     }
 }
@@ -147,7 +147,7 @@ void ILayerView::mousePressEvent(QGraphicsSceneMouseEvent* event)
 void ILayerView::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
 {
     DesignerScene* designerScene = dynamic_cast<DesignerScene*>(scene());
-    Q_ASSERT(designerScene);
+    ASSERT(designerScene);
     designerScene->setLayerInterfaceLine(); // removing drop area hint from the scene
 
     if (QLineF(m_drag_start_position, pos()).length() == 0) {
diff --git a/GUI/coregui/Views/SampleDesigner/IView.cpp b/GUI/coregui/Views/SampleDesigner/IView.cpp
index c0e520cb97b24571398360c72544b120397344b0..4cbedcda099ec4f5889120ae0e91a6f7def99f00 100644
--- a/GUI/coregui/Views/SampleDesigner/IView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/IView.cpp
@@ -30,8 +30,8 @@ IView::~IView()
 
 void IView::setParameterizedItem(SessionItem* item)
 {
-    Q_ASSERT(item);
-    Q_ASSERT(m_item == nullptr);
+    ASSERT(item);
+    ASSERT(m_item == nullptr);
 
     if (toolTip().isEmpty())
         setToolTip(item->toolTip());
@@ -74,7 +74,7 @@ void IView::update_appearance()
 
 void IView::onPropertyChange(const QString& propertyName)
 {
-    Q_ASSERT(m_item);
+    ASSERT(m_item);
     if (propertyName == SessionGraphicsItem::P_XPOS) {
         setX(m_item->getItemValue(SessionGraphicsItem::P_XPOS).toReal());
     } else if (propertyName == SessionGraphicsItem::P_YPOS) {
diff --git a/GUI/coregui/Views/SampleDesigner/LayerView.cpp b/GUI/coregui/Views/SampleDesigner/LayerView.cpp
index 9aa1bd485055425b30ee29536284c8e5ec7eb71c..f0d1e83f280f48ea9eac6e357a4178e64555bcdb 100644
--- a/GUI/coregui/Views/SampleDesigner/LayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/LayerView.cpp
@@ -46,6 +46,6 @@ void LayerView::paint(QPainter* painter, const QStyleOptionGraphicsItem* option,
 void LayerView::addView(IView* childView, int /* row */)
 {
     ParticleLayoutView* layout = dynamic_cast<ParticleLayoutView*>(childView);
-    Q_ASSERT(layout);
+    ASSERT(layout);
     connectInputPort(layout, 0);
 }
diff --git a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
index 1c3cbf6e34688e2eb92a80fb716c9bd47853d59c..b3cc843b84da2b23919c3778a3a6f511bd920b51 100644
--- a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp
@@ -61,7 +61,7 @@ void MultiLayerView::paint(QPainter* painter, const QStyleOptionGraphicsItem* op
 void MultiLayerView::addView(IView* childView, int row)
 {
     ILayerView* layer = dynamic_cast<ILayerView*>(childView);
-    Q_ASSERT(layer);
+    ASSERT(layer);
 
     if (!childItems().contains(layer)) {
         addNewLayer(layer, row);
@@ -90,13 +90,13 @@ void MultiLayerView::addNewLayer(ILayerView* layer, int row)
 void MultiLayerView::onLayerAboutToBeDeleted()
 {
     ILayerView* layer = qobject_cast<ILayerView*>(sender());
-    Q_ASSERT(layer);
+    ASSERT(layer);
     removeLayer(layer);
 }
 
 void MultiLayerView::removeLayer(ILayerView* layer)
 {
-    Q_ASSERT(m_layers.contains(layer));
+    ASSERT(m_layers.contains(layer));
     disconnect(layer, SIGNAL(heightChanged()), this, SLOT(updateHeight()));
     disconnect(layer, SIGNAL(aboutToBeDeleted()), this, SLOT(onLayerAboutToBeDeleted()));
     m_layers.removeOne(layer);
diff --git a/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.cpp b/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.cpp
index 2ad1f814bb7d21d4e5204179028dfd6b70d3ef1c..cc66ee06e5e69bd4bb6c0d6799b1ada11b60c9c7 100644
--- a/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.cpp
+++ b/GUI/coregui/Views/SampleDesigner/NodeEditorConnection.cpp
@@ -94,13 +94,13 @@ NodeEditorPort* NodeEditorConnection::port2() const
 
 NodeEditorPort* NodeEditorConnection::inputPort()
 {
-    Q_ASSERT(m_port1 && m_port2);
+    ASSERT(m_port1 && m_port2);
     return (m_port1->isInput() ? m_port1 : m_port2);
 }
 
 NodeEditorPort* NodeEditorConnection::outputPort()
 {
-    Q_ASSERT(m_port1 && m_port2);
+    ASSERT(m_port1 && m_port2);
     return (m_port1->isOutput() ? m_port1 : m_port2);
 }
 
@@ -122,16 +122,16 @@ void NodeEditorConnection::paint(QPainter* painter, const QStyleOptionGraphicsIt
 
 ConnectableView* NodeEditorConnection::getParentView()
 {
-    Q_ASSERT(inputPort() != outputPort());
+    ASSERT(inputPort() != outputPort());
     ConnectableView* result = dynamic_cast<ConnectableView*>(inputPort()->parentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
 ConnectableView* NodeEditorConnection::getChildView()
 {
-    Q_ASSERT(inputPort() != outputPort());
+    ASSERT(inputPort() != outputPort());
     ConnectableView* result = dynamic_cast<ConnectableView*>(outputPort()->parentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
index 8d4e5199c6a4cf27b216e9b83e0bf84120ba00b3..cf911afc1cf0bf95e8185957a0e130c068f86e10 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewAligner.cpp
@@ -33,7 +33,7 @@ int step_height()
 
 SampleViewAligner::SampleViewAligner(DesignerScene* scene) : m_scene(scene)
 {
-    Q_ASSERT(m_scene);
+    ASSERT(m_scene);
 }
 
 //! Spring based implified algorithm for smart alignment
@@ -151,7 +151,7 @@ QList<IView*> SampleViewAligner::getConnectedViews(IView* view)
 //! Aligns sample starting from
 void SampleViewAligner::alignSample(SessionItem* item, QPointF reference, bool force_alignment)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
     alignSample(m_scene->getSampleModel()->indexOfItem(item), reference, force_alignment);
 }
 
diff --git a/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.cpp b/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.cpp
index 681545fc2630fbdc14814d746c9acde90a045c61..cb6505390a074e548088e49c3046f8327ae91bd5 100644
--- a/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.cpp
+++ b/GUI/coregui/Views/SampleDesigner/SampleViewStatusBar.cpp
@@ -42,7 +42,7 @@ SampleViewStatusBar::SampleViewStatusBar(MainWindow* mainWindow)
 
 void SampleViewStatusBar::initAppearance()
 {
-    Q_ASSERT(m_mainWindow);
+    ASSERT(m_mainWindow);
     m_mainWindow->statusBar()->addWidget(this, 1);
     m_mainWindow->statusBar()->setSizeGripEnabled(false);
     this->hide();
diff --git a/GUI/coregui/Views/SessionModelView.cpp b/GUI/coregui/Views/SessionModelView.cpp
index 1294c623308ae677c15d9d91261d35e4c6ae9ef9..6d564e456ef880bd19a5842dcb0d4a73eeee31ef 100644
--- a/GUI/coregui/Views/SessionModelView.cpp
+++ b/GUI/coregui/Views/SessionModelView.cpp
@@ -66,7 +66,7 @@ void SessionModelView::onExpandCollapseTree()
 
 void SessionModelView::init_tabs()
 {
-    Q_ASSERT(m_content.empty());
+    ASSERT(m_content.empty());
 
     for (auto model : modelsForTabs()) {
         auto treeView = new ModelTreeView(this, model);
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
index bb95fbc19b71b95c8f3008be6e8dfa14c4005a38..e8f8af5e78deee08c188226a392d25eb13c16df6 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationDataSelectorWidget.cpp
@@ -118,7 +118,7 @@ const RealDataItem* SimulationDataSelectorWidget::selectedRealDataItem() const
 
 void SimulationDataSelectorWidget::updateViewElements()
 {
-    Q_ASSERT(m_applicationModels);
+    ASSERT(m_applicationModels);
     updateSelection(m_instrumentCombo,
                     ModelUtils::topItemNames(m_applicationModels->instrumentModel()));
     updateSelection(m_sampleCombo,
diff --git a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
index 224e1075a9829707be6a0fe8a8753d75433177e8..1b23041b174d577b4117e9d4e22d0e02d4555e96 100644
--- a/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
+++ b/GUI/coregui/Views/SimulationWidgets/SimulationSetupWidget.cpp
@@ -47,7 +47,7 @@ SimulationSetupWidget::SimulationSetupWidget(QWidget* parent)
 
 void SimulationSetupWidget::setApplicationModels(ApplicationModels* model)
 {
-    Q_ASSERT(model);
+    ASSERT(model);
     if (model != m_applicationModels) {
         m_applicationModels = model;
         m_simDataSelectorWidget->setApplicationModels(model);
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.cpp b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.cpp
index d33b04701b1300966ef8a1dda624a5368da73451..e50181b9705227f4f1277204aabd3aa50252108b 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.cpp
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularDataCanvas.cpp
@@ -84,7 +84,7 @@ void SpecularDataCanvas::onMousePress(QMouseEvent* event)
 SpecularDataItem* SpecularDataCanvas::specularDataItem()
 {
     SpecularDataItem* result = dynamic_cast<SpecularDataItem*>(currentItem());
-    Q_ASSERT(result);
+    ASSERT(result);
     return result;
 }
 
diff --git a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp
index 496114f3d0366bbf4aa1fc84ca98a34852783740..f38cb1adddc5cb67a7ed02d8295384105633d9a9 100644
--- a/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp
+++ b/GUI/coregui/Views/SpecularDataWidgets/SpecularPlot.cpp
@@ -179,7 +179,7 @@ void SpecularPlot::setUpdateTimerConnected(bool isConnected)
 
 void SpecularPlot::setPlotFromItem(SpecularDataItem* specularItem)
 {
-    Q_ASSERT(specularItem);
+    ASSERT(specularItem);
 
     m_block_update = true;
 
@@ -213,7 +213,7 @@ void SpecularPlot::setAxesLabelsFromItem(SpecularDataItem* item)
 
 void SpecularPlot::setLabel(const BasicAxisItem* item, QCPAxis* axis, QString label)
 {
-    Q_ASSERT(item && axis);
+    ASSERT(item && axis);
     if (item->getItemValue(BasicAxisItem::P_TITLE_IS_VISIBLE).toBool())
         axis->setLabel(std::move(label));
     else
@@ -222,7 +222,7 @@ void SpecularPlot::setLabel(const BasicAxisItem* item, QCPAxis* axis, QString la
 
 void SpecularPlot::setDataFromItem(SpecularDataItem* item)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
     auto data = item->getOutputData();
     if (!data)
         return;
diff --git a/GUI/coregui/Views/TestView.cpp b/GUI/coregui/Views/TestView.cpp
index 415473cee5ea8b731b12efff5d4916c906139a9f..15b8d986c31f8eacf9a048960a419e38e8e7d078 100644
--- a/GUI/coregui/Views/TestView.cpp
+++ b/GUI/coregui/Views/TestView.cpp
@@ -225,7 +225,7 @@ double getTestValue(size_t bin, double factor)
 SpecularDataItem* fillTestItem(SessionItem* item, double factor)
 {
     SpecularDataItem* result = dynamic_cast<SpecularDataItem*>(item);
-    Q_ASSERT(result);
+    ASSERT(result);
     auto outputData = std::make_unique<OutputData<double>>();
     outputData->addAxis(FixedBinAxis("Angle [deg]", 1000, 0.0, 10.0));
     for (size_t i = 0; i < 1000; ++i)
diff --git a/GUI/coregui/Views/widgetbox/widgetboxcategorylistview.cpp b/GUI/coregui/Views/widgetbox/widgetboxcategorylistview.cpp
index 6dac21597c43ca05c90d3dc19ad357d375581385..308ff3b71253d240fef2931b53ba1eb2289f6a56 100644
--- a/GUI/coregui/Views/widgetbox/widgetboxcategorylistview.cpp
+++ b/GUI/coregui/Views/widgetbox/widgetboxcategorylistview.cpp
@@ -174,7 +174,7 @@ WidgetBoxCategoryModel::WidgetBoxCategoryModel(SampleDesignerInterface* core, QO
       //    m_core(core),
       m_viewMode(QListView::ListMode)
 {
-    Q_ASSERT(m_classNameRegExp.isValid());
+    ASSERT(m_classNameRegExp.isValid());
     Q_UNUSED(core);
 }
 
@@ -399,7 +399,7 @@ QWidget* WidgetBoxCategoryEntryDelegate::createEditor(QWidget* parent,
     QWidget* result = QItemDelegate::createEditor(parent, option, index);
     if (QLineEdit* line_edit = qobject_cast<QLineEdit*>(result)) {
         QRegExp re = QRegExp("[_a-zA-Z][_a-zA-Z0-9]*");
-        Q_ASSERT(re.isValid());
+        ASSERT(re.isValid());
         line_edit->setValidator(new QRegExpValidator(re, line_edit));
     }
     return result;
diff --git a/GUI/coregui/Views/widgetbox/widgetboxtreewidget.cpp b/GUI/coregui/Views/widgetbox/widgetboxtreewidget.cpp
index 9285f639825a11155a36823f5cd15ec5d81b86db..3e2bb89c1eca9896f2f8530f5ab6b527e519e483 100644
--- a/GUI/coregui/Views/widgetbox/widgetboxtreewidget.cpp
+++ b/GUI/coregui/Views/widgetbox/widgetboxtreewidget.cpp
@@ -147,7 +147,7 @@ WidgetBoxCategoryListView* WidgetBoxTreeWidget::categoryViewAt(int idx) const
     if (QTreeWidgetItem* cat_item = topLevelItem(idx))
         if (QTreeWidgetItem* embedItem = cat_item->child(0))
             rc = qobject_cast<WidgetBoxCategoryListView*>(itemWidget(embedItem, 0));
-    Q_ASSERT(rc);
+    ASSERT(rc);
     return rc;
 }
 
diff --git a/GUI/coregui/mainwindow/OutputDataIOHistory.cpp b/GUI/coregui/mainwindow/OutputDataIOHistory.cpp
index 87dcbbe3cb6bac076cab5363e30c1137ce73127d..f912b176dfab7e71fd55ec6cefa51917ae660c63 100644
--- a/GUI/coregui/mainwindow/OutputDataIOHistory.cpp
+++ b/GUI/coregui/mainwindow/OutputDataIOHistory.cpp
@@ -20,7 +20,7 @@
 
 OutputDataSaveInfo OutputDataSaveInfo::createSaved(const SaveLoadInterface* item)
 {
-    Q_ASSERT(item);
+    ASSERT(item);
 
     OutputDataSaveInfo result;
     result.m_data = item;
@@ -112,7 +112,7 @@ bool OutputDataIOHistory::wasModifiedSinceLastSave(const QString& dirname,
 
 void OutputDataIOHistory::setHistory(const QString& dirname, const OutputDataDirHistory& history)
 {
-    Q_ASSERT(dirname.isEmpty() == false);
+    ASSERT(dirname.isEmpty() == false);
 
     m_dir_history[dirname] = history;
 }
diff --git a/GUI/coregui/mainwindow/SaveService.cpp b/GUI/coregui/mainwindow/SaveService.cpp
index 6f1804061e61af8ea54b3db9db19c47e572dca5d..a9396d381ef7243fd2356f627f0ca5edcfb62aa6 100644
--- a/GUI/coregui/mainwindow/SaveService.cpp
+++ b/GUI/coregui/mainwindow/SaveService.cpp
@@ -40,7 +40,7 @@ void SaveService::setDocument(ProjectDocument* document)
 
 void SaveService::save(const QString& project_file_name)
 {
-    Q_ASSERT(m_document);
+    ASSERT(m_document);
 
     m_save_queue.enqueue(project_file_name);
     process_queue();
@@ -109,8 +109,8 @@ void SaveService::onAutosaveRequest()
 
 void SaveService::onProjectSaved()
 {
-    Q_ASSERT(m_document);
-    Q_ASSERT(m_is_saving);
+    ASSERT(m_document);
+    ASSERT(m_is_saving);
 
     m_is_saving = false;
     emit projectSaved();
@@ -121,7 +121,7 @@ void SaveService::onProjectSaved()
 
 void SaveService::process_queue()
 {
-    Q_ASSERT(m_document);
+    ASSERT(m_document);
 
     if (m_is_saving)
         return;
diff --git a/GUI/coregui/mainwindow/SaveThread.cpp b/GUI/coregui/mainwindow/SaveThread.cpp
index 1070f66203f0ea3384bdb43708b79fbb69e2922c..986e2085fb281837177e976c1c8c2be789829de2 100644
--- a/GUI/coregui/mainwindow/SaveThread.cpp
+++ b/GUI/coregui/mainwindow/SaveThread.cpp
@@ -24,7 +24,7 @@ SaveThread::~SaveThread()
 
 void SaveThread::run()
 {
-    Q_ASSERT(m_document);
+    ASSERT(m_document);
     m_document->save_project_data(m_projectFile);
     emit saveReady();
 }
diff --git a/GUI/coregui/mainwindow/actionmanager.cpp b/GUI/coregui/mainwindow/actionmanager.cpp
index b4af7cfd2bad3e242a89ffe878adba61d6e6b579..3c49e3ffb88ace10116a153bc43c070ab81d8e1c 100644
--- a/GUI/coregui/mainwindow/actionmanager.cpp
+++ b/GUI/coregui/mainwindow/actionmanager.cpp
@@ -42,7 +42,7 @@ ActionManager::ActionManager(MainWindow* parent)
 void ActionManager::createActions()
 {
     ProjectManager* projectManager = m_mainWindow->projectManager();
-    Q_ASSERT(projectManager);
+    ASSERT(projectManager);
 
     // new project action
     m_newAction = new QAction("&New Project", m_mainWindow);
diff --git a/GUI/coregui/mainwindow/projectdocument.cpp b/GUI/coregui/mainwindow/projectdocument.cpp
index 36aec7f4745de7d2c9c09d6181a96547f17bd1dc..66b116a83cd7524859a894001aee72634680ae59 100644
--- a/GUI/coregui/mainwindow/projectdocument.cpp
+++ b/GUI/coregui/mainwindow/projectdocument.cpp
@@ -223,7 +223,7 @@ void ProjectDocument::onModelChanged()
 
 void ProjectDocument::readFrom(QIODevice* device)
 {
-    Q_ASSERT(m_messageService);
+    ASSERT(m_messageService);
     QXmlStreamReader reader(device);
 
     while (!reader.atEnd()) {
diff --git a/GUI/coregui/mainwindow/projectmanager.cpp b/GUI/coregui/mainwindow/projectmanager.cpp
index 8cefae52a00637188b4f95c59355f3d286b23e70..7e42957c3f506e19ded5e2597ffc5439c4bbaadd 100644
--- a/GUI/coregui/mainwindow/projectmanager.cpp
+++ b/GUI/coregui/mainwindow/projectmanager.cpp
@@ -420,7 +420,7 @@ void ProjectManager::riseProjectLoadFailedDialog()
 
 void ProjectManager::riseProjectLoadWarningDialog()
 {
-    Q_ASSERT(m_project_document);
+    ASSERT(m_project_document);
     ProjectLoadWarningDialog* warningDialog = new ProjectLoadWarningDialog(
         m_mainWindow, m_messageService, m_project_document->documentVersion());
 
diff --git a/GUI/coregui/mainwindow/tooltipdatabase.cpp b/GUI/coregui/mainwindow/tooltipdatabase.cpp
index d9633af52d4150e3ea7949460bae7e3014b882cb..b6c614e471090fb7cfed144800f32d60910215d1 100644
--- a/GUI/coregui/mainwindow/tooltipdatabase.cpp
+++ b/GUI/coregui/mainwindow/tooltipdatabase.cpp
@@ -36,7 +36,7 @@ QMap<QString, QString> ToolTipDataBase::m_tagToToolTip = QMap<QString, QString>(
 
 ToolTipDataBase::ToolTipDataBase(QObject* parent) : QObject(parent)
 {
-    Q_ASSERT(!m_instance);
+    ASSERT(!m_instance);
     m_instance = this;
 
     initDataBase();
@@ -49,7 +49,7 @@ ToolTipDataBase::~ToolTipDataBase()
 
 QString ToolTipDataBase::widgetboxToolTip(const QString& className)
 {
-    Q_ASSERT(m_instance);
+    ASSERT(m_instance);
     QString modelName(className);
     modelName.remove("FormFactor");
     return m_instance->this_getToolTip(sampleViewContext, modelName, titleProperty);
diff --git a/GUI/coregui/utils/StyleUtils.cpp b/GUI/coregui/utils/StyleUtils.cpp
index 3dc7b1d78b0e23655fdf24c0ee604254d63c76de..de29544766fd74caf626d250f6a8edf266e2e0bf 100644
--- a/GUI/coregui/utils/StyleUtils.cpp
+++ b/GUI/coregui/utils/StyleUtils.cpp
@@ -35,7 +35,7 @@ QSize DefaultSizeOfLetterM()
 
 void StyleUtils::setPropertyStyle(QTreeView* tree)
 {
-    Q_ASSERT(tree);
+    ASSERT(tree);
     tree->setStyleSheet(StyleUtils::propertyTreeStyle());
     tree->setAlternatingRowColors(true);
 }
diff --git a/Tests/Functional/Core/Consistence/compare.cpp b/Tests/Functional/Core/Consistence/compare.cpp
index 4f9cedc23aa9683109b3e925bc08d37d3e69c120..f99eaf888348c6a70871d8d9281d6b32e0fc75da 100644
--- a/Tests/Functional/Core/Consistence/compare.cpp
+++ b/Tests/Functional/Core/Consistence/compare.cpp
@@ -22,12 +22,12 @@
 #include "Core/StandardSamples/SampleBuilderFactory.h"
 #include "Core/StandardSamples/SimulationFactory.h"
 #include "Core/Tools/FileSystemUtils.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <iostream>
 
 std::unique_ptr<OutputData<double>> load(const std::string& name)
 {
-    assert(name != "");
+    ASSERT(name != "");
     const std::string path =
         FileSystemUtils::jointPath(BATesting::StdReferenceDir(), name + ".int.gz");
     std::unique_ptr<OutputData<double>> data;
diff --git a/Tests/Functional/Core/Std/Check.cpp b/Tests/Functional/Core/Std/Check.cpp
index 3ad665b8337046042a98f5bbfceb2f762cf09394..6bd7c2f6fb7f8bd2624f6f30d3681ba1ef4370c3 100644
--- a/Tests/Functional/Core/Std/Check.cpp
+++ b/Tests/Functional/Core/Std/Check.cpp
@@ -22,7 +22,7 @@
 #include "Core/StandardSamples/SampleBuilderFactory.h"
 #include "Core/StandardSamples/SimulationFactory.h"
 #include "Core/Tools/FileSystemUtils.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <iostream>
 
 bool checkSimulation(const std::string& name, const Simulation& direct_simulation,
@@ -33,7 +33,7 @@ bool checkSimulation(const std::string& name, const Simulation& direct_simulatio
     std::unique_ptr<OutputData<double>> reference;
 
     // Load reference if available
-    assert(name != "");
+    ASSERT(name != "");
     try {
         reference.reset(IntensityDataIOFactory::readOutputData(
             FileSystemUtils::jointPath(BATesting::StdReferenceDir(), name + ".int.gz")));
diff --git a/Tests/Functional/Fit/Minimizer/ClassicalTestFunctions.cpp b/Tests/Functional/Fit/Minimizer/ClassicalTestFunctions.cpp
index 92f340878c4832d56f5c4b7b19a81daa7963a9cd..fd495f2b20d9b154ff1bb5c1e824b92e20c0b438 100644
--- a/Tests/Functional/Fit/Minimizer/ClassicalTestFunctions.cpp
+++ b/Tests/Functional/Fit/Minimizer/ClassicalTestFunctions.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "Tests/Functional/Fit/Minimizer/ClassicalTestFunctions.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <cmath>
 #include <iostream>
 #include <string>
@@ -24,7 +24,7 @@
 
 double TestFunctions::RosenBrock(const std::vector<double>& par)
 {
-    assert(par.size() == 2);
+    ASSERT(par.size() == 2);
 
     const double x = par[0];
     const double y = par[1];
@@ -44,7 +44,7 @@ double TestFunctions::RosenBrock(const std::vector<double>& par)
 
 double TestFunctions::WoodFour(const std::vector<double>& par)
 {
-    assert(par.size() == 4);
+    ASSERT(par.size() == 4);
 
     const double w = par[0];
     const double x = par[1];
@@ -66,7 +66,7 @@ double TestFunctions::WoodFour(const std::vector<double>& par)
 
 double TestFunctions::DecayingSin(double x, const std::vector<double>& par)
 {
-    assert(par.size() == 4);
+    ASSERT(par.size() == 4);
 
     const double amp = par[0];
     const double freq = par[1];
diff --git a/Tests/Functional/Fit/Minimizer/ResidualTestPlan.cpp b/Tests/Functional/Fit/Minimizer/ResidualTestPlan.cpp
index 6ef51a51a574535e5a1db5f2789bcabcfb9be5b9..8b0872fd82b0426816009708528daf87820d7c32 100644
--- a/Tests/Functional/Fit/Minimizer/ResidualTestPlan.cpp
+++ b/Tests/Functional/Fit/Minimizer/ResidualTestPlan.cpp
@@ -16,7 +16,7 @@
 #include "Fit/Kernel/Minimizer.h"
 #include "Fit/Kernel/Parameters.h"
 #include "Fit/TestEngine/Numeric.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <iostream>
 #include <sstream>
 
diff --git a/Tests/Functional/GUI/Other/SaveLoadProject.cpp b/Tests/Functional/GUI/Other/SaveLoadProject.cpp
index 95748f7814401bdafef7c0b3cc190928a4d08017..0e16e77ff0f821803b257aa89bd6734ba1bee27a 100644
--- a/Tests/Functional/GUI/Other/SaveLoadProject.cpp
+++ b/Tests/Functional/GUI/Other/SaveLoadProject.cpp
@@ -33,7 +33,7 @@
 #include <QCoreApplication>
 #include <QElapsedTimer>
 #include <QXmlStreamWriter>
-#include <cassert>
+#include "Core/Basics/Assert.h"
 
 namespace
 {
@@ -94,7 +94,7 @@ int GUISaveLoadProject::run_job()
 
     auto instrument2DItem =
         dynamic_cast<Instrument2DItem*>(m_models->instrumentModel()->instrumentItem());
-    assert(instrument2DItem);
+    ASSERT(instrument2DItem);
     instrument2DItem->detectorItem()->setXSize(50);
     instrument2DItem->detectorItem()->setYSize(50);
 
diff --git a/Tests/Functional/Python/Std/Check.cpp b/Tests/Functional/Python/Std/Check.cpp
index 6ee8f8c3a4ec3e37cf97d83de8afb87e41715cf5..87077872f03196e7e6da74fa5c3e6ddd38278ed8 100644
--- a/Tests/Functional/Python/Std/Check.cpp
+++ b/Tests/Functional/Python/Std/Check.cpp
@@ -19,7 +19,7 @@
 #include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Simulation/Simulation.h"
 #include "Core/Tools/FileSystemUtils.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <fstream>
 #include <iostream>
 
diff --git a/Tests/Functional/Std/Run.cpp b/Tests/Functional/Std/Run.cpp
index aae837f12f1841c2646dd27ae1703290cbb038bd..cde2bd89ca59fdc7244061d168dfec311d035da2 100644
--- a/Tests/Functional/Std/Run.cpp
+++ b/Tests/Functional/Std/Run.cpp
@@ -22,7 +22,7 @@
 #include "Core/StandardSamples/SampleBuilderFactory.h"
 #include "Core/StandardSamples/SimulationFactory.h"
 #include "Core/Tools/FileSystemUtils.h"
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <iostream>
 
 // implemented differently for Core/Py/Gui tests:
@@ -35,7 +35,7 @@ int run(const std::string& test_name, const std::string& sim_name,
     std::cout << "run std test " << test_name << std::endl;
     std::cout << "- create sim " << sim_name << std::endl;
     std::unique_ptr<Simulation> simulation{SimulationFactory().createItem(sim_name)};
-    assert(simulation);
+    ASSERT(simulation);
 
     std::cout << "- sample builder " << sample_builder_name << std::endl;
     std::unique_ptr<IMultiLayerBuilder> builder{
diff --git a/Tests/Performance/Core/CoreIO.cpp b/Tests/Performance/Core/CoreIO.cpp
index 103aed8939e51f03bbbd97ef94ccd24c194606fe..be66e7d0b660c98f58b7370dbe9270d970b2e3ce 100644
--- a/Tests/Performance/Core/CoreIO.cpp
+++ b/Tests/Performance/Core/CoreIO.cpp
@@ -17,7 +17,7 @@
 #include "Fit/TestEngine/Numeric.h"
 #include "Tests/Performance/Benchmark.h"
 #include <boost/format.hpp>
-#include <cassert>
+#include "Core/Basics/Assert.h"
 #include <iomanip>
 #include <iostream>
 #include <random>
diff --git a/Tests/Performance/GUI/GUIPerformanceTest.cpp b/Tests/Performance/GUI/GUIPerformanceTest.cpp
index d4e7e09ffc241e4919d0381655bc4acf21b25f6b..dce4a374b944058e9d9b891c651bf76fd9d40a32 100644
--- a/Tests/Performance/GUI/GUIPerformanceTest.cpp
+++ b/Tests/Performance/GUI/GUIPerformanceTest.cpp
@@ -128,7 +128,7 @@ void GUIPerformanceTest::test_real_time()
 
         auto instrument2DItem =
             dynamic_cast<Instrument2DItem*>(m_models->instrumentModel()->instrumentItem());
-        assert(instrument2DItem);
+        ASSERT(instrument2DItem);
         instrument2DItem->detectorItem()->setXSize(50);
         instrument2DItem->detectorItem()->setYSize(50);
 
@@ -148,7 +148,7 @@ void GUIPerformanceTest::test_real_time()
     ParameterItem* parItem = dynamic_cast<ParameterItem*>(ModelPath::getItemFromPath(
         "MultiLayer/Layer0/ParticleLayout/ParticleComposition/Particle1/FullSphere/Radius",
         container));
-    Q_ASSERT(parItem);
+    ASSERT(parItem);
 
     double radius = rndm_radius(mt);
     parItem->propagateValueToLink(radius);
diff --git a/Tests/UnitTests/GUI/TestParameterTreeUtils.cpp b/Tests/UnitTests/GUI/TestParameterTreeUtils.cpp
index 9de47916089cf7a668a208c4a1c5a148b8930df0..69ae77034a0de73a81901e32fa37d1b9e3621f99 100644
--- a/Tests/UnitTests/GUI/TestParameterTreeUtils.cpp
+++ b/Tests/UnitTests/GUI/TestParameterTreeUtils.cpp
@@ -57,7 +57,7 @@ TEST_F(TestParameterTreeUtils, test_linkItemFromParameterName)
     SessionItem* particle = model.insertNewItem("Particle");
 
     auto ffItem = static_cast<FormFactorItem*>(particle->getGroupItem(ParticleItem::P_FORM_FACTOR));
-    Q_ASSERT(ffItem);
+    ASSERT(ffItem);
     EXPECT_EQ(ffItem->modelType(), "Cylinder");
 
     EXPECT_EQ(ffItem->getItem(CylinderItem::P_RADIUS),
diff --git a/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp b/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp
index 0fdf68776cf12676bf7f10ac07acc645b5350ca3..52bf817015bccec54e87e544083f4ed4df8fc7d2 100644
--- a/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp
+++ b/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp
@@ -280,10 +280,10 @@ TEST_F(TestParticleDistributionItem, test_FromDomainWithLimits)
     TransformFromDomain::setParticleDistributionItem(partDistItem, particle_collection);
 
     SessionItem* distItem = partDistItem->getGroupItem(ParticleDistributionItem::P_DISTRIBUTION);
-    Q_ASSERT(distItem);
+    ASSERT(distItem);
     RealLimitsItem* limitsItem =
         dynamic_cast<RealLimitsItem*>(distItem->getGroupItem(DistributionItem::P_LIMITS));
-    Q_ASSERT(limitsItem);
+    ASSERT(limitsItem);
 
     EXPECT_EQ(limitsItem->createRealLimits(), domainLimits);
 }
diff --git a/Tests/UnitTests/GUI/TestProjectDocument.cpp b/Tests/UnitTests/GUI/TestProjectDocument.cpp
index e80831f9f77df508edb236133bc4eed2f8156cd9..fd740fcfb17d98ea70a8db96cfdfa77610d62423 100644
--- a/Tests/UnitTests/GUI/TestProjectDocument.cpp
+++ b/Tests/UnitTests/GUI/TestProjectDocument.cpp
@@ -103,7 +103,7 @@ TEST_F(TestProjectDocument, test_projectDocumentWithData)
 
     ApplicationModels models;
     RealDataItem* realData = GuiUnittestUtils::createRealData("RealData", *models.realDataModel());
-    Q_ASSERT(realData);
+    ASSERT(realData);
     DataItem* intensityItem = realData->dataItem();
     JobItemUtils::createDefaultDetectorMap(intensityItem,
                                            models.instrumentModel()->instrumentItem());
diff --git a/Tests/UnitTests/GUI/TestSaveService.cpp b/Tests/UnitTests/GUI/TestSaveService.cpp
index 5babe2c1b49b6253904bfff02ab71a1c902ae782..7a8569c8e8c3f8bf49433f0119098f701afca83f 100644
--- a/Tests/UnitTests/GUI/TestSaveService.cpp
+++ b/Tests/UnitTests/GUI/TestSaveService.cpp
@@ -141,7 +141,7 @@ TEST_F(TestSaveService, test_saveServiceWithData)
 
     ApplicationModels models;
     RealDataItem* realData = GuiUnittestUtils::createRealData("RealData", *models.realDataModel());
-    Q_ASSERT(realData);
+    ASSERT(realData);
     DataItem* intensityItem = realData->dataItem();
     JobItemUtils::createDefaultDetectorMap(intensityItem,
                                            models.instrumentModel()->instrumentItem());