Skip to content
Snippets Groups Projects
Commit 286f80cd authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

..

parent 888507d8
No related branches found
No related tags found
1 merge request!2679apply test suite to XML serialization, and fix a number of serialization bugs (#1013); revert removal of materials argument (#1014)
...@@ -20,9 +20,10 @@ ...@@ -20,9 +20,10 @@
#include "Device/IO/IOFactory.h" #include "Device/IO/IOFactory.h"
#include "GUI/Model/FromCore/ItemizeSample.h" #include "GUI/Model/FromCore/ItemizeSample.h"
#include "GUI/Model/FromCore/ItemizeSimulation.h" #include "GUI/Model/FromCore/ItemizeSimulation.h"
#include "GUI/Model/Sample/SampleItem.h" #include "GUI/Model/Project/ProjectDocument.h"
#include "GUI/Model/Sample/SamplesSet.h"
#include "GUI/Model/Sim/BackgroundItems.h" #include "GUI/Model/Sim/BackgroundItems.h"
#include "GUI/Model/Sim/InstrumentItems.h" #include "GUI/Model/Sim/InstrumentsSet.h"
#include "GUI/Model/Sim/SimulationOptionsItem.h" #include "GUI/Model/Sim/SimulationOptionsItem.h"
#include "GUI/Model/ToCore/SimulationToCore.h" #include "GUI/Model/ToCore/SimulationToCore.h"
#include "Sim/Simulation/ISimulation.h" #include "Sim/Simulation/ISimulation.h"
...@@ -37,13 +38,23 @@ bool checkSimulation(const std::string& name, ISimulation& sim, double precision ...@@ -37,13 +38,23 @@ bool checkSimulation(const std::string& name, ISimulation& sim, double precision
int allowed_outliers) int allowed_outliers)
{ {
std::cout << "Tests/Suite/GUI: " << name << std::endl; std::cout << "Tests/Suite/GUI: " << name << std::endl;
QString fname = QString::fromStdString(name);
std::cout << " Round trip (simulation -> GUI items -> simulation)" << std::endl; std::cout << " Round trip (simulation -> GUI items -> XML -> GUI items -> simulation)" << std::endl;
std::unique_ptr<SampleItem> sampleItem(GUI::FromCore::itemizeSample(*sim.sample())); std::unique_ptr<SampleItem> sampleItem(GUI::FromCore::itemizeSample(*sim.sample()));
std::unique_ptr<InstrumentItem> instrumentItem(GUI::FromCore::itemizeInstrument(sim)); std::unique_ptr<InstrumentItem> instrumentItem(GUI::FromCore::itemizeInstrument(sim));
std::unique_ptr<SimulationOptionsItem> optionsItem(GUI::FromCore::itemizeOptions(sim)); std::unique_ptr<SimulationOptionsItem> optionsItem(GUI::FromCore::itemizeOptions(sim));
ProjectDocument D;
D.instrumentsRW()->add_item(instrumentItem.get());
D.samplesRW()->add_item(sampleItem.get());
*D.simulationOptionsRW() = *optionsItem;
D.saveProjectFileWithData(fname);
ProjectDocument D2;
D2.loadProjectFileWithData(fname);
std::unique_ptr<ISimulation> sim2( std::unique_ptr<ISimulation> sim2(
GUI::ToCore::itemsToSimulation(sampleItem.get(), instrumentItem.get(), optionsItem.get())); GUI::ToCore::itemsToSimulation(D2.samples()->at(0), instrumentItem.get(), optionsItem.get()));
const Datafield data2 = sim2->simulate(); const Datafield data2 = sim2->simulate();
std::cout << " Direct simulation" << std::endl; std::cout << " Direct simulation" << std::endl;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment