##// END OF EJS Templates
Passes FuzzingState and variable id instead VariableState to the methods of operations
Passes FuzzingState and variable id instead VariableState to the methods of operations

File last commit:

r1235:8776f597a80a
r1236:ea04bef9c90c
Show More
FuzzingDefs.h
98 lines | 2.5 KiB | text/x-c | CLexer
Alexandre Leroux
Adds variable controller and properties to test structure...
r1200 #ifndef SCIQLOP_FUZZINGDEFS_H
#define SCIQLOP_FUZZINGDEFS_H
Alexandre Leroux
Defines VariableState struct (1)...
r1220 #include <Data/SqpRange.h>
Alexandre Leroux
Adds "number of operations" and "number of variables" properties for the tests
r1201 #include <QString>
Alexandre Leroux
Defines synchronization groups for fuzzing tests
r1235 #include <QUuid>
Alexandre Leroux
Implements "Variable creation" operation (1)...
r1207 #include <QVariantHash>
Alexandre Leroux
Defines VariableState struct (1)...
r1220 #include <memory>
Alexandre Leroux
Defines synchronization groups for fuzzing tests
r1235 #include <set>
Alexandre Leroux
Defines VariableState struct (1)...
r1220
Alexandre Leroux
Adds variable controller and properties to test structure...
r1200 // /////// //
// Aliases //
// /////// //
Alexandre Leroux
Implements "Variable creation" operation (1)...
r1207 using MetadataPool = std::vector<QVariantHash>;
Q_DECLARE_METATYPE(MetadataPool)
Alexandre Leroux
Adds variable controller and properties to test structure...
r1200 using Properties = QVariantHash;
Alexandre Leroux
Adds "number of operations" and "number of variables" properties for the tests
r1201 // ///////// //
// Constants //
// ///////// //
/// Max number of operations to generate
extern const QString NB_MAX_OPERATIONS_PROPERTY;
/// Max number of variables to manipulate through operations
extern const QString NB_MAX_VARIABLES_PROPERTY;
Alexandre Leroux
Defines operations pool...
r1204 /// Set of operations available for the test
extern const QString AVAILABLE_OPERATIONS_PROPERTY;
Alexandre Leroux
Adds the ability to set cache tolerance for tests
r1224 /// Tolerance used for variable's cache (in ratio)
extern const QString CACHE_TOLERANCE_PROPERTY;
Alexandre Leroux
Some fixes...
r1223
/// Range with which the timecontroller is initialized
extern const QString INITIAL_RANGE_PROPERTY;
Alexandre Leroux
Completes fuzzing test structure by setting initial range for the time controller
r1209 /// Max range that an operation can reach
extern const QString MAX_RANGE_PROPERTY;
Alexandre Leroux
Implements "Variable creation" operation (1)...
r1207 /// Set of metadata that can be associated to a variable
extern const QString METADATA_POOL_PROPERTY;
/// Provider used to retrieve data
extern const QString PROVIDER_PROPERTY;
Alexandre Leroux
Implements move operations (3)...
r1219 /// Time left for an operation to execute
extern const QString OPERATION_DELAY_PROPERTY;
Alexandre Leroux
Adds validators to the fuzzing test...
r1228 /// Validators used to validate an operation
extern const QString VALIDATORS_PROPERTY;
Alexandre Leroux
Defines VariableState struct (1)...
r1220
// /////// //
// Structs //
// /////// //
class Variable;
struct VariableState {
std::shared_ptr<Variable> m_Variable{nullptr};
SqpRange m_Range{INVALID_RANGE};
};
Alexandre Leroux
Defines synchronization groups for fuzzing tests
r1235 using VariableId = int;
using VariablesPool = std::map<VariableId, VariableState>;
/**
* Defines a synchronization group for a fuzzing state. A group reports the variables synchronized
* with each other, and the current range of the group (i.e. range of the last synchronized variable
* that has been moved)
*/
struct SyncGroup {
std::set<VariableId> m_Variables{};
SqpRange m_Range{INVALID_RANGE};
};
using SyncGroupId = QUuid;
using SyncGroupsPool = std::map<SyncGroupId, SyncGroup>;
/**
* Defines a current state during a fuzzing state. It contains all the variables manipulated during
* the test, as well as the synchronization status of these variables.
*/
struct FuzzingState {
const SyncGroup &syncGroup(SyncGroupId id) const;
SyncGroup &syncGroup(SyncGroupId id);
const VariableState &variableState(VariableId id) const;
VariableState &variableState(VariableId id);
VariablesPool m_VariablesPool;
SyncGroupsPool m_SyncGroupsPool;
};
Alexandre Leroux
Adds variable controller and properties to test structure...
r1200 #endif // SCIQLOP_FUZZINGDEFS_H