diff --git a/core/include/Data/SqpRange.h b/core/include/Data/SqpRange.h index fd7b344..9fb5cc3 100644 --- a/core/include/Data/SqpRange.h +++ b/core/include/Data/SqpRange.h @@ -14,6 +14,14 @@ * @brief The SqpRange struct holds the information of time parameters */ struct SqpRange { + /// Creates SqpRange from dates and times + static SqpRange fromDateTime(const QDate &startDate, const QTime &startTime, + const QDate &endDate, const QTime &endTime) + { + return {DateUtils::secondsSinceEpoch(QDateTime{startDate, startTime}), + DateUtils::secondsSinceEpoch(QDateTime{endDate, endTime})}; + } + /// Start time (UTC) double m_TStart; /// End time (UTC) diff --git a/plugins/amda/tests/FuzzingDefs.cpp b/plugins/amda/tests/FuzzingDefs.cpp index e6fba1a..71e863f 100644 --- a/plugins/amda/tests/FuzzingDefs.cpp +++ b/plugins/amda/tests/FuzzingDefs.cpp @@ -3,5 +3,6 @@ const QString NB_MAX_OPERATIONS_PROPERTY = QStringLiteral("component"); const QString NB_MAX_VARIABLES_PROPERTY = QStringLiteral("nbMaxVariables"); const QString AVAILABLE_OPERATIONS_PROPERTY = QStringLiteral("availableOperations"); +const QString MAX_RANGE_PROPERTY = QStringLiteral("maxRange"); const QString METADATA_POOL_PROPERTY = QStringLiteral("metadataPool"); const QString PROVIDER_PROPERTY = QStringLiteral("provider"); diff --git a/plugins/amda/tests/FuzzingDefs.h b/plugins/amda/tests/FuzzingDefs.h index 713bde7..8d6f092 100644 --- a/plugins/amda/tests/FuzzingDefs.h +++ b/plugins/amda/tests/FuzzingDefs.h @@ -26,6 +26,9 @@ extern const QString NB_MAX_VARIABLES_PROPERTY; /// Set of operations available for the test extern const QString AVAILABLE_OPERATIONS_PROPERTY; +/// Max range that an operation can reach +extern const QString MAX_RANGE_PROPERTY; + /// Set of metadata that can be associated to a variable extern const QString METADATA_POOL_PROPERTY; diff --git a/plugins/amda/tests/TestAmdaFuzzing.cpp b/plugins/amda/tests/TestAmdaFuzzing.cpp index b128eda..81af044 100644 --- a/plugins/amda/tests/TestAmdaFuzzing.cpp +++ b/plugins/amda/tests/TestAmdaFuzzing.cpp @@ -38,6 +38,7 @@ const auto NB_MAX_OPERATIONS_DEFAULT_VALUE = 100; const auto NB_MAX_VARIABLES_DEFAULT_VALUE = 1; const auto AVAILABLE_OPERATIONS_DEFAULT_VALUE = QVariant::fromValue(OperationsTypes{FuzzingOperationType::CREATE}); + // /////// // // Methods // // /////// // @@ -186,6 +187,25 @@ void TestAmdaFuzzing::testFuzzing() auto &variableController = sqpApp->variableController(); auto &timeController = sqpApp->timeController(); + // Generates random initial range (bounded to max range) + auto maxRange = properties.value(MAX_RANGE_PROPERTY, QVariant::fromValue(INVALID_RANGE)) + .value(); + + QVERIFY(maxRange != INVALID_RANGE); + + auto initialRangeStart + = RandomGenerator::instance().generateDouble(maxRange.m_TStart, maxRange.m_TEnd); + auto initialRangeEnd + = RandomGenerator::instance().generateDouble(maxRange.m_TStart, maxRange.m_TEnd); + if (initialRangeStart > initialRangeEnd) { + std::swap(initialRangeStart, initialRangeEnd); + } + + // Sets initial range on time controller + SqpRange initialRange{initialRangeStart, initialRangeEnd}; + qCInfo(LOG_TestAmdaFuzzing()) << "Setting initial range to" << initialRange << "..."; + timeController.onTimeToUpdate(initialRange); + FuzzingTest test{variableController, properties}; test.execute(); }