Generators.cpp 3.2 KB

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