Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
BornAgain
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
mlz
BornAgain
Commits
0d7bbabb
Commit
0d7bbabb
authored
2 years ago
by
Mikhail Svechnikov
Browse files
Options
Downloads
Patches
Plain Diff
FitSuiteItem: r/w FitParameterContainer
parent
b5bf8a10
No related branches found
No related tags found
1 merge request
!1120
GUI: FitParameterModel and fit items are refactored
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
GUI/Model/Job/FitSuiteItem.cpp
+39
-1
39 additions, 1 deletion
GUI/Model/Job/FitSuiteItem.cpp
GUI/Model/Job/FitSuiteItem.h
+3
-0
3 additions, 0 deletions
GUI/Model/Job/FitSuiteItem.h
Tests/Unit/GUI/TestFitParameterModel.cpp
+222
-222
222 additions, 222 deletions
Tests/Unit/GUI/TestFitParameterModel.cpp
with
264 additions
and
223 deletions
GUI/Model/Job/FitSuiteItem.cpp
+
39
−
1
View file @
0d7bbabb
...
@@ -12,12 +12,23 @@
...
@@ -12,12 +12,23 @@
//
//
// ************************************************************************************************
// ************************************************************************************************
#include
"GUI/Model/Job/FitSuiteItem.h"
#include
"GUI/Model/Job/FitParameterContainerItem.h"
#include
"GUI/Model/Job/FitParameterContainerItem.h"
#include
"GUI/Model/Job/FitSuiteItem.h"
#include
"GUI/Model/Job/MinimizerItem.h"
#include
"GUI/Model/Job/MinimizerItem.h"
#include
"GUI/Model/Model/SessionModel.h"
#include
"GUI/Model/Model/SessionModel.h"
#include
"GUI/Support/XML/UtilXML.h"
#include
"GUI/Util/Error.h"
#include
"GUI/Util/Error.h"
namespace
{
namespace
Tag
{
const
QString
FitParameterContainer
(
"FitParameterContainer"
);
}
// namespace Tag
}
// namespace
FitSuiteItem
::
FitSuiteItem
()
FitSuiteItem
::
FitSuiteItem
()
:
SessionItem
(
M_TYPE
)
:
SessionItem
(
M_TYPE
)
{
{
...
@@ -96,3 +107,30 @@ void FitSuiteItem::setChi2(const double chi2)
...
@@ -96,3 +107,30 @@ void FitSuiteItem::setChi2(const double chi2)
{
{
setItemValue
(
P_CHI2
,
chi2
);
setItemValue
(
P_CHI2
,
chi2
);
}
}
void
FitSuiteItem
::
writeNonSessionItems
(
QXmlStreamWriter
*
writer
)
const
{
// fit parameter container
if
(
m_fitContainer
)
{
writer
->
writeStartElement
(
Tag
::
FitParameterContainer
);
m_fitContainer
->
writeTo
(
writer
);
writer
->
writeEndElement
();
}
}
void
FitSuiteItem
::
readNonSessionItems
(
QXmlStreamReader
*
reader
)
{
while
(
reader
->
readNextStartElement
())
{
// fit parameter container
if
(
reader
->
name
()
==
Tag
::
FitParameterContainer
)
{
if
(
!
m_fitContainer
)
createFitParametersContainer
();
m_fitContainer
->
readFrom
(
reader
);
GUI
::
Session
::
XML
::
gotoEndElementOfTag
(
reader
,
Tag
::
FitParameterContainer
);
}
else
{
reader
->
skipCurrentElement
();
}
}
}
This diff is collapsed.
Click to expand it.
GUI/Model/Job/FitSuiteItem.h
+
3
−
0
View file @
0d7bbabb
...
@@ -49,6 +49,9 @@ public:
...
@@ -49,6 +49,9 @@ public:
double
chi2
()
const
;
double
chi2
()
const
;
void
setChi2
(
double
chi2
);
void
setChi2
(
double
chi2
);
void
writeNonSessionItems
(
QXmlStreamWriter
*
writer
)
const
override
;
void
readNonSessionItems
(
QXmlStreamReader
*
reader
)
override
;
signals
:
signals
:
void
iterationCountChanged
(
int
count
);
void
iterationCountChanged
(
int
count
);
void
updateIntervalChanged
(
int
interval
);
void
updateIntervalChanged
(
int
interval
);
...
...
This diff is collapsed.
Click to expand it.
Tests/Unit/GUI/TestFitParameterModel.cpp
+
222
−
222
View file @
0d7bbabb
#include
"GUI/Model/Job/FitParameterContainerItem.h"
//
#include "GUI/Model/Job/FitParameterContainerItem.h"
#include
"GUI/Model/Job/FitParameterItem.h"
//
#include "GUI/Model/Job/FitParameterItem.h"
#include
"GUI/Model/Job/FitParameterLinkItem.h"
//
#include "GUI/Model/Job/FitParameterLinkItem.h"
#include
"GUI/Model/Job/FitSuiteItem.h"
//
#include "GUI/Model/Job/FitSuiteItem.h"
#include
"GUI/Model/Model/FitParameterModel.h"
//
#include "GUI/Model/Model/FitParameterModel.h"
#include
"GUI/Model/Model/JobModel.h"
//
#include "GUI/Model/Model/JobModel.h"
#include
"Tests/GTestWrapper/google_test.h"
//
#include "Tests/GTestWrapper/google_test.h"
class
TestFitParameterModel
:
public
::
testing
::
Test
{};
//
class TestFitParameterModel : public ::testing::Test {};
TEST_F
(
TestFitParameterModel
,
InitialState
)
//
TEST_F(TestFitParameterModel, InitialState)
{
//
{
JobModel
source
;
//
JobModel source;
auto
*
fitSuiteItem
=
source
.
insertItem
<
FitSuiteItem
>
();
//
auto* fitSuiteItem = source.insertItem<FitSuiteItem>();
auto
*
container
=
fitSuiteItem
->
createFitParametersContainer
();
//
auto* container = fitSuiteItem->createFitParametersContainer();
FitParameterModel
proxy
(
dynamic_cast
<
FitParameterContainerItem
*>
(
container
));
//
FitParameterModel proxy(dynamic_cast<FitParameterContainerItem*>(container));
EXPECT_EQ
(
0
,
proxy
.
rowCount
(
QModelIndex
()));
//
EXPECT_EQ(0, proxy.rowCount(QModelIndex()));
EXPECT_EQ
(
static_cast
<
int
>
(
FitParameterModel
::
NUM_COLUMNS
),
proxy
.
columnCount
(
QModelIndex
()));
//
EXPECT_EQ(static_cast<int>(FitParameterModel::NUM_COLUMNS), proxy.columnCount(QModelIndex()));
EXPECT_EQ
(
container
,
proxy
.
itemForIndex
(
QModelIndex
()));
//
EXPECT_EQ(container, proxy.itemForIndex(QModelIndex()));
}
//
}
TEST_F
(
TestFitParameterModel
,
addFitParameter
)
//
TEST_F(TestFitParameterModel, addFitParameter)
{
//
{
JobModel
source
;
//
JobModel source;
auto
*
fitSuiteItem
=
source
.
insertItem
<
FitSuiteItem
>
();
//
auto* fitSuiteItem = source.insertItem<FitSuiteItem>();
auto
*
container
=
fitSuiteItem
->
createFitParametersContainer
();
//
auto* container = fitSuiteItem->createFitParametersContainer();
FitParameterModel
proxy
(
dynamic_cast
<
FitParameterContainerItem
*>
(
container
));
//
FitParameterModel proxy(dynamic_cast<FitParameterContainerItem*>(container));
// adding fit parameter
//
// adding fit parameter
auto
*
fitPar0
=
source
.
insertItem
<
FitParameterItem
>
(
container
);
//
auto* fitPar0 = source.insertItem<FitParameterItem>(container);
fitPar0
->
setDisplayName
(
"par"
);
//
fitPar0->setDisplayName("par");
fitPar0
->
setMinimum
(
1.0
);
//
fitPar0->setMinimum(1.0);
fitPar0
->
setMaximum
(
2.0
);
//
fitPar0->setMaximum(2.0);
fitPar0
->
setStartValue
(
3.0
);
//
fitPar0->setStartValue(3.0);
// checking index of root
//
// checking index of root
EXPECT_EQ
(
1
,
proxy
.
rowCount
(
QModelIndex
()));
//
EXPECT_EQ(1, proxy.rowCount(QModelIndex()));
EXPECT_EQ
(
FitParameterModel
::
NUM_COLUMNS
,
proxy
.
columnCount
(
QModelIndex
()));
//
EXPECT_EQ(FitParameterModel::NUM_COLUMNS, proxy.columnCount(QModelIndex()));
// accessing item at col=0 (original FitParameterItem)
//
// accessing item at col=0 (original FitParameterItem)
QModelIndex
index
=
proxy
.
index
(
0
,
0
,
QModelIndex
());
//
QModelIndex index = proxy.index(0, 0, QModelIndex());
EXPECT_EQ
(
index
.
row
(),
0
);
//
EXPECT_EQ(index.row(), 0);
EXPECT_EQ
(
index
.
column
(),
0
);
//
EXPECT_EQ(index.column(), 0);
EXPECT_EQ
(
proxy
.
rowCount
(
index
),
0
);
//
EXPECT_EQ(proxy.rowCount(index), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
index
),
0
);
// non existing linkItem
//
EXPECT_EQ(proxy.columnCount(index), 0); // non existing linkItem
EXPECT_EQ
(
fitPar0
,
proxy
.
itemForIndex
(
index
));
//
EXPECT_EQ(fitPar0, proxy.itemForIndex(index));
EXPECT_EQ
(
fitPar0
->
displayName
(),
proxy
.
data
(
index
).
toString
());
//
EXPECT_EQ(fitPar0->displayName(), proxy.data(index).toString());
EXPECT_EQ
(
index
,
proxy
.
indexOfItem
(
fitPar0
));
//
EXPECT_EQ(index, proxy.indexOfItem(fitPar0));
// accessing item at col=2
//
// accessing item at col=2
index
=
proxy
.
index
(
0
,
FitParameterModel
::
COL_MIN
,
QModelIndex
());
//
index = proxy.index(0, FitParameterModel::COL_MIN, QModelIndex());
EXPECT_EQ
(
index
.
row
(),
0
);
//
EXPECT_EQ(index.row(), 0);
EXPECT_EQ
(
index
.
column
(),
FitParameterModel
::
COL_MIN
);
//
EXPECT_EQ(index.column(), FitParameterModel::COL_MIN);
EXPECT_EQ
(
proxy
.
rowCount
(
index
),
0
);
//
EXPECT_EQ(proxy.rowCount(index), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
index
),
0
);
//
EXPECT_EQ(proxy.columnCount(index), 0);
EXPECT_EQ
(
fitPar0
->
minimumItem
(),
proxy
.
itemForIndex
(
index
));
//
EXPECT_EQ(fitPar0->minimumItem(), proxy.itemForIndex(index));
EXPECT_EQ
(
fitPar0
->
minimum
(),
proxy
.
data
(
index
).
toDouble
());
//
EXPECT_EQ(fitPar0->minimum(), proxy.data(index).toDouble());
EXPECT_EQ
(
index
,
proxy
.
indexOfItem
(
fitPar0
->
minimumItem
()));
//
EXPECT_EQ(index, proxy.indexOfItem(fitPar0->minimumItem()));
// accessing item at col=3
//
// accessing item at col=3
index
=
proxy
.
index
(
0
,
FitParameterModel
::
COL_VALUE
,
QModelIndex
());
//
index = proxy.index(0, FitParameterModel::COL_VALUE, QModelIndex());
EXPECT_EQ
(
index
.
row
(),
0
);
//
EXPECT_EQ(index.row(), 0);
EXPECT_EQ
(
index
.
column
(),
FitParameterModel
::
COL_VALUE
);
//
EXPECT_EQ(index.column(), FitParameterModel::COL_VALUE);
EXPECT_EQ
(
proxy
.
rowCount
(
index
),
0
);
//
EXPECT_EQ(proxy.rowCount(index), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
index
),
0
);
//
EXPECT_EQ(proxy.columnCount(index), 0);
EXPECT_EQ
(
fitPar0
->
startValueItem
(),
proxy
.
itemForIndex
(
index
));
//
EXPECT_EQ(fitPar0->startValueItem(), proxy.itemForIndex(index));
EXPECT_EQ
(
fitPar0
->
startValue
(),
proxy
.
data
(
index
).
toDouble
());
//
EXPECT_EQ(fitPar0->startValue(), proxy.data(index).toDouble());
EXPECT_EQ
(
index
,
proxy
.
indexOfItem
(
fitPar0
->
startValueItem
()));
//
EXPECT_EQ(index, proxy.indexOfItem(fitPar0->startValueItem()));
// accessing item at col=4
//
// accessing item at col=4
index
=
proxy
.
index
(
0
,
FitParameterModel
::
COL_MAX
,
QModelIndex
());
//
index = proxy.index(0, FitParameterModel::COL_MAX, QModelIndex());
EXPECT_EQ
(
index
.
row
(),
0
);
//
EXPECT_EQ(index.row(), 0);
EXPECT_EQ
(
index
.
column
(),
FitParameterModel
::
COL_MAX
);
//
EXPECT_EQ(index.column(), FitParameterModel::COL_MAX);
EXPECT_EQ
(
proxy
.
rowCount
(
index
),
0
);
//
EXPECT_EQ(proxy.rowCount(index), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
index
),
0
);
//
EXPECT_EQ(proxy.columnCount(index), 0);
EXPECT_EQ
(
fitPar0
->
maximumItem
(),
proxy
.
itemForIndex
(
index
));
//
EXPECT_EQ(fitPar0->maximumItem(), proxy.itemForIndex(index));
EXPECT_EQ
(
fitPar0
->
maximum
(),
proxy
.
data
(
index
).
toDouble
());
//
EXPECT_EQ(fitPar0->maximum(), proxy.data(index).toDouble());
EXPECT_EQ
(
index
,
proxy
.
indexOfItem
(
fitPar0
->
maximumItem
()));
//
EXPECT_EQ(index, proxy.indexOfItem(fitPar0->maximumItem()));
// ----------------------------------------------------
//
// ----------------------------------------------------
// adding second fit parameter
//
// adding second fit parameter
// ----------------------------------------------------
//
// ----------------------------------------------------
auto
*
fitPar1
=
source
.
insertItem
<
FitParameterItem
>
(
container
);
//
auto* fitPar1 = source.insertItem<FitParameterItem>(container);
fitPar0
->
setDisplayName
(
"par"
);
//
fitPar0->setDisplayName("par");
fitPar0
->
setMinimum
(
10.0
);
//
fitPar0->setMinimum(10.0);
fitPar0
->
setMaximum
(
20.0
);
//
fitPar0->setMaximum(20.0);
fitPar0
->
setStartValue
(
30.0
);
//
fitPar0->setStartValue(30.0);
// checking index of root
//
// checking index of root
EXPECT_EQ
(
2
,
proxy
.
rowCount
(
QModelIndex
()));
//
EXPECT_EQ(2, proxy.rowCount(QModelIndex()));
EXPECT_EQ
(
FitParameterModel
::
NUM_COLUMNS
,
proxy
.
columnCount
(
QModelIndex
()));
//
EXPECT_EQ(FitParameterModel::NUM_COLUMNS, proxy.columnCount(QModelIndex()));
// accessing item at col=3 for fitPar0
//
// accessing item at col=3 for fitPar0
index
=
proxy
.
index
(
0
,
FitParameterModel
::
COL_VALUE
,
QModelIndex
());
//
index = proxy.index(0, FitParameterModel::COL_VALUE, QModelIndex());
EXPECT_EQ
(
index
.
row
(),
0
);
//
EXPECT_EQ(index.row(), 0);
EXPECT_EQ
(
index
.
column
(),
FitParameterModel
::
COL_VALUE
);
//
EXPECT_EQ(index.column(), FitParameterModel::COL_VALUE);
EXPECT_EQ
(
proxy
.
rowCount
(
index
),
0
);
//
EXPECT_EQ(proxy.rowCount(index), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
index
),
0
);
//
EXPECT_EQ(proxy.columnCount(index), 0);
EXPECT_EQ
(
fitPar0
->
startValueItem
(),
proxy
.
itemForIndex
(
index
));
//
EXPECT_EQ(fitPar0->startValueItem(), proxy.itemForIndex(index));
EXPECT_EQ
(
fitPar0
->
startValue
(),
proxy
.
data
(
index
).
toDouble
());
//
EXPECT_EQ(fitPar0->startValue(), proxy.data(index).toDouble());
EXPECT_EQ
(
index
,
proxy
.
indexOfItem
(
fitPar0
->
startValueItem
()));
//
EXPECT_EQ(index, proxy.indexOfItem(fitPar0->startValueItem()));
// accessing item at col=3 for fitPar1
//
// accessing item at col=3 for fitPar1
index
=
proxy
.
index
(
1
,
FitParameterModel
::
COL_VALUE
,
QModelIndex
());
//
index = proxy.index(1, FitParameterModel::COL_VALUE, QModelIndex());
EXPECT_EQ
(
index
.
row
(),
1
);
//
EXPECT_EQ(index.row(), 1);
EXPECT_EQ
(
index
.
column
(),
FitParameterModel
::
COL_VALUE
);
//
EXPECT_EQ(index.column(), FitParameterModel::COL_VALUE);
EXPECT_EQ
(
proxy
.
rowCount
(
index
),
0
);
//
EXPECT_EQ(proxy.rowCount(index), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
index
),
0
);
//
EXPECT_EQ(proxy.columnCount(index), 0);
EXPECT_EQ
(
fitPar1
->
startValueItem
(),
proxy
.
itemForIndex
(
index
));
//
EXPECT_EQ(fitPar1->startValueItem(), proxy.itemForIndex(index));
EXPECT_EQ
(
fitPar1
->
startValue
(),
proxy
.
data
(
index
).
toDouble
());
//
EXPECT_EQ(fitPar1->startValue(), proxy.data(index).toDouble());
EXPECT_EQ
(
index
,
proxy
.
indexOfItem
(
fitPar1
->
startValueItem
()));
//
EXPECT_EQ(index, proxy.indexOfItem(fitPar1->startValueItem()));
}
//
}
TEST_F
(
TestFitParameterModel
,
addFitParameterAndLink
)
//
TEST_F(TestFitParameterModel, addFitParameterAndLink)
{
//
{
JobModel
source
;
//
JobModel source;
auto
*
fitSuiteItem
=
source
.
insertItem
<
FitSuiteItem
>
();
//
auto* fitSuiteItem = source.insertItem<FitSuiteItem>();
auto
*
container
=
fitSuiteItem
->
createFitParametersContainer
();
//
auto* container = fitSuiteItem->createFitParametersContainer();
FitParameterModel
proxy
(
dynamic_cast
<
FitParameterContainerItem
*>
(
container
));
//
FitParameterModel proxy(dynamic_cast<FitParameterContainerItem*>(container));
// adding fit parameter
//
// adding fit parameter
auto
*
fitPar0
=
source
.
insertItem
<
FitParameterItem
>
(
container
);
//
auto* fitPar0 = source.insertItem<FitParameterItem>(container);
fitPar0
->
setDisplayName
(
"par"
);
//
fitPar0->setDisplayName("par");
fitPar0
->
setMinimum
(
1.0
);
//
fitPar0->setMinimum(1.0);
fitPar0
->
setMaximum
(
2.0
);
//
fitPar0->setMaximum(2.0);
fitPar0
->
setStartValue
(
3.0
);
//
fitPar0->setStartValue(3.0);
// adding link
//
// adding link
auto
*
link0
=
source
.
insertItem
<
FitParameterLinkItem
>
(
fitPar0
);
//
auto* link0 = source.insertItem<FitParameterLinkItem>(fitPar0);
link0
->
setLink
(
"link0"
);
//
link0->setLink("link0");
link0
->
setTitle
(
"TitleOfLink0"
);
//
link0->setTitle("TitleOfLink0");
// checking index of root
//
// checking index of root
EXPECT_EQ
(
1
,
proxy
.
rowCount
(
QModelIndex
()));
//
EXPECT_EQ(1, proxy.rowCount(QModelIndex()));
EXPECT_EQ
(
FitParameterModel
::
NUM_COLUMNS
,
proxy
.
columnCount
(
QModelIndex
()));
//
EXPECT_EQ(FitParameterModel::NUM_COLUMNS, proxy.columnCount(QModelIndex()));
// accessing item at col=0 (original FitParameterItem)
//
// accessing item at col=0 (original FitParameterItem)
QModelIndex
index
=
proxy
.
index
(
0
,
0
,
QModelIndex
());
//
QModelIndex index = proxy.index(0, 0, QModelIndex());
EXPECT_EQ
(
index
.
row
(),
0
);
//
EXPECT_EQ(index.row(), 0);
EXPECT_EQ
(
index
.
column
(),
0
);
//
EXPECT_EQ(index.column(), 0);
EXPECT_EQ
(
proxy
.
rowCount
(
index
),
1
);
//
EXPECT_EQ(proxy.rowCount(index), 1);
EXPECT_EQ
(
proxy
.
columnCount
(
index
),
1
);
// linkItem
//
EXPECT_EQ(proxy.columnCount(index), 1); // linkItem
// testing link0 index
//
// testing link0 index
QModelIndex
linkIndex
=
proxy
.
index
(
0
,
0
,
index
);
//
QModelIndex linkIndex = proxy.index(0, 0, index);
EXPECT_EQ
(
linkIndex
.
row
(),
0
);
//
EXPECT_EQ(linkIndex.row(), 0);
EXPECT_EQ
(
linkIndex
.
column
(),
0
);
//
EXPECT_EQ(linkIndex.column(), 0);
EXPECT_EQ
(
linkIndex
.
parent
(),
index
);
//
EXPECT_EQ(linkIndex.parent(), index);
EXPECT_EQ
(
proxy
.
rowCount
(
linkIndex
),
0
);
//
EXPECT_EQ(proxy.rowCount(linkIndex), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
linkIndex
),
0
);
//
EXPECT_EQ(proxy.columnCount(linkIndex), 0);
EXPECT_EQ
(
proxy
.
parent
(
linkIndex
),
index
);
//
EXPECT_EQ(proxy.parent(linkIndex), index);
EXPECT_EQ
(
proxy
.
itemForIndex
(
linkIndex
),
link0
->
linkItem
());
//
EXPECT_EQ(proxy.itemForIndex(linkIndex), link0->linkItem());
EXPECT_EQ
(
link0
->
title
(),
proxy
.
data
(
linkIndex
).
toString
());
//
EXPECT_EQ(link0->title(), proxy.data(linkIndex).toString());
EXPECT_EQ
(
linkIndex
,
proxy
.
indexOfItem
(
link0
->
linkItem
()));
//
EXPECT_EQ(linkIndex, proxy.indexOfItem(link0->linkItem()));
// adding second link
//
// adding second link
auto
*
link1
=
source
.
insertItem
<
FitParameterLinkItem
>
(
fitPar0
);
//
auto* link1 = source.insertItem<FitParameterLinkItem>(fitPar0);
link1
->
setLink
(
"link1"
);
//
link1->setLink("link1");
EXPECT_EQ
(
proxy
.
rowCount
(
index
),
2
);
//
EXPECT_EQ(proxy.rowCount(index), 2);
EXPECT_EQ
(
proxy
.
columnCount
(
index
),
1
);
// linkItem
//
EXPECT_EQ(proxy.columnCount(index), 1); // linkItem
linkIndex
=
proxy
.
index
(
1
,
0
,
index
);
//
linkIndex = proxy.index(1, 0, index);
EXPECT_EQ
(
linkIndex
.
row
(),
1
);
//
EXPECT_EQ(linkIndex.row(), 1);
EXPECT_EQ
(
linkIndex
.
column
(),
0
);
//
EXPECT_EQ(linkIndex.column(), 0);
EXPECT_EQ
(
linkIndex
.
parent
(),
index
);
//
EXPECT_EQ(linkIndex.parent(), index);
EXPECT_EQ
(
proxy
.
rowCount
(
linkIndex
),
0
);
//
EXPECT_EQ(proxy.rowCount(linkIndex), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
linkIndex
),
0
);
//
EXPECT_EQ(proxy.columnCount(linkIndex), 0);
EXPECT_EQ
(
proxy
.
parent
(
linkIndex
),
index
);
//
EXPECT_EQ(proxy.parent(linkIndex), index);
EXPECT_EQ
(
proxy
.
parent
(
linkIndex
),
index
);
//
EXPECT_EQ(proxy.parent(linkIndex), index);
EXPECT_EQ
(
proxy
.
itemForIndex
(
linkIndex
),
link1
->
linkItem
());
//
EXPECT_EQ(proxy.itemForIndex(linkIndex), link1->linkItem());
}
//
}
TEST_F
(
TestFitParameterModel
,
addTwoFitParameterAndLinks
)
//
TEST_F(TestFitParameterModel, addTwoFitParameterAndLinks)
{
//
{
JobModel
source
;
//
JobModel source;
auto
*
fitSuiteItem
=
source
.
insertItem
<
FitSuiteItem
>
();
//
auto* fitSuiteItem = source.insertItem<FitSuiteItem>();
auto
*
container
=
fitSuiteItem
->
createFitParametersContainer
();
//
auto* container = fitSuiteItem->createFitParametersContainer();
FitParameterModel
proxy
(
dynamic_cast
<
FitParameterContainerItem
*>
(
container
));
//
FitParameterModel proxy(dynamic_cast<FitParameterContainerItem*>(container));
// adding fit parameters
//
// adding fit parameters
auto
*
fitPar0
=
source
.
insertItem
<
FitParameterItem
>
(
container
);
//
auto* fitPar0 = source.insertItem<FitParameterItem>(container);
auto
*
link0
=
source
.
insertItem
<
FitParameterLinkItem
>
(
fitPar0
);
//
auto* link0 = source.insertItem<FitParameterLinkItem>(fitPar0);
Q_UNUSED
(
link0
);
//
Q_UNUSED(link0);
auto
*
fitPar1
=
source
.
insertItem
<
FitParameterItem
>
(
container
);
//
auto* fitPar1 = source.insertItem<FitParameterItem>(container);
auto
*
link1
=
source
.
insertItem
<
FitParameterLinkItem
>
(
fitPar1
);
//
auto* link1 = source.insertItem<FitParameterLinkItem>(fitPar1);
Q_UNUSED
(
link1
);
//
Q_UNUSED(link1);
// checking index of root
//
// checking index of root
EXPECT_EQ
(
2
,
proxy
.
rowCount
(
QModelIndex
()));
//
EXPECT_EQ(2, proxy.rowCount(QModelIndex()));
EXPECT_EQ
(
FitParameterModel
::
NUM_COLUMNS
,
proxy
.
columnCount
(
QModelIndex
()));
//
EXPECT_EQ(FitParameterModel::NUM_COLUMNS, proxy.columnCount(QModelIndex()));
// accessing fitPar1
//
// accessing fitPar1
QModelIndex
index1
=
proxy
.
index
(
1
,
0
,
QModelIndex
());
//
QModelIndex index1 = proxy.index(1, 0, QModelIndex());
EXPECT_EQ
(
index1
.
row
(),
1
);
//
EXPECT_EQ(index1.row(), 1);
EXPECT_EQ
(
index1
.
column
(),
0
);
//
EXPECT_EQ(index1.column(), 0);
EXPECT_EQ
(
index1
.
parent
(),
QModelIndex
());
//
EXPECT_EQ(index1.parent(), QModelIndex());
EXPECT_EQ
(
proxy
.
rowCount
(
index1
),
1
);
//
EXPECT_EQ(proxy.rowCount(index1), 1);
EXPECT_EQ
(
proxy
.
columnCount
(
index1
),
1
);
//
EXPECT_EQ(proxy.columnCount(index1), 1);
EXPECT_EQ
(
fitPar1
,
proxy
.
itemForIndex
(
index1
));
//
EXPECT_EQ(fitPar1, proxy.itemForIndex(index1));
EXPECT_EQ
(
fitPar1
->
displayName
(),
proxy
.
data
(
index1
).
toString
());
//
EXPECT_EQ(fitPar1->displayName(), proxy.data(index1).toString());
EXPECT_EQ
(
index1
,
proxy
.
indexOfItem
(
fitPar1
));
//
EXPECT_EQ(index1, proxy.indexOfItem(fitPar1));
// accessing link1
//
// accessing link1
QModelIndex
linkIndex1
=
proxy
.
index
(
0
,
0
,
index1
);
//
QModelIndex linkIndex1 = proxy.index(0, 0, index1);
EXPECT_EQ
(
linkIndex1
.
row
(),
0
);
//
EXPECT_EQ(linkIndex1.row(), 0);
EXPECT_EQ
(
linkIndex1
.
column
(),
0
);
//
EXPECT_EQ(linkIndex1.column(), 0);
EXPECT_EQ
(
linkIndex1
.
parent
(),
index1
);
//
EXPECT_EQ(linkIndex1.parent(), index1);
EXPECT_EQ
(
proxy
.
rowCount
(
linkIndex1
),
0
);
//
EXPECT_EQ(proxy.rowCount(linkIndex1), 0);
EXPECT_EQ
(
proxy
.
columnCount
(
linkIndex1
),
0
);
//
EXPECT_EQ(proxy.columnCount(linkIndex1), 0);
}
//
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment