You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
3.2 KiB
C++
173 lines
3.2 KiB
C++
#include "Generators.h"
|
|
|
|
void generate1(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
|
|
{
|
|
Testing::param_t *pa,va;
|
|
|
|
pa = data;
|
|
int nba = *pa++;
|
|
nbEntries = 0;
|
|
for(int ia=0; ia < nba ; ia ++)
|
|
{
|
|
va = *pa++;
|
|
*result++ = va;
|
|
nbEntries++;
|
|
}
|
|
}
|
|
|
|
void generate2(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
|
|
{
|
|
Testing::param_t *pa,*paStart,va;
|
|
int na;
|
|
|
|
Testing::param_t *pb,*pbStart,vb;
|
|
int nb;
|
|
|
|
nbEntries = 0;
|
|
|
|
na = data[0];
|
|
paStart = &data[1];
|
|
pa = paStart;
|
|
|
|
nb = data[na+1];
|
|
pbStart = &data[na+2];
|
|
pb = pbStart;
|
|
|
|
pa = paStart;
|
|
for(int ia=0; ia < na; ia ++)
|
|
{
|
|
va = *pa++;
|
|
|
|
pb = pbStart;
|
|
for(int ib = 0; ib < nb; ib++)
|
|
{
|
|
vb = *pb++;
|
|
|
|
*result++ = va;
|
|
*result++ = vb;
|
|
nbEntries++;
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
void generate3(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
|
|
{
|
|
Testing::param_t *pa,*paStart,va;
|
|
int na;
|
|
|
|
Testing::param_t *pb,*pbStart,vb;
|
|
int nb;
|
|
|
|
Testing::param_t *pc,*pcStart,vc;
|
|
int nc;
|
|
|
|
nbEntries=0;
|
|
|
|
na = data[0];
|
|
paStart = &data[1];
|
|
pa = paStart;
|
|
|
|
nb = data[na+1];
|
|
pbStart = &data[na+2];
|
|
pb = pbStart;
|
|
|
|
nc = data[na+1 + nb + 1];
|
|
pcStart = &data[na+1 + nb + 1 + 1];
|
|
pc = pcStart;
|
|
|
|
|
|
pa = paStart;
|
|
for(int ia=0; ia < na; ia ++)
|
|
{
|
|
va = *pa++;
|
|
//printf("%d \n",va);
|
|
|
|
pb = pbStart;
|
|
for(int ib = 0; ib < nb; ib++)
|
|
{
|
|
vb = *pb++;
|
|
//printf("%d %d \n",va,vb);
|
|
|
|
pc = pcStart;
|
|
for(int ic = 0; ic < nc; ic++)
|
|
{
|
|
vc = *pc++;
|
|
|
|
*result++ = va;
|
|
*result++ = vb;
|
|
*result++ = vc;
|
|
nbEntries++;
|
|
//printf("%d %d %d\n",va,vb,vc);
|
|
}
|
|
|
|
}
|
|
}
|
|
// printf("OK\n");
|
|
}
|
|
|
|
void generate4(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
|
|
{
|
|
Testing::param_t *pa,*paStart,va;
|
|
int na;
|
|
|
|
Testing::param_t *pb,*pbStart,vb;
|
|
int nb;
|
|
|
|
Testing::param_t *pc,*pcStart,vc;
|
|
int nc;
|
|
|
|
Testing::param_t *pd,*pdStart,vd;
|
|
int nd;
|
|
|
|
nbEntries=0;
|
|
|
|
na = data[0];
|
|
paStart = &data[1];
|
|
pa = paStart;
|
|
|
|
nb = data[na+1];
|
|
pbStart = &data[na+2];
|
|
pb = pbStart;
|
|
|
|
nc = data[na+1 + nb + 1];
|
|
pcStart = &data[na+1 + nb + 1 + 1];
|
|
pc = pcStart;
|
|
|
|
nd = data[na+1 + nb + 1 + nc + 1 ];
|
|
pdStart = &data[na+1 + nb + 1 + nc + 1 + 1];
|
|
pd = pdStart;
|
|
|
|
pa = paStart;
|
|
for(int ia=0; ia < na; ia ++)
|
|
{
|
|
va = *pa++;
|
|
|
|
pb = pbStart;
|
|
for(int ib = 0; ib < nb; ib++)
|
|
{
|
|
vb = *pb++;
|
|
|
|
pc = pcStart;
|
|
for(int ic = 0; ic < nc; ic++)
|
|
{
|
|
vc = *pc++;
|
|
|
|
pd = pdStart;
|
|
for(int id = 0; id < nd; id++)
|
|
{
|
|
vd = *pd++;
|
|
*result++ = va;
|
|
*result++ = vb;
|
|
*result++ = vc;
|
|
*result++ = vd;
|
|
nbEntries++;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|