Generators.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. #include "Generators.h"
  2. void generate1(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
  3. {
  4. Testing::param_t *pa,*paStart,va;
  5. pa = data;
  6. int nba = *pa++;
  7. paStart = pa;
  8. nbEntries = 0;
  9. for(int ia=0; ia < nba ; ia ++)
  10. {
  11. va = *pa++;
  12. *result++ = va;
  13. nbEntries++;
  14. }
  15. }
  16. void generate2(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
  17. {
  18. Testing::param_t *pa,*paStart,va;
  19. int na;
  20. Testing::param_t *pb,*pbStart,vb;
  21. int nb;
  22. nbEntries = 0;
  23. na = data[0];
  24. paStart = &data[1];
  25. pa = paStart;
  26. nb = data[na+1];
  27. pbStart = &data[na+2];
  28. pb = pbStart;
  29. pa = paStart;
  30. for(int ia=0; ia < na; ia ++)
  31. {
  32. va = *pa++;
  33. pb = pbStart;
  34. for(int ib = 0; ib < nb; ib++)
  35. {
  36. vb = *pb++;
  37. *result++ = va;
  38. *result++ = vb;
  39. nbEntries++;
  40. }
  41. }
  42. }
  43. void generate3(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
  44. {
  45. Testing::param_t *pa,*paStart,va;
  46. int na;
  47. Testing::param_t *pb,*pbStart,vb;
  48. int nb;
  49. Testing::param_t *pc,*pcStart,vc;
  50. int nc;
  51. nbEntries=0;
  52. na = data[0];
  53. paStart = &data[1];
  54. pa = paStart;
  55. nb = data[na+1];
  56. pbStart = &data[na+2];
  57. pb = pbStart;
  58. nc = data[na+1 + nb + 1];
  59. pcStart = &data[na+1 + nb + 1 + 1];
  60. pc = pcStart;
  61. pa = paStart;
  62. for(int ia=0; ia < na; ia ++)
  63. {
  64. va = *pa++;
  65. //printf("%d \n",va);
  66. pb = pbStart;
  67. for(int ib = 0; ib < nb; ib++)
  68. {
  69. vb = *pb++;
  70. //printf("%d %d \n",va,vb);
  71. pc = pcStart;
  72. for(int ic = 0; ic < nc; ic++)
  73. {
  74. vc = *pc++;
  75. *result++ = va;
  76. *result++ = vb;
  77. *result++ = vc;
  78. nbEntries++;
  79. //printf("%d %d %d\n",va,vb,vc);
  80. }
  81. }
  82. }
  83. // printf("OK\n");
  84. }
  85. void generate4(Testing::param_t *result,Testing::param_t *data,Testing::nbParameterEntries_t &nbEntries)
  86. {
  87. Testing::param_t *pa,*paStart,va;
  88. int na;
  89. Testing::param_t *pb,*pbStart,vb;
  90. int nb;
  91. Testing::param_t *pc,*pcStart,vc;
  92. int nc;
  93. Testing::param_t *pd,*pdStart,vd;
  94. int nd;
  95. nbEntries=0;
  96. na = data[0];
  97. paStart = &data[1];
  98. pa = paStart;
  99. nb = data[na+1];
  100. pbStart = &data[na+2];
  101. pb = pbStart;
  102. nc = data[na+1 + nb + 1];
  103. pcStart = &data[na+1 + nb + 1 + 1];
  104. pc = pcStart;
  105. nd = data[na+1 + nb + 1 + nc + 1 ];
  106. pdStart = &data[na+1 + nb + 1 + nc + 1 + 1];
  107. pd = pdStart;
  108. pa = paStart;
  109. for(int ia=0; ia < na; ia ++)
  110. {
  111. va = *pa++;
  112. pb = pbStart;
  113. for(int ib = 0; ib < nb; ib++)
  114. {
  115. vb = *pb++;
  116. pc = pcStart;
  117. for(int ic = 0; ic < nc; ic++)
  118. {
  119. vc = *pc++;
  120. pd = pdStart;
  121. for(int id = 0; id < nd; id++)
  122. {
  123. vd = *pd++;
  124. *result++ = va;
  125. *result++ = vb;
  126. *result++ = vc;
  127. *result++ = vd;
  128. nbEntries++;
  129. }
  130. }
  131. }
  132. }
  133. }