|
|
- /* See COPYING.txt for the full license governing this code. */
- /**
- * \file variators.c
- *
- * Source file for the operations that act on variators.
- */
-
- #include <SDL_test.h>
- #include "SDL_visualtest_variators.h"
-
- int
- SDLVisualTest_InitVariator(SDLVisualTest_Variator* variator,
- SDLVisualTest_SUTConfig* config,
- SDLVisualTest_VariatorType type,
- Uint64 seed)
- {
- if(!variator)
- {
- SDLTest_LogError("variator argument cannot be NULL");
- return 0;
- }
- if(!config)
- {
- SDLTest_LogError("config argument cannot be NULL");
- return 0;
- }
-
- variator->type = type;
- switch(type)
- {
- case SDL_VARIATOR_EXHAUSTIVE:
- return SDLVisualTest_InitExhaustiveVariator(&variator->data.exhaustive,
- config);
- break;
-
- case SDL_VARIATOR_RANDOM:
- return SDLVisualTest_InitRandomVariator(&variator->data.random,
- config, seed);
- break;
-
- default:
- SDLTest_LogError("Invalid value for variator type");
- return 0;
- }
- return 0;
- }
-
- char*
- SDLVisualTest_GetNextVariation(SDLVisualTest_Variator* variator)
- {
- if(!variator)
- {
- SDLTest_LogError("variator argument cannot be NULL");
- return NULL;
- }
- switch(variator->type)
- {
- case SDL_VARIATOR_EXHAUSTIVE:
- return SDLVisualTest_GetNextExhaustiveVariation(&variator->data.exhaustive);
- break;
-
- case SDL_VARIATOR_RANDOM:
- return SDLVisualTest_GetNextRandomVariation(&variator->data.random);
- break;
-
- default:
- SDLTest_LogError("Invalid value for variator type");
- return NULL;
- }
- return NULL;
- }
-
- void SDLVisualTest_FreeVariator(SDLVisualTest_Variator* variator)
- {
- if(!variator)
- {
- SDLTest_LogError("variator argument cannot be NULL");
- return;
- }
- switch(variator->type)
- {
- case SDL_VARIATOR_EXHAUSTIVE:
- SDLVisualTest_FreeExhaustiveVariator(&variator->data.exhaustive);
- break;
-
- case SDL_VARIATOR_RANDOM:
- SDLVisualTest_FreeRandomVariator(&variator->data.random);
- break;
-
- default:
- SDLTest_LogError("Invalid value for variator type");
- }
- }
|