From 3bf46c8996290d93bd7771bc1a241bd7fa328a60 Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Tue, 30 Jul 2019 15:14:54 +0200 Subject: [PATCH] Switch to unique_ptr in all methods dealing with OutputData --- Core/Fitting/ObjectiveMetric.cpp | 4 ++-- Core/InputOutput/IntensityDataIOFactory.cpp | 4 ++-- Core/Instrument/SimulationResult.cpp | 6 +++--- Core/Instrument/SimulationResult.h | 2 +- GUI/coregui/Models/JobItemUtils.cpp | 2 +- GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp | 2 +- Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp | 4 ++-- Tests/Functional/Core/CoreSpecial/PolDWBAMagCylinders.cpp | 6 +++--- .../Functional/Core/CoreStandardTest/CoreStandardTest.cpp | 2 +- .../Core/SelfConsistenceTest/SelfConsistenceTest.cpp | 2 +- Tests/Functional/Fit/FitObjective/FitPlan.cpp | 2 +- Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp | 4 ++-- Tests/Functional/Python/PyStandard/PyStandardTest.cpp | 2 +- Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp | 6 +++--- Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp | 8 ++++---- Tests/UnitTests/Core/Other/SimulationResultTest.cpp | 4 ++-- 16 files changed, 30 insertions(+), 30 deletions(-) diff --git a/Core/Fitting/ObjectiveMetric.cpp b/Core/Fitting/ObjectiveMetric.cpp index c17cb2fb642..dd7d3be10eb 100644 --- a/Core/Fitting/ObjectiveMetric.cpp +++ b/Core/Fitting/ObjectiveMetric.cpp @@ -252,8 +252,8 @@ double RQ4Metric::compute(const SimDataPair& data_pair, bool use_weights) const return Chi2Metric::compute(data_pair, use_weights); // fetching data in RQ4 form - std::unique_ptr<OutputData<double>> sim_data(data_pair.simulationResult().data(AxesUnits::RQ4)); - std::unique_ptr<OutputData<double>> exp_data(data_pair.experimentalData().data(AxesUnits::RQ4)); + auto sim_data = data_pair.simulationResult().data(AxesUnits::RQ4); + auto exp_data = data_pair.experimentalData().data(AxesUnits::RQ4); return computeFromArrays(sim_data->getRawDataVector(), exp_data->getRawDataVector(), data_pair.user_weights_array()); diff --git a/Core/InputOutput/IntensityDataIOFactory.cpp b/Core/InputOutput/IntensityDataIOFactory.cpp index f5e88036fa2..44e55927c2d 100644 --- a/Core/InputOutput/IntensityDataIOFactory.cpp +++ b/Core/InputOutput/IntensityDataIOFactory.cpp @@ -65,6 +65,6 @@ void IntensityDataIOFactory::writeIntensityData(const IHistogram& histogram, void IntensityDataIOFactory::writeSimulationResult(const SimulationResult& result, const std::string& file_name) { - std::unique_ptr<OutputData<double>> P_data(result.data()); - writeOutputData(*P_data, file_name); + auto data = result.data(); + writeOutputData(*data, file_name); } diff --git a/Core/Instrument/SimulationResult.cpp b/Core/Instrument/SimulationResult.cpp index aba3ddd9ad2..a4f4b279a01 100644 --- a/Core/Instrument/SimulationResult.cpp +++ b/Core/Instrument/SimulationResult.cpp @@ -58,12 +58,12 @@ SimulationResult& SimulationResult::operator=(SimulationResult&& other) return *this; } -OutputData<double>* SimulationResult::data(AxesUnits units) const +std::unique_ptr<OutputData<double> > SimulationResult::data(AxesUnits units) const { if (!mP_data) throw std::runtime_error( "Error in SimulationResult::data:Attempt to access non-initialized data"); - return mP_unit_converter->createConvertedData(*mP_data, units).release(); + return mP_unit_converter->createConvertedData(*mP_data, units); } Histogram2D* SimulationResult::histogram2d(AxesUnits units) const @@ -72,7 +72,7 @@ Histogram2D* SimulationResult::histogram2d(AxesUnits units) const throw std::runtime_error("Error in SimulationResult::histogram2d: " "dimension of data is not 2. Please use axis(), array() and " "data() functions for 1D data."); - std::unique_ptr<OutputData<double>> P_data(data(units)); + auto P_data = data(units); return new Histogram2D(*P_data); } diff --git a/Core/Instrument/SimulationResult.h b/Core/Instrument/SimulationResult.h index 326cdc80555..22d2ba03274 100644 --- a/Core/Instrument/SimulationResult.h +++ b/Core/Instrument/SimulationResult.h @@ -51,7 +51,7 @@ public: SimulationResult& operator=(SimulationResult&& other); #ifndef SWIG - OutputData<double>* data(AxesUnits units = AxesUnits::DEFAULT) const; + std::unique_ptr<OutputData<double>> data(AxesUnits units = AxesUnits::DEFAULT) const; #endif Histogram2D* histogram2d(AxesUnits units = AxesUnits::DEFAULT) const; diff --git a/GUI/coregui/Models/JobItemUtils.cpp b/GUI/coregui/Models/JobItemUtils.cpp index 21bd4394acf..38b35f40712 100644 --- a/GUI/coregui/Models/JobItemUtils.cpp +++ b/GUI/coregui/Models/JobItemUtils.cpp @@ -125,7 +125,7 @@ void JobItemUtils::setResults(DataItem* intensityItem, const Simulation* simulat updateAxesTitle(intensityItem, converter, converter.defaultUnits()); } auto selected_units = JobItemUtils::axesUnitsFromName(intensityItem->selectedAxesUnits()); - std::unique_ptr<OutputData<double>> data(sim_result.data(selected_units)); + auto data = sim_result.data(selected_units); intensityItem->setOutputData(data.release()); } diff --git a/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp b/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp index 41cb085637c..da978f89d1a 100644 --- a/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp +++ b/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp @@ -51,7 +51,7 @@ void GUIFitObserver::update(const FitObjective* subject) if (subject->isCompleted()) info.m_log_info = subject->minimizerResult().toString(); - std::unique_ptr<OutputData<double>> data(subject->dataPair().simulationResult().data()); + auto data = subject->dataPair().simulationResult().data(); info.m_sim_values = data->getRawDataVector(); m_iteration_info = info; diff --git a/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp b/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp index b5795388b40..3ed25497437 100644 --- a/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp +++ b/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp @@ -32,8 +32,8 @@ bool BatchSimulation::runTest() simulation->setSampleBuilder(builder); simulation->runSimulation(); auto sim_result = simulation->result(); - const std::unique_ptr<OutputData<double>> reference(sim_result.data()); - const std::unique_ptr<OutputData<double>> result(reference->clone()); + const auto reference = sim_result.data(); + const auto result = reference->clone(); result->setAllTo(0.0); const unsigned n_batches = 9; diff --git a/Tests/Functional/Core/CoreSpecial/PolDWBAMagCylinders.cpp b/Tests/Functional/Core/CoreSpecial/PolDWBAMagCylinders.cpp index 5083f65a542..60fc1663c05 100644 --- a/Tests/Functional/Core/CoreSpecial/PolDWBAMagCylinders.cpp +++ b/Tests/Functional/Core/CoreSpecial/PolDWBAMagCylinders.cpp @@ -44,19 +44,19 @@ bool PolDWBAMagCylinders::runTest() simulation->setAnalyzerProperties(zplus, 1.0, 0.5); simulation->runSimulation(); auto sim_result = simulation->result(); - const std::unique_ptr<OutputData<double> > P_data00(sim_result.data()); + const auto P_data00 = sim_result.data(); simulation->setBeamPolarization(zplus); simulation->setAnalyzerProperties(zplus, -1.0, 0.5); simulation->runSimulation(); sim_result = simulation->result(); - const std::unique_ptr<OutputData<double> > P_data01(sim_result.data()); + const auto P_data01 = sim_result.data(); simulation->setBeamPolarization(zmin); simulation->setAnalyzerProperties(zplus, 1.0, 0.5); simulation->runSimulation(); sim_result = simulation->result(); - const std::unique_ptr<OutputData<double> > P_data10(sim_result.data()); + const auto P_data10 = sim_result.data(); simulation->setBeamPolarization(zmin); simulation->setAnalyzerProperties(zplus, -1.0, 0.5); diff --git a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp b/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp index 1e48aa7c99c..6ed58d835b8 100644 --- a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp +++ b/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp @@ -36,7 +36,7 @@ bool CoreStandardTest::runTest() assert(m_reference_simulation); m_reference_simulation->runSimulation(); auto sim_result = m_reference_simulation->result(); - const std::unique_ptr<OutputData<double>> result_data(sim_result.data()); + const auto result_data = sim_result.data(); // Compare with reference if available. bool success = false; diff --git a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp index b019886abb5..edc04a591a2 100644 --- a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp +++ b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp @@ -45,7 +45,7 @@ bool SelfConsistenceTest::runTest() { simulation->runSimulation(); auto sim_result = simulation->result(); - results.push_back(std::unique_ptr<OutputData<double>>(sim_result.data())); + results.push_back(sim_result.data()); } // Compare with reference if available. diff --git a/Tests/Functional/Fit/FitObjective/FitPlan.cpp b/Tests/Functional/Fit/FitObjective/FitPlan.cpp index 14bfc71eb7c..5dc46f0e417 100644 --- a/Tests/Functional/Fit/FitObjective/FitPlan.cpp +++ b/Tests/Functional/Fit/FitObjective/FitPlan.cpp @@ -126,5 +126,5 @@ std::unique_ptr<OutputData<double> > FitPlan::createOutputData() const params.setValues(expectedValues()); auto simulation = buildSimulation(params); simulation->runSimulation(); - return std::unique_ptr<OutputData<double>>(simulation->result().data()); + return simulation->result().data(); } diff --git a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp b/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp index acad7816c51..8cddb7d41da 100644 --- a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp +++ b/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp @@ -54,8 +54,8 @@ bool GUIStandardTest::runTest() domain_simulation->runSimulation(); auto domain_result = domain_simulation->result(); - const std::unique_ptr<OutputData<double> > domain_data(domain_result.data()); - const std::unique_ptr<OutputData<double> > reference_data(ref_result.data()); + const auto domain_data = domain_result.data(); + const auto reference_data = ref_result.data(); return TestUtils::isTheSame(*domain_data, *reference_data, m_threshold); } diff --git a/Tests/Functional/Python/PyStandard/PyStandardTest.cpp b/Tests/Functional/Python/PyStandard/PyStandardTest.cpp index a79bfedd679..92c89166160 100644 --- a/Tests/Functional/Python/PyStandard/PyStandardTest.cpp +++ b/Tests/Functional/Python/PyStandard/PyStandardTest.cpp @@ -48,7 +48,7 @@ bool PyStandardTest::runTest() m_reference_simulation->runSimulation(); auto ref_result = m_reference_simulation->result(); - const std::unique_ptr<OutputData<double>> reference_data(ref_result.data()); + const auto reference_data = ref_result.data(); // Compare results const std::unique_ptr<OutputData<double>> domain_data( diff --git a/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp b/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp index d47551f41cb..2035106d8a0 100644 --- a/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp +++ b/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp @@ -166,7 +166,7 @@ TEST_F(DepthProbeSimulationTest, ResultAquisition) EXPECT_THROW(sim_result.data(AxesUnits::MM), std::runtime_error); - const std::unique_ptr<OutputData<double>> output(sim_result.data()); + const auto output = sim_result.data(); EXPECT_EQ(depth_map->getTotalNumberOfBins(), output->getAllocatedSize()); EXPECT_EQ(depth_map->getRank(), output->getRank()); EXPECT_EQ(depth_map->getXaxis().getMin(), output->getAxis(0).getMin()); @@ -186,8 +186,8 @@ TEST_F(DepthProbeSimulationTest, SimulationClone) SimulationResult clone_result = clone->result(); - std::unique_ptr<OutputData<double>> sim_output(sim_result.data()); - std::unique_ptr<OutputData<double>> clone_output(clone_result.data()); + auto sim_output = sim_result.data(); + auto clone_output = clone_result.data(); EXPECT_EQ(sim_output->getAllocatedSize(), clone_output->getAllocatedSize()); for (size_t i = 0; i < sim_output->getAllocatedSize(); ++i) { diff --git a/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp index fc5305ed345..7516a55dc31 100644 --- a/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp +++ b/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp @@ -174,7 +174,7 @@ TEST_F(SpecularSimulationTest, ConstructSimulation) EXPECT_EQ(3u, sim->sample()->numberOfLayers()); SimulationResult sim_result = sim->result(); - std::unique_ptr<OutputData<double>> data(sim_result.data()); + auto data = sim_result.data(); EXPECT_EQ(data->getAllocatedSize(), 10u); EXPECT_EQ(data->totalSum(), 0.0); EXPECT_EQ(data->getRank(), 1u); @@ -182,7 +182,7 @@ TEST_F(SpecularSimulationTest, ConstructSimulation) sim->runSimulation(); sim_result = sim->result(); - data.reset(sim_result.data()); + data = sim_result.data(); EXPECT_EQ(data->getAllocatedSize(), 10u); EXPECT_EQ(data->getRank(), 1u); @@ -203,7 +203,7 @@ TEST_F(SpecularSimulationTest, SimulationClone) EXPECT_EQ(3u, clone->sample()->numberOfLayers()); SimulationResult clone_result = clone->result(); - std::unique_ptr<OutputData<double>> data(clone_result.data()); + auto data = clone_result.data(); EXPECT_EQ(data->getAllocatedSize(), 10u); EXPECT_EQ(data->totalSum(), 0.0); @@ -214,7 +214,7 @@ TEST_F(SpecularSimulationTest, SimulationClone) std::unique_ptr<SpecularSimulation> clone2(sim->clone()); clone_result = clone2->result(); - const std::unique_ptr<OutputData<double>> output_data(clone_result.data()); + const auto output_data = clone_result.data(); EXPECT_EQ(10u, output_data->getAllocatedSize()); checkBeamState(*clone2); diff --git a/Tests/UnitTests/Core/Other/SimulationResultTest.cpp b/Tests/UnitTests/Core/Other/SimulationResultTest.cpp index 48a2e84fcbd..c9082970cc0 100644 --- a/Tests/UnitTests/Core/Other/SimulationResultTest.cpp +++ b/Tests/UnitTests/Core/Other/SimulationResultTest.cpp @@ -35,7 +35,7 @@ TEST_F(SimulationResultTest, accessToEmptySimulation) EXPECT_EQ(result.size(), size_t(nx*ny)); // OutputData has correct size and amplitudes - std::unique_ptr<OutputData<double>> data(result.data()); + auto data = result.data(); EXPECT_EQ(data->getAllocatedSize(), size_t(nx*ny)); EXPECT_EQ(data->totalSum(), 0.0); } @@ -53,7 +53,7 @@ TEST_F(SimulationResultTest, accessToEmptyRoiSimulation) EXPECT_EQ(result.size(), 9u); // OutputData has correct size and amplitudes - std::unique_ptr<OutputData<double>> data(result.data()); + auto data = result.data(); EXPECT_EQ(data->getAllocatedSize(), 9u); EXPECT_EQ(data->totalSum(), 0.0); } -- GitLab