@@ -23,10 +23,12 class SimpleRange: public IDataProvider | |||||
23 | public: |
|
23 | public: | |
24 | SimpleRange() = default; |
|
24 | SimpleRange() = default; | |
25 |
|
25 | |||
|
26 | int callCounter = 0; | |||
26 | std::shared_ptr<IDataProvider> clone() const override{ return std::make_shared<SimpleRange>(); } |
|
27 | std::shared_ptr<IDataProvider> clone() const override{ return std::make_shared<SimpleRange>(); } | |
27 |
|
28 | |||
28 | IDataSeries* getData(const DataProviderParameters ¶meters) override |
|
29 | IDataSeries* getData(const DataProviderParameters ¶meters) override | |
29 | { |
|
30 | { | |
|
31 | callCounter+=1; | |||
30 | auto tstart = parameters.m_Times[0].m_TStart; |
|
32 | auto tstart = parameters.m_Times[0].m_TStart; | |
31 | auto tend = parameters.m_Times[0].m_TEnd; |
|
33 | auto tend = parameters.m_Times[0].m_TEnd; | |
32 | std::vector<double> x; |
|
34 | std::vector<double> x; |
@@ -21,6 +21,8 | |||||
21 | QDate(2018,8,7),QTime(16,00));\ |
|
21 | QDate(2018,8,7),QTime(16,00));\ | |
22 | auto name = vc.createVariable("name", {}, provider, range);\ |
|
22 | auto name = vc.createVariable("name", {}, provider, range);\ | |
23 |
|
23 | |||
|
24 | Q_DECLARE_METATYPE(DateTimeRangeTransformation); | |||
|
25 | ||||
24 |
|
26 | |||
25 | class TestVariableController2 : public QObject |
|
27 | class TestVariableController2 : public QObject | |
26 | { |
|
28 | { | |
@@ -108,6 +110,29 private slots: | |||||
108 | check_variable_state<RangeType<10>>(var1, range); |
|
110 | check_variable_state<RangeType<10>>(var1, range); | |
109 | } |
|
111 | } | |
110 |
|
112 | |||
|
113 | void testCache_data() | |||
|
114 | { | |||
|
115 | QTest::addColumn<DateTimeRangeTransformation>("transformation"); | |||
|
116 | QTest::addColumn<int>("expectedIncrement"); | |||
|
117 | QTest::newRow("zoom in") << DateTimeRangeTransformation{0.8,Seconds<double>(0.)} << 0; | |||
|
118 | QTest::newRow("tiny zoom out") << DateTimeRangeTransformation{1.01,Seconds<double>(0.)} << 0; | |||
|
119 | QTest::newRow("tiny pan left") << DateTimeRangeTransformation{1.,Seconds<double>(-100.)} << 0; | |||
|
120 | QTest::newRow("tiny pan right") << DateTimeRangeTransformation{1.,Seconds<double>(100.)} << 0; | |||
|
121 | } | |||
|
122 | void testCache() | |||
|
123 | { | |||
|
124 | TEST_VC2_FIXTURE(10); | |||
|
125 | TEST_VC2_CREATE_DEFAULT_VAR(var1); | |||
|
126 | check_variable_state<RangeType<10>>(var1, range); | |||
|
127 | ||||
|
128 | QFETCH(DateTimeRangeTransformation, transformation); | |||
|
129 | QFETCH(int, expectedIncrement); | |||
|
130 | auto initialCount = provider->callCounter; | |||
|
131 | range = range.transform(transformation); | |||
|
132 | vc.changeRange(var1, range); | |||
|
133 | check_variable_state<RangeType<10>>(var1, range); | |||
|
134 | QCOMPARE(provider->callCounter-initialCount, expectedIncrement); | |||
|
135 | } | |||
111 | }; |
|
136 | }; | |
112 |
|
137 | |||
113 |
|
138 |
General Comments 0
You need to be logged in to leave comments.
Login now