Skip to content
Snippets Groups Projects
Commit 5ca133bb authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

New way of retrieving list of parameter names for ParticleDistributionItem.

parent 2e049db2
No related branches found
No related tags found
No related merge requests found
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
#include "SampleModel.h" #include "SampleModel.h"
#include "ScientificDoubleProperty.h" #include "ScientificDoubleProperty.h"
#include "GUIHelpers.h" #include "GUIHelpers.h"
#include "FitParameterHelper.h"
#include "SampleModel.h"
#include <QStack> #include <QStack>
namespace { namespace {
...@@ -59,6 +61,7 @@ void ParameterTreeUtils::populateParameterContainer(SessionItem* container, ...@@ -59,6 +61,7 @@ void ParameterTreeUtils::populateParameterContainer(SessionItem* container,
SessionItem* sourceLabel SessionItem* sourceLabel
= container->model()->insertNewItem(Constants::ParameterLabelType, container->index()); = container->model()->insertNewItem(Constants::ParameterLabelType, container->index());
handleItem(sourceLabel, source); handleItem(sourceLabel, source);
} }
...@@ -83,6 +86,27 @@ void ParameterTreeUtils::visitParameterContainer(SessionItem* container, ...@@ -83,6 +86,27 @@ void ParameterTreeUtils::visitParameterContainer(SessionItem* container,
} }
} }
//! Creates list with parameter names of source item.
QStringList ParameterTreeUtils::parameterTreeList(const SessionItem* source)
{
QStringList result;
SampleModel model;
SessionItem* container = model.insertNewItem(Constants::ParameterContainerType);
populateParameterContainer(container, source);
visitParameterContainer(container, [&](ParameterItem* parItem)
{
result.push_back(FitParameterHelper::getParameterItemPath(parItem));
});
std::reverse(result.begin(), result.end());
return result;
}
//! For every ParameterItem in a container creates a link to the domain. //! For every ParameterItem in a container creates a link to the domain.
void ParameterTreeUtils::populateDomainLinks(SessionItem* container) void ParameterTreeUtils::populateDomainLinks(SessionItem* container)
......
...@@ -39,6 +39,8 @@ BA_CORE_API_ void populateParameterContainer(SessionItem* container, const Sessi ...@@ -39,6 +39,8 @@ BA_CORE_API_ void populateParameterContainer(SessionItem* container, const Sessi
BA_CORE_API_ void visitParameterContainer(SessionItem* container, BA_CORE_API_ void visitParameterContainer(SessionItem* container,
std::function<void(ParameterItem*)> fun); std::function<void(ParameterItem*)> fun);
BA_CORE_API_ QStringList parameterTreeList(const SessionItem* source);
BA_CORE_API_ void populateDomainLinks(SessionItem* container); BA_CORE_API_ void populateDomainLinks(SessionItem* container);
} }
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "TestComboProperty.h" #include "TestComboProperty.h"
#include "TestTranslations.h" #include "TestTranslations.h"
#include "TestGroupProperty.h" #include "TestGroupProperty.h"
#include "TestParameterTreeUtils.h"
int main(int argc, char** argv) { int main(int argc, char** argv) {
QCoreApplication app(argc, argv); QCoreApplication app(argc, argv);
...@@ -26,46 +27,48 @@ int main(int argc, char** argv) { ...@@ -26,46 +27,48 @@ int main(int argc, char** argv) {
QMetaType::registerComparators<ComboProperty>(); QMetaType::registerComparators<ComboProperty>();
TestFormFactorItems testFormFactorItems; // TestFormFactorItems testFormFactorItems;
TestFTDistributionItems testFTDistributionItems; // TestFTDistributionItems testFTDistributionItems;
TestParameterizedItem testParameterizedItem; // TestParameterizedItem testParameterizedItem;
TestParticleItem testParticleItem; // TestParticleItem testParticleItem;
TestLayerRoughnessItems testLayerRoughnessItems; // TestLayerRoughnessItems testLayerRoughnessItems;
TestParaCrystalItems testParaCrystalItems; // TestParaCrystalItems testParaCrystalItems;
TestSessionModel testSessionModel; // TestSessionModel testSessionModel;
TestGUICoreObjectCorrespondence testGUICoreObjectCorrespondence; // TestGUICoreObjectCorrespondence testGUICoreObjectCorrespondence;
TestSessionItem testSessionItem; // TestSessionItem testSessionItem;
TestMapperCases testMapperCases; // TestMapperCases testMapperCases;
TestMapperForItem testMapperForItem; // TestMapperForItem testMapperForItem;
TestGUIHelpers testGUIHelpers; // TestGUIHelpers testGUIHelpers;
TestFitParameterModel testFitParameterModel; // TestFitParameterModel testFitParameterModel;
TestMaterialModel testMaterialModel; // TestMaterialModel testMaterialModel;
TestComboProperty testComboProperty; // TestComboProperty testComboProperty;
TestTranslations testTranslations; // TestTranslations testTranslations;
TestGroupProperty testGroupProperty; // TestGroupProperty testGroupProperty;
TestParticleDistributionItem testParticleDistributionItem; // TestParticleDistributionItem testParticleDistributionItem;
TestParameterTreeUtils testParameterTreeUtils;
bool status(false); bool status(false);
status |= QTest::qExec(&testFormFactorItems, argc, argv); // status |= QTest::qExec(&testFormFactorItems, argc, argv);
status |= QTest::qExec(&testFTDistributionItems, argc, argv); // status |= QTest::qExec(&testFTDistributionItems, argc, argv);
status |= QTest::qExec(&testParameterizedItem, argc, argv); // status |= QTest::qExec(&testParameterizedItem, argc, argv);
status |= QTest::qExec(&testParticleItem, argc, argv); // status |= QTest::qExec(&testParticleItem, argc, argv);
status |= QTest::qExec(&testLayerRoughnessItems, argc, argv); // status |= QTest::qExec(&testLayerRoughnessItems, argc, argv);
status |= QTest::qExec(&testParaCrystalItems, argc, argv); // status |= QTest::qExec(&testParaCrystalItems, argc, argv);
status |= QTest::qExec(&testSessionModel, argc, argv); // status |= QTest::qExec(&testSessionModel, argc, argv);
status |= QTest::qExec(&testGUICoreObjectCorrespondence, argc, argv); // status |= QTest::qExec(&testGUICoreObjectCorrespondence, argc, argv);
status |= QTest::qExec(&testSessionItem); // status |= QTest::qExec(&testSessionItem);
status |= QTest::qExec(&testMapperCases, argc, argv); // status |= QTest::qExec(&testMapperCases, argc, argv);
status |= QTest::qExec(&testSessionModel, argc, argv); // status |= QTest::qExec(&testSessionModel, argc, argv);
status |= QTest::qExec(&testMapperForItem, argc, argv); // status |= QTest::qExec(&testMapperForItem, argc, argv);
status |= QTest::qExec(&testGUIHelpers, argc, argv); // status |= QTest::qExec(&testGUIHelpers, argc, argv);
status |= QTest::qExec(&testFitParameterModel, argc, argv); // status |= QTest::qExec(&testFitParameterModel, argc, argv);
status |= QTest::qExec(&testMaterialModel, argc, argv); // status |= QTest::qExec(&testMaterialModel, argc, argv);
status |= QTest::qExec(&testComboProperty, argc, argv); // status |= QTest::qExec(&testComboProperty, argc, argv);
status |= QTest::qExec(&testTranslations, argc, argv); // status |= QTest::qExec(&testTranslations, argc, argv);
status |= QTest::qExec(&testGroupProperty, argc, argv); // status |= QTest::qExec(&testGroupProperty, argc, argv);
status |= QTest::qExec(&testParticleDistributionItem, argc, argv); // status |= QTest::qExec(&testParticleDistributionItem, argc, argv);
status |= QTest::qExec(&testParameterTreeUtils, argc, argv);
return status; return status;
} }
#include <QtTest>
#include "ParameterTreeItems.h"
#include "ParameterTreeUtils.h"
#include "LayerItem.h"
#include "SampleModel.h"
namespace {
const QStringList expectedForParticle = {
"Particle/AnisoPyramid/Length", "Particle/AnisoPyramid/Width",
"Particle/AnisoPyramid/Height", "Particle/AnisoPyramid/Alpha",
"Particle/Abundance", "Particle/Position Offset/X",
"Particle/Position Offset/Y", "Particle/Position Offset/Z"};
}
class TestParameterTreeUtils : public QObject {
Q_OBJECT
private slots:
void test_parameterTreeList();
};
//! Tests function returning list of names representing properties of given item.
inline void TestParameterTreeUtils::test_parameterTreeList()
{
SampleModel model;
SessionItem *layer = model.insertNewItem(Constants::LayerType);
QCOMPARE(ParameterTreeUtils::parameterTreeList(layer), QStringList() << "Layer/Thickness");
SessionItem *particle = model.insertNewItem(Constants::ParticleType);
QCOMPARE(ParameterTreeUtils::parameterTreeList(particle), expectedForParticle);
}
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