diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp index 446ba4b478731af30c5187aec4687b67d12f0ef5..d082a0fba9f2d65515f258036ae9c84ab432d348 100644 --- a/GUI/coregui/Models/ParticleDistributionItem.cpp +++ b/GUI/coregui/Models/ParticleDistributionItem.cpp @@ -104,7 +104,7 @@ void ParticleDistributionItem::updateParameterList() } } QString selected_par = combo_prop.getValue(); - QStringList par_names = getChildParameterNames(); + QStringList par_names = childParameterNames(); par_names.removeAll(ParticleItem::P_ABUNDANCE); auto updated_prop = ComboProperty(par_names); updated_prop.setCachedValue(cached_par); @@ -119,7 +119,7 @@ void ParticleDistributionItem::updateParameterList() setItemValue(P_DISTRIBUTED_PARAMETER, updated_prop.getVariant()); } -QStringList ParticleDistributionItem::getChildParameterNames() const +QStringList ParticleDistributionItem::childParameterNames() const { QStringList result; QVector<SessionItem*> children = getItems(); @@ -136,13 +136,3 @@ QStringList ParticleDistributionItem::getChildParameterNames() const result.prepend(NO_SELECTION); return result; } - -QStringList ParticleDistributionItem::extractFromParameterPool(const ParameterPool *pool) const -{ - QStringList result; - std::vector<std::string> par_names = pool->parameterNames(); - for (size_t i = 0; i < par_names.size(); ++i) { - result << QString(par_names[i].c_str()); - } - return result; -} diff --git a/GUI/coregui/Models/ParticleDistributionItem.h b/GUI/coregui/Models/ParticleDistributionItem.h index 82c91b65c0c915dd521cf63b4aaeb5056546edc3..748fd3f4c6dc0207596812a7f26e6414ccb72c7b 100644 --- a/GUI/coregui/Models/ParticleDistributionItem.h +++ b/GUI/coregui/Models/ParticleDistributionItem.h @@ -20,27 +20,22 @@ #include "SessionGraphicsItem.h" #include "ParticleDistribution.h" - - class BA_CORE_API_ ParticleDistributionItem : public SessionGraphicsItem { - public: static const QString P_DISTRIBUTED_PARAMETER; static const QString P_DISTRIBUTION; static const QString NO_SELECTION; static const QString T_PARTICLES; - explicit ParticleDistributionItem(); + ParticleDistributionItem(); virtual ~ParticleDistributionItem(); std::unique_ptr<ParticleDistribution> createParticleDistribution() const; -public slots: void updateParameterList(); private: - QStringList getChildParameterNames() const; - QStringList extractFromParameterPool(const ParameterPool *pool) const; + QStringList childParameterNames() const; }; #endif // PARTICLEDISTRIBUTIONITEM_H diff --git a/Tests/UnitTests/GUI/TestGUI.cpp b/Tests/UnitTests/GUI/TestGUI.cpp index 0c4dda97d46b0a0d0966eeba71ebce08da404a12..6e0dedfcb46f018b35e9adab118a5f67b12d9678 100644 --- a/Tests/UnitTests/GUI/TestGUI.cpp +++ b/Tests/UnitTests/GUI/TestGUI.cpp @@ -37,13 +37,13 @@ int main(int argc, char** argv) { TestSessionItem testSessionItem; TestMapperCases testMapperCases; TestMapperForItem testMapperForItem; - TestParticleDistributionItem testParticleDistributionItem; TestGUIHelpers testGUIHelpers; TestFitParameterModel testFitParameterModel; TestMaterialModel testMaterialModel; TestComboProperty testComboProperty; TestTranslations testTranslations; TestGroupProperty testGroupProperty; + TestParticleDistributionItem testParticleDistributionItem; bool status(false); @@ -59,13 +59,13 @@ int main(int argc, char** argv) { status |= QTest::qExec(&testMapperCases, argc, argv); status |= QTest::qExec(&testSessionModel, argc, argv); status |= QTest::qExec(&testMapperForItem, argc, argv); - status |= QTest::qExec(&testParticleDistributionItem, argc, argv); status |= QTest::qExec(&testGUIHelpers, argc, argv); status |= QTest::qExec(&testFitParameterModel, argc, argv); status |= QTest::qExec(&testMaterialModel, argc, argv); status |= QTest::qExec(&testComboProperty, argc, argv); status |= QTest::qExec(&testTranslations, argc, argv); status |= QTest::qExec(&testGroupProperty, argc, argv); + status |= QTest::qExec(&testParticleDistributionItem, argc, argv); return status; } diff --git a/Tests/UnitTests/GUI/TestParticleDistributionItem.h b/Tests/UnitTests/GUI/TestParticleDistributionItem.h index 39bee853bc5faf6e509226d53c02c4d184c5930e..32c26a786f551d25907b40045ed1470e156a2db2 100644 --- a/Tests/UnitTests/GUI/TestParticleDistributionItem.h +++ b/Tests/UnitTests/GUI/TestParticleDistributionItem.h @@ -2,6 +2,20 @@ #include "SampleModel.h" #include "ParticleDistributionItem.h" #include "ComboProperty.h" +#include "ParticleItem.h" + +namespace { + const QStringList expectedAnisoParams = { + "None", "Particle/AnisoPyramid/Length", "Particle/AnisoPyramid/Width", + "Particle/AnisoPyramid/Height", "Particle/AnisoPyramid/Alpha", + "Particle/Position Offset/X", "Particle/Position Offset/Y", "Particle/Position Offset/Z"}; + + const QStringList expectedBoxParams = { + "None", "Particle/Box/Length", "Particle/Box/Width", + "Particle/Box/Height", "Particle/Position Offset/X", + "Particle/Position Offset/Y", "Particle/Position Offset/Z"}; +} + class TestParticleDistributionItem : public QObject { Q_OBJECT @@ -9,25 +23,27 @@ class TestParticleDistributionItem : public QObject { private slots: void test_InitialState(); void test_AddParticle(); - }; inline void TestParticleDistributionItem::test_InitialState() { SampleModel model; - SessionItem *item = model.insertNewItem(Constants::ParticleDistributionType); + SessionItem *distItem = model.insertNewItem(Constants::ParticleDistributionType); + + QCOMPARE(distItem->displayName(), Constants::ParticleDistributionType); + QCOMPARE(distItem->displayName(), distItem->itemName()); + + // xpos, ypos, P_ABUNDANCE, P_DISTRIBUTION, P_DISTRIBUTED_PARAMETER + QCOMPARE(distItem->childItems().size(), 5); + + QCOMPARE(distItem->defaultTag(), ParticleDistributionItem::T_PARTICLES); - QCOMPARE(item->displayName(), Constants::ParticleDistributionType); - QCOMPARE(item->displayName(), item->itemName()); - QCOMPARE(item->childItems().size(), 5); // xpos, ypos, P_ABUNDANCE, P_DISTRIBUTION, P_DISTRIBUTED_PARAMETER - QCOMPARE(item->defaultTag(), ParticleDistributionItem::T_PARTICLES); - QCOMPARE(item->acceptableDefaultItemTypes(), + QCOMPARE(distItem->acceptableDefaultItemTypes(), QVector<QString>() << Constants::ParticleType << Constants::ParticleCoreShellType << Constants::ParticleCompositionType); - ComboProperty prop = item->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER) + ComboProperty prop = distItem->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER) .value<ComboProperty>(); - QCOMPARE(prop.getValues(), QStringList() << QStringLiteral("None")); QCOMPARE(prop.getValue(), QStringLiteral("None")); QVERIFY(prop.getCachedValue().isEmpty()); @@ -36,12 +52,26 @@ inline void TestParticleDistributionItem::test_InitialState() inline void TestParticleDistributionItem::test_AddParticle() { SampleModel model; - SessionItem *item = model.insertNewItem(Constants::ParticleDistributionType); - model.insertNewItem(Constants::ParticleType, item->index()); + SessionItem *dist = model.insertNewItem(Constants::ParticleDistributionType); + + // adding default particle and checking list of available parameters + SessionItem *particle = model.insertNewItem(Constants::ParticleType, dist->index()); + + QCOMPARE(dist->getItems().size(), 1); + + ComboProperty prop = dist->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER) + .value<ComboProperty>(); + + QCOMPARE(prop.getValues(), expectedAnisoParams); + QCOMPARE(prop.getValue(), QStringLiteral("None")); - QCOMPARE(item->childItems().size(), 6); // xpos, ypos, P_ABUNDANCE, P_DISTRIBUTION, T_PARTICLES, P_DISTRIBUTED_PARAMETER + // changing formfactor of the particle + particle->getGroupItem(ParticleItem::P_FORM_FACTOR, Constants::BoxType); - ComboProperty prop = item->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER) + qDebug() << expectedBoxParams << prop.getValues(); + prop = dist->getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER) .value<ComboProperty>(); + QCOMPARE(prop.getValues(), expectedAnisoParams); + QCOMPARE(prop.getValue(), QStringLiteral("None")); }