/* 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");
|
|
}
|
|
}
|