##// END OF EJS Templates
Implements validation of variable's data (1)...
Implements validation of variable's data (1) Creates helper used to validate data, depending on the server set at compile time

File last commit:

r1192:96867eb9a6ed
r1198:077a4fb03e91
Show More
FuzzingOperations.h
48 lines | 1.7 KiB | text/x-c | CLexer
/ plugins / amda / tests / FuzzingOperations.h
Alexandre Leroux
Defines fuzzing operations...
r1171 #ifndef SCIQLOP_FUZZINGOPERATIONS_H
#define SCIQLOP_FUZZINGOPERATIONS_H
#include "FuzzingDefs.h"
#include <memory>
#include <set>
#include <QLoggingCategory>
#include <QMetaType>
Q_DECLARE_LOGGING_CATEGORY(LOG_FuzzingOperations)
class VariableController;
/**
* Enumeration of types of existing fuzzing operations
*/
Alexandre Leroux
Adds delete operation
r1192 enum class FuzzingOperationType { CREATE, DELETE, PAN_LEFT, PAN_RIGHT, ZOOM_IN, ZOOM_OUT };
Alexandre Leroux
Defines fuzzing operations...
r1171
/// Interface that represents an operation that can be executed during a fuzzing test
struct IFuzzingOperation {
virtual ~IFuzzingOperation() noexcept = default;
Alexandre Leroux
Defines VariableState struct (2)...
r1188 /// Checks if the operation can be executed according to the current variable state passed in
/// parameter
virtual bool canExecute(const VariableState &variableState) const = 0;
/// Executes the operation on the variable state passed in parameter
/// @param variableState the variable state on which to execute the operation
Alexandre Leroux
Defines fuzzing operations...
r1171 /// @param variableController the controller associated to the operation
/// @param properties properties that can be used to configure the operation
Alexandre Leroux
Defines VariableState struct (2)...
r1188 /// @remarks variableState is passed as a reference because, according to the operation, it can
/// be
Alexandre Leroux
Fixes clang-format for resource files
r1180 /// modified (in/out parameter)
Alexandre Leroux
Defines VariableState struct (2)...
r1188 virtual void execute(VariableState &variableState, VariableController &variableController,
Alexandre Leroux
Fixes clang-format for resource files
r1180 const Properties &properties = {}) const = 0;
Alexandre Leroux
Defines fuzzing operations...
r1171 };
/// Factory of @sa IFuzzingOperation
struct FuzzingOperationFactory {
/// Creates a fuzzing operation from a type
static std::unique_ptr<IFuzzingOperation> create(FuzzingOperationType type);
};
Alexandre Leroux
Adds weights to operations (2)...
r1183 using WeightedOperationsTypes = std::map<FuzzingOperationType, double>;
Q_DECLARE_METATYPE(WeightedOperationsTypes)
Alexandre Leroux
Defines fuzzing operations...
r1171
#endif // SCIQLOP_FUZZINGOPERATIONS_H