From 90aa11b81e42c9f6d2e739fe2c82253527109c2b Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Wed, 15 Dec 2021 19:07:51 +0100
Subject: [PATCH] mv check for data=0 to DataUtils

---
 Device/Data/DataUtils.cpp           | 7 +++++++
 Tests/Functional/Core/Std/Check.cpp | 7 -------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/Device/Data/DataUtils.cpp b/Device/Data/DataUtils.cpp
index f0f2395aa2c..931686f49b2 100644
--- a/Device/Data/DataUtils.cpp
+++ b/Device/Data/DataUtils.cpp
@@ -16,6 +16,7 @@
 #include "Base/Math/FourierTransform.h"
 #include "Base/Math/Numeric.h"
 #include "Device/Data/ArrayUtils.h"
+#include "Device/Histo/IHistogram.h"
 #include <iostream>
 
 namespace {
@@ -51,6 +52,12 @@ double DataUtils::Data::relativeDataDifference(const OutputData<double>& dat,
 bool DataUtils::Data::checkRelativeDifference(const OutputData<double>& dat,
                                               const OutputData<double>& ref, const double threshold)
 {
+    const std::unique_ptr<const IHistogram> histo(IHistogram::createHistogram(dat));
+    if (histo->getMinimum()==0 && histo->getMaximum()==0) {
+        std::cerr << "FAILED: simulated data set is empty" << std::endl;
+        return false;
+    }
+
     const double diff = relativeDataDifference(dat, ref);
     if (diff > threshold) {
         std::cerr << "FAILED: relative deviation of dat from ref is " << diff
diff --git a/Tests/Functional/Core/Std/Check.cpp b/Tests/Functional/Core/Std/Check.cpp
index 54306b46994..4cad0b8f703 100644
--- a/Tests/Functional/Core/Std/Check.cpp
+++ b/Tests/Functional/Core/Std/Check.cpp
@@ -17,7 +17,6 @@
 #include "Base/Util/FileSystemUtils.h"
 #include "Core/Simulation/ISimulation.h"
 #include "Device/Data/DataUtils.h"
-#include "Device/Histo/IHistogram.h"
 #include "Device/Histo/IntensityDataIOFactory.h"
 #include "Device/Histo/SimulationResult.h"
 #include <iostream>
@@ -30,12 +29,6 @@ bool checkSimulation(const std::string& name, const ISimulation& direct_simulati
     // Run simulation directly.
     const std::unique_ptr<OutputData<double>> result_data = direct_simulation.result().data();
 
-    const std::unique_ptr<const IHistogram> histo(IHistogram::createHistogram(*result_data));
-    if (histo->getMinimum()==0 && histo->getMaximum()==0) {
-        std::cerr << "FAILED: simulated data set is empty\n";
-        return false;
-    }
-
     std::unique_ptr<OutputData<double>> reference;
 
     // Load reference if available.
-- 
GitLab