@flemist/test-variants 5.0.3 → 5.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import { timeControllerDefault as Q } from "@flemist/time-controller";
2
2
  import { formatAny as z, deepCloneJsonLike as Je } from "@flemist/simple-utils";
3
3
  import { isPromiseLike as M, waitMicrotasks as Xe, combineAbortSignals as ie } from "@flemist/async-utils";
4
4
  import { AbortError as Ze, AbortControllerFast as se } from "@flemist/abort-controller-fast";
5
- import { poolWait as le, Pool as Ke } from "@flemist/time-limits";
5
+ import { poolWait as ae, Pool as Ke } from "@flemist/time-limits";
6
6
  function Y() {
7
7
  if (typeof process < "u" && process.memoryUsage)
8
8
  try {
@@ -19,22 +19,22 @@ function Y() {
19
19
  }
20
20
  return null;
21
21
  }
22
- const Qe = 1e3, U = [];
22
+ const Qe = 1e3, q = [];
23
23
  function Ye(e) {
24
24
  return z(e, { pretty: !0, maxDepth: 5, maxItems: 50 });
25
25
  }
26
26
  function et(...e) {
27
27
  const n = e.map((t) => typeof t == "string" ? t : Ye(t)).join(" ");
28
- U.push(n), U.length > Qe && U.shift(), console.log(n);
28
+ q.push(n), q.length > Qe && q.shift(), console.log(n);
29
29
  }
30
30
  function tt() {
31
- return U.join(`
31
+ return q.join(`
32
32
  `);
33
33
  }
34
34
  globalThis.__getStressTestLogLast = tt;
35
35
  const me = (e, n) => {
36
36
  et(n);
37
- }, w = {
37
+ }, x = {
38
38
  start: !0,
39
39
  progress: 5e3,
40
40
  completed: !0,
@@ -52,14 +52,14 @@ const me = (e, n) => {
52
52
  func: me
53
53
  };
54
54
  function ge(e) {
55
- return e === !1 ? rt : e === !0 || !e ? w : {
56
- start: e.start ?? w.start,
57
- progress: e.progress ?? w.progress,
58
- completed: e.completed ?? w.completed,
59
- error: e.error ?? w.error,
60
- modeChange: e.modeChange ?? w.modeChange,
61
- debug: e.debug ?? w.debug,
62
- func: e.func ?? w.func
55
+ return e === !1 ? rt : e === !0 || !e ? x : {
56
+ start: e.start ?? x.start,
57
+ progress: e.progress ?? x.progress,
58
+ completed: e.completed ?? x.completed,
59
+ error: e.error ?? x.error,
60
+ modeChange: e.modeChange ?? x.modeChange,
61
+ debug: e.debug ?? x.debug,
62
+ func: e.func ?? x.func
63
63
  };
64
64
  }
65
65
  function nt(e, n) {
@@ -82,108 +82,108 @@ function nt(e, n) {
82
82
  class T extends Ze {
83
83
  }
84
84
  const ot = 50, it = 5;
85
- function ae(e, n) {
85
+ function le(e, n) {
86
86
  return typeof e == "number" ? { iterationsAsync: 0, iterationsSync: e } : e != null && typeof e == "object" ? e : n ? { iterationsAsync: 1, iterationsSync: 0 } : { iterationsAsync: 0, iterationsSync: 1 };
87
87
  }
88
88
  function st(e, n) {
89
- const t = n.log;
90
- let o = null, i = 0;
91
- function l(r, a, u) {
92
- o == null && (o = { error: r, args: a, tests: u }, t.error && t.func(
89
+ const t = n.log, i = n.pauseDebuggerOnError ?? !0;
90
+ let o = null, a = 0;
91
+ function r(l, u, f) {
92
+ o == null && (o = { error: l, args: u, tests: f }, t.error && t.func(
93
93
  "error",
94
- `[test-variants] error variant: ${z(a, { pretty: !0 })}
95
- tests: ${u}
96
- ${z(r)}`
94
+ `[test-variants] error variant: ${z(u, { pretty: !0 })}
95
+ tests: ${f}
96
+ ${z(l)}`
97
97
  ));
98
98
  const d = Date.now();
99
- if (Date.now() - d > ot && i < it) {
99
+ if (i && Function("debugger")(), Date.now() - d > ot && a < it) {
100
100
  t.func(
101
101
  "debug",
102
- `[test-variants] debug iteration: ${i}`
103
- ), i++;
102
+ `[test-variants] debug iteration: ${a}`
103
+ ), a++;
104
104
  return;
105
105
  }
106
- const h = o;
107
- throw o = null, n.onError && n.onError(h), h.error;
106
+ const y = o;
107
+ throw o = null, n.onError && n.onError(y), y.error;
108
108
  }
109
- return function(a, u, d) {
109
+ return function(u, f, d) {
110
110
  try {
111
- const f = e(a, d);
112
- return M(f) ? f.then(
113
- (h) => ae(h, !0),
114
- (h) => l(h, a, u)
115
- ) : ae(f, !1);
116
- } catch (f) {
117
- return f instanceof T ? void 0 : l(f, a, u);
111
+ const h = e(u, d);
112
+ return M(h) ? h.then(
113
+ (y) => le(y, !0),
114
+ (y) => r(y, u, f)
115
+ ) : le(h, !1);
116
+ } catch (h) {
117
+ return h instanceof T ? void 0 : r(h, u, f);
118
118
  }
119
119
  };
120
120
  }
121
- function D(e, n, t) {
122
- for (let o = 0, i = e.length; o < i; o++)
123
- if (t ? t(e[o], n) : e[o] === n)
124
- return o;
121
+ function U(e, n, t) {
122
+ for (let i = 0, o = e.length; i < o; i++)
123
+ if (t ? t(e[i], n) : e[i] === n)
124
+ return i;
125
125
  return -1;
126
126
  }
127
- function ue(e, n, t, o) {
128
- const i = Object.keys(e.templates), l = {}, r = [], a = [], u = [], d = i.length;
129
- for (let f = 0; f < d; f++) {
130
- const h = i[f];
131
- l[h] = void 0, r.push(-1), a.push(void 0), u.push(null);
127
+ function ue(e, n, t, i) {
128
+ const o = Object.keys(e.templates), a = {}, r = [], l = [], u = [], f = o.length;
129
+ for (let d = 0; d < f; d++) {
130
+ const h = o[d];
131
+ a[h] = void 0, r.push(-1), l.push(void 0), u.push(null);
132
132
  }
133
133
  return {
134
- args: l,
135
- argsNames: i,
134
+ args: a,
135
+ argsNames: o,
136
136
  indexes: r,
137
- argValues: a,
137
+ argValues: l,
138
138
  argLimits: u,
139
139
  attempts: 0,
140
140
  templates: e,
141
141
  limitArgOnError: t,
142
142
  equals: n,
143
- includeErrorVariant: o ?? !1
143
+ includeErrorVariant: i ?? !1
144
144
  };
145
145
  }
146
146
  function O(e, n) {
147
- const t = e.templates.templates[n], o = e.templates.extra[n];
148
- let i;
149
- if (typeof t == "function" ? i = t(e.args) : i = t, o == null)
150
- return i;
151
- let l = null;
152
- const r = o.length;
153
- for (let a = 0; a < r; a++) {
154
- const u = o[a];
155
- D(i, u, e.equals) < 0 && (l == null ? l = [...i, u] : l.push(u));
147
+ const t = e.templates.templates[n], i = e.templates.extra[n];
148
+ let o;
149
+ if (typeof t == "function" ? o = t(e.args) : o = t, i == null)
150
+ return o;
151
+ let a = null;
152
+ const r = i.length;
153
+ for (let l = 0; l < r; l++) {
154
+ const u = i[l];
155
+ U(o, u, e.equals) < 0 && (a == null ? a = [...o, u] : a.push(u));
156
156
  }
157
- return l ?? i;
157
+ return a ?? o;
158
158
  }
159
- function E(e, n, t) {
160
- const o = e.argValues[n].length;
161
- if (o === 0)
159
+ function w(e, n, t) {
160
+ const i = e.argValues[n].length;
161
+ if (i === 0)
162
162
  return -1;
163
- const i = e.argLimits[n];
164
- if (i == null)
165
- return o - 1;
166
- let l = e.limitArgOnError;
167
- if (typeof l == "function") {
163
+ const o = e.argLimits[n];
164
+ if (o == null)
165
+ return i - 1;
166
+ let a = e.limitArgOnError;
167
+ if (typeof a == "function") {
168
168
  const r = e.argsNames[n];
169
- l = l({
169
+ a = a({
170
170
  name: r,
171
171
  values: e.argValues[n],
172
- maxValueIndex: i
172
+ maxValueIndex: o
173
173
  });
174
174
  }
175
- return !t || l ? Math.min(i, o - 1) : o - 1;
175
+ return !t || a ? Math.min(o, i - 1) : i - 1;
176
176
  }
177
177
  function V(e) {
178
178
  const n = e.indexes.length;
179
179
  for (let t = 0; t < n; t++) {
180
- const o = e.argLimits[t];
181
- if (o == null)
180
+ const i = e.argLimits[t];
181
+ if (i == null)
182
182
  return !1;
183
- const i = e.indexes[t];
184
- if (i > o)
183
+ const o = e.indexes[t];
184
+ if (o > i)
185
185
  return !0;
186
- if (i < o)
186
+ if (o < i)
187
187
  return !1;
188
188
  }
189
189
  return !e.includeErrorVariant;
@@ -195,24 +195,24 @@ function C(e) {
195
195
  }
196
196
  function pe(e) {
197
197
  let n = !1, t = !0;
198
- const o = e.indexes.length;
199
- let i = o, l = !1, r = 0;
200
- for (; r < o; r++) {
201
- const a = e.argValues[r] == null;
202
- (a || l) && (a && (n = !0), e.argValues[r] = O(
198
+ const i = e.indexes.length;
199
+ let o = i, a = !1, r = 0;
200
+ for (; r < i; r++) {
201
+ const l = e.argValues[r] == null;
202
+ (l || a) && (l && (n = !0), e.argValues[r] = O(
203
203
  e,
204
204
  e.argsNames[r]
205
205
  ));
206
- const u = E(
206
+ const u = w(
207
207
  e,
208
208
  r,
209
- r > i
209
+ r > o
210
210
  );
211
211
  if (u < 0) {
212
212
  t = !1, e.indexes[r] = -1;
213
213
  break;
214
214
  }
215
- a && (e.indexes[r] = 0, e.args[e.argsNames[r]] = e.argValues[r][0]), (l || e.indexes[r] > u) && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u], l = !0), i === o && e.indexes[r] < u && (i = r);
215
+ l && (e.indexes[r] = 0, e.args[e.argsNames[r]] = e.argValues[r][0]), (a || e.indexes[r] > u) && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u], a = !0), o === i && e.indexes[r] < u && (o = r);
216
216
  }
217
217
  if (V(e))
218
218
  return C(e), !1;
@@ -221,23 +221,23 @@ function pe(e) {
221
221
  for (r--; r >= 0; r--) {
222
222
  if (e.argValues[r] == null)
223
223
  continue;
224
- let a = r > i;
225
- const u = E(e, r, a), d = e.indexes[r] + 1;
226
- if (d <= u) {
227
- e.indexes[r] = d, e.args[e.argsNames[r]] = e.argValues[r][d], d < u && (a = !0);
228
- for (let f = r + 1; f < o; f++)
229
- e.args[e.argsNames[f]] = void 0;
230
- for (r++; r < o; r++) {
224
+ let l = r > o;
225
+ const u = w(e, r, l), f = e.indexes[r] + 1;
226
+ if (f <= u) {
227
+ e.indexes[r] = f, e.args[e.argsNames[r]] = e.argValues[r][f], f < u && (l = !0);
228
+ for (let d = r + 1; d < i; d++)
229
+ e.args[e.argsNames[d]] = void 0;
230
+ for (r++; r < i; r++) {
231
231
  e.argValues[r] = O(
232
232
  e,
233
233
  e.argsNames[r]
234
234
  );
235
- const f = E(e, r, a);
236
- if (f < 0)
235
+ const d = w(e, r, l);
236
+ if (d < 0)
237
237
  break;
238
- e.indexes[r] = 0, e.args[e.argsNames[r]] = e.argValues[r][0], f > 0 && (a = !0);
238
+ e.indexes[r] = 0, e.args[e.argsNames[r]] = e.argValues[r][0], d > 0 && (l = !0);
239
239
  }
240
- if (r >= o)
240
+ if (r >= i)
241
241
  return V(e) ? (C(e), !1) : !0;
242
242
  }
243
243
  }
@@ -246,114 +246,114 @@ function pe(e) {
246
246
  function H(e) {
247
247
  V(e) && C(e);
248
248
  let n = !1, t = !0;
249
- const o = e.indexes.length;
250
- let i = o, l = !1, r = 0;
251
- for (; r < o; r++) {
252
- const a = e.argValues[r] == null;
253
- (a || l) && (a && (n = !0), e.argValues[r] = O(
249
+ const i = e.indexes.length;
250
+ let o = i, a = !1, r = 0;
251
+ for (; r < i; r++) {
252
+ const l = e.argValues[r] == null;
253
+ (l || a) && (l && (n = !0), e.argValues[r] = O(
254
254
  e,
255
255
  e.argsNames[r]
256
256
  ));
257
- const u = E(
257
+ const u = w(
258
258
  e,
259
259
  r,
260
- r > i
260
+ r > o
261
261
  );
262
262
  if (u < 0) {
263
263
  t = !1, e.indexes[r] = -1;
264
264
  break;
265
265
  }
266
- a && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u]), (l || e.indexes[r] > u) && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u], l = !0), i === o && e.indexes[r] < u && (i = r);
266
+ l && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u]), (a || e.indexes[r] > u) && (e.indexes[r] = u, e.args[e.argsNames[r]] = e.argValues[r][u], a = !0), o === i && e.indexes[r] < u && (o = r);
267
267
  }
268
- if ((n || l) && t && !V(e))
268
+ if ((n || a) && t && !V(e))
269
269
  return !0;
270
270
  for (r--; r >= 0; r--) {
271
271
  if (e.argValues[r] == null)
272
272
  continue;
273
- let a = r > i;
274
- const u = E(e, r, a);
275
- let d = e.indexes[r] - 1;
276
- if (d > u && (d = u), d >= 0) {
277
- e.indexes[r] = d, e.args[e.argsNames[r]] = e.argValues[r][d], d < u && (a = !0);
278
- for (let f = r + 1; f < o; f++)
279
- e.args[e.argsNames[f]] = void 0;
280
- for (r++; r < o; r++) {
273
+ let l = r > o;
274
+ const u = w(e, r, l);
275
+ let f = e.indexes[r] - 1;
276
+ if (f > u && (f = u), f >= 0) {
277
+ e.indexes[r] = f, e.args[e.argsNames[r]] = e.argValues[r][f], f < u && (l = !0);
278
+ for (let d = r + 1; d < i; d++)
279
+ e.args[e.argsNames[d]] = void 0;
280
+ for (r++; r < i; r++) {
281
281
  e.argValues[r] = O(
282
282
  e,
283
283
  e.argsNames[r]
284
284
  );
285
- const f = E(e, r, a);
286
- if (f < 0)
285
+ const d = w(e, r, l);
286
+ if (d < 0)
287
287
  break;
288
- e.indexes[r] = f, e.args[e.argsNames[r]] = e.argValues[r][f], f > 0 && (a = !0);
288
+ e.indexes[r] = d, e.args[e.argsNames[r]] = e.argValues[r][d], d > 0 && (l = !0);
289
289
  }
290
- if (r >= o)
290
+ if (r >= i)
291
291
  return !0;
292
292
  }
293
293
  }
294
294
  return C(e), !1;
295
295
  }
296
- function lt(e, n) {
296
+ function at(e, n) {
297
297
  C(e);
298
- const t = e.argsNames, o = t.length;
299
- let i = !1;
300
- for (let l = 0; l < o; l++) {
301
- const r = t[l], a = n[r];
302
- if (a === void 0)
298
+ const t = e.argsNames, i = t.length;
299
+ let o = !1;
300
+ for (let a = 0; a < i; a++) {
301
+ const r = t[a], l = n[r];
302
+ if (l === void 0)
303
303
  return null;
304
- e.argValues[l] = O(e, r);
305
- const u = E(e, l, i);
304
+ e.argValues[a] = O(e, r);
305
+ const u = w(e, a, o);
306
306
  if (u < 0)
307
307
  return null;
308
- const d = D(
309
- e.argValues[l],
310
- a,
308
+ const f = U(
309
+ e.argValues[a],
310
+ l,
311
311
  e.equals
312
312
  );
313
- if (d < 0 || d > u)
313
+ if (f < 0 || f > u)
314
314
  return null;
315
- e.indexes[l] = d, e.args[e.argsNames[l]] = e.argValues[l][d], e.indexes[l] < u && (i = !0);
315
+ e.indexes[a] = f, e.args[e.argsNames[a]] = e.argValues[a][f], e.indexes[a] < u && (o = !0);
316
316
  }
317
317
  return V(e) ? null : e.indexes.slice();
318
318
  }
319
- function at(e) {
319
+ function lt(e) {
320
320
  const n = e.indexes.length;
321
321
  if (n === 0)
322
322
  return !1;
323
323
  let t = !1;
324
- for (let o = 0; o < n; o++) {
325
- e.argValues[o] = O(e, e.argsNames[o]);
326
- const i = E(e, o, t);
327
- if (i < 0)
324
+ for (let i = 0; i < n; i++) {
325
+ e.argValues[i] = O(e, e.argsNames[i]);
326
+ const o = w(e, i, t);
327
+ if (o < 0)
328
328
  return Math.random() < 0.5 ? pe(e) : H(e);
329
- e.indexes[o] = Math.floor(Math.random() * (i + 1)), e.args[e.argsNames[o]] = e.argValues[o][e.indexes[o]], e.indexes[o] < i && (t = !0);
329
+ e.indexes[i] = Math.floor(Math.random() * (o + 1)), e.args[e.argsNames[i]] = e.argValues[i][e.indexes[i]], e.indexes[i] < o && (t = !0);
330
330
  }
331
331
  return V(e) ? H(e) : !0;
332
332
  }
333
- function q(e) {
333
+ function _(e) {
334
334
  return e.mode === "forward" || e.mode === "backward";
335
335
  }
336
- function ut(e, n, t, o) {
337
- const i = n[t], l = e.templates[t];
338
- if (typeof l != "function") {
339
- if (D(l, i, o) >= 0)
336
+ function ut(e, n, t, i) {
337
+ const o = n[t], a = e.templates[t];
338
+ if (typeof a != "function") {
339
+ if (U(a, o, i) >= 0)
340
340
  return;
341
- l.push(i);
341
+ a.push(o);
342
342
  return;
343
343
  }
344
344
  const r = e.extra[t];
345
345
  if (r == null) {
346
- e.extra[t] = [i];
346
+ e.extra[t] = [o];
347
347
  return;
348
348
  }
349
- D(r, i, o) >= 0 || r.push(i);
349
+ U(r, o, i) >= 0 || r.push(o);
350
350
  }
351
351
  function ct(e, n, t) {
352
- for (const o in n)
353
- if (Object.prototype.hasOwnProperty.call(n, o)) {
354
- if (o === "seed")
352
+ for (const i in n)
353
+ if (Object.prototype.hasOwnProperty.call(n, i)) {
354
+ if (i === "seed")
355
355
  continue;
356
- ut(e, n, o, t);
356
+ ut(e, n, i, t);
357
357
  }
358
358
  }
359
359
  function ce(e, n) {
@@ -371,33 +371,33 @@ function dt(e) {
371
371
  const {
372
372
  argsTemplates: n,
373
373
  equals: t,
374
- limitArgOnError: o,
375
- includeErrorVariant: i,
376
- getSeed: l,
374
+ limitArgOnError: i,
375
+ includeErrorVariant: o,
376
+ getSeed: a,
377
377
  iterationModes: r,
378
- onModeChange: a,
378
+ onModeChange: l,
379
379
  limitCompletionCount: u,
380
- limitTests: d,
381
- limitTime: f
380
+ limitTests: f,
381
+ limitTime: d
382
382
  } = e, h = e.timeController ?? Q, y = {
383
383
  templates: Je(n),
384
384
  extra: {}
385
385
  }, p = r == null || r.length === 0 ? ft : r, b = [];
386
- let S = null, L = null, g = 0, x = 0, I = !1, P = 0;
386
+ let E = null, L = null, g = 0, S = 0, I = !1, P = 0;
387
387
  function $() {
388
- I || (I = !0, P = h.now(), xe(), g = 0, re(), Ee());
388
+ I || (I = !0, P = h.now(), Se(), g = 0, re(), we());
389
389
  }
390
- function xe() {
390
+ function Se() {
391
391
  for (let s = 0, c = p.length; s < c; s++)
392
- b.push(we());
392
+ b.push(xe());
393
393
  }
394
- function we() {
394
+ function xe() {
395
395
  return {
396
396
  navigationState: ue(
397
397
  y,
398
398
  t ?? null,
399
- o ?? null,
400
- i ?? null
399
+ i ?? null,
400
+ o ?? null
401
401
  ),
402
402
  cycleCount: 0,
403
403
  completedCount: 0,
@@ -406,8 +406,8 @@ function dt(e) {
406
406
  startTime: null
407
407
  };
408
408
  }
409
- function Ee() {
410
- S = ue(
409
+ function we() {
410
+ E = ue(
411
411
  y,
412
412
  t ?? null,
413
413
  // Initial values; overwritten in calcIndexes before each use
@@ -416,17 +416,17 @@ function dt(e) {
416
416
  );
417
417
  }
418
418
  function re() {
419
- a?.({
419
+ l?.({
420
420
  mode: p[g],
421
421
  modeIndex: g,
422
- tests: x
422
+ tests: S
423
423
  });
424
424
  }
425
425
  function Me(s) {
426
426
  $(), ce(y.templates, s) && ct(y, s, t);
427
427
  }
428
428
  function ne(s, c) {
429
- return $(), ce(y.templates, s) ? (S.limitArgOnError = c?.limitArg ?? o ?? null, S.includeErrorVariant = c?.includeLimit ?? i ?? !1, lt(S, s)) : null;
429
+ return $(), ce(y.templates, s) ? (E.limitArgOnError = c?.limitArg ?? i ?? null, E.includeErrorVariant = c?.includeLimit ?? o ?? !1, at(E, s)) : null;
430
430
  }
431
431
  function Te(s) {
432
432
  const c = s?.args;
@@ -438,9 +438,9 @@ function dt(e) {
438
438
  L = {
439
439
  args: c,
440
440
  error: s?.error,
441
- tests: s?.tests ?? x
442
- }, S.argLimits = m;
443
- for (let v = 0, _ = b.length; v < _; v++) {
441
+ tests: s?.tests ?? S
442
+ }, E.argLimits = m;
443
+ for (let v = 0, D = b.length; v < D; v++) {
444
444
  const j = b[v].navigationState;
445
445
  j.argLimits = m;
446
446
  }
@@ -454,13 +454,13 @@ function dt(e) {
454
454
  if (!Ae())
455
455
  return null;
456
456
  for (; ; ) {
457
- const s = Ue();
457
+ const s = qe();
458
458
  if (s != null)
459
- return b[g].testsInLastTurn++, x++, s;
459
+ return b[g].testsInLastTurn++, S++, s;
460
460
  if ($e()) {
461
461
  if (!Ge())
462
462
  return null;
463
- qe();
463
+ _e();
464
464
  break;
465
465
  }
466
466
  }
@@ -470,10 +470,10 @@ function dt(e) {
470
470
  return !(Ce() || Oe() || G() && (Le() || !Ne()) || !Pe());
471
471
  }
472
472
  function Ce() {
473
- return d != null && x >= d;
473
+ return f != null && S >= f;
474
474
  }
475
475
  function Oe() {
476
- return f != null && h.now() - P >= f;
476
+ return d != null && h.now() - P >= d;
477
477
  }
478
478
  function Le() {
479
479
  if (!G())
@@ -501,7 +501,7 @@ function dt(e) {
501
501
  }
502
502
  function Ge() {
503
503
  if (G()) {
504
- const s = _e();
504
+ const s = De();
505
505
  if (u != null && s >= u)
506
506
  return !1;
507
507
  }
@@ -509,15 +509,15 @@ function dt(e) {
509
509
  }
510
510
  function G() {
511
511
  for (let s = 0, c = p.length; s < c; s++)
512
- if (q(p[s]))
512
+ if (_(p[s]))
513
513
  return !0;
514
514
  return !1;
515
515
  }
516
- function _e() {
516
+ function De() {
517
517
  let s = !1, c = 1 / 0;
518
518
  for (let m = 0, v = b.length; m < v; m++) {
519
- const _ = b[m], j = p[m];
520
- q(j) && (s = !0, k(m) && _.completedCount < c && (c = _.completedCount));
519
+ const D = b[m], j = p[m];
520
+ _(j) && (s = !0, k(m) && D.completedCount < c && (c = D.completedCount));
521
521
  }
522
522
  if (!s)
523
523
  throw new Error("Unexpected behavior");
@@ -527,17 +527,17 @@ function dt(e) {
527
527
  const c = p[s], m = b[s];
528
528
  return c.limitTests != null && c.limitTests <= 0 || A(c) && (c.cycles != null && c.cycles <= 0 || c.attemptsPerVariant != null && c.attemptsPerVariant <= 0) ? !1 : m.tryNextVariantAttempts < 2;
529
529
  }
530
- function qe() {
530
+ function _e() {
531
531
  g = 0;
532
532
  for (let s = 0, c = b.length; s < c; s++) {
533
533
  const m = b[s];
534
534
  m.testsInLastTurn = 0, m.startTime = null;
535
535
  }
536
536
  }
537
- function Ue() {
537
+ function qe() {
538
538
  let s = 0;
539
539
  for (; s < 2; ) {
540
- if (!De())
540
+ if (!Ue())
541
541
  return null;
542
542
  const c = je();
543
543
  if (c != null)
@@ -548,7 +548,7 @@ function dt(e) {
548
548
  }
549
549
  return null;
550
550
  }
551
- function De() {
551
+ function Ue() {
552
552
  const s = p[g];
553
553
  return !(Be() || Re() || A(s) && !ke(g));
554
554
  }
@@ -561,7 +561,7 @@ function dt(e) {
561
561
  return s.limitTime != null && c.startTime != null && h.now() - c.startTime >= s.limitTime;
562
562
  }
563
563
  function A(s) {
564
- return q(s);
564
+ return _(s);
565
565
  }
566
566
  function ke(s) {
567
567
  const c = p[s], m = b[s];
@@ -604,7 +604,7 @@ function dt(e) {
604
604
  m.attempts = 1;
605
605
  }
606
606
  function N(s) {
607
- return q(s);
607
+ return _(s);
608
608
  }
609
609
  function F() {
610
610
  const s = p[g];
@@ -620,14 +620,14 @@ function dt(e) {
620
620
  case "backward":
621
621
  return H(m);
622
622
  case "random":
623
- return at(m);
623
+ return lt(m);
624
624
  default:
625
625
  throw new Error(`Unknown mode: ${s.mode}`);
626
626
  }
627
627
  }
628
628
  function oe(s) {
629
629
  const c = { ...s };
630
- return l != null && (c.seed = l({ tests: x })), c;
630
+ return a != null && (c.seed = a({ tests: S })), c;
631
631
  }
632
632
  return {
633
633
  get limit() {
@@ -643,7 +643,7 @@ function dt(e) {
643
643
  return b;
644
644
  },
645
645
  get tests() {
646
- return x;
646
+ return S;
647
647
  },
648
648
  calcIndexes: ne,
649
649
  extendTemplates: Me,
@@ -659,16 +659,16 @@ function ee(e) {
659
659
  return e <= 0 ? n : n.then(ee);
660
660
  }
661
661
  function mt(e, n, t) {
662
- const o = n.limit ? {
662
+ const i = n.limit ? {
663
663
  error: n.limit.error,
664
664
  args: n.limit.args,
665
665
  tests: n.limit.tests
666
666
  } : null;
667
- if (o && !t)
668
- throw o.error;
667
+ if (i && !t)
668
+ throw i.error;
669
669
  return {
670
670
  iterations: e.iterations,
671
- bestError: o
671
+ bestError: i
672
672
  };
673
673
  }
674
674
  const fe = 2 ** 31;
@@ -690,7 +690,7 @@ function gt(e) {
690
690
  };
691
691
  }
692
692
  function pt(e) {
693
- const n = e?.saveErrorVariants, t = n && e.createSaveErrorVariantsStore ? e.createSaveErrorVariantsStore(n) : null, o = e?.findBestError, { parallel: i, sequentialOnError: l } = gt(
693
+ const n = e?.saveErrorVariants, t = n && e.createSaveErrorVariantsStore ? e.createSaveErrorVariantsStore(n) : null, i = e?.findBestError, { parallel: o, sequentialOnError: a } = gt(
694
694
  e?.parallel
695
695
  );
696
696
  return {
@@ -700,59 +700,59 @@ function pt(e) {
700
700
  GC_Interval: e?.GC_Interval ?? 1e3,
701
701
  logOptions: ge(e?.log),
702
702
  abortSignalExternal: e?.abortSignal,
703
- findBestError: o,
704
- dontThrowIfError: o?.dontThrowIfError,
703
+ findBestError: i,
704
+ dontThrowIfError: i?.dontThrowIfError,
705
705
  timeController: e?.timeController ?? Q,
706
- parallel: i,
707
- sequentialOnError: l
706
+ parallel: o,
707
+ sequentialOnError: a
708
708
  };
709
709
  }
710
710
  function B(e, n, t) {
711
- const { options: o, variantsIterator: i } = e, l = i.limit?.args ?? n;
712
- if (!o.store)
711
+ const { options: i, variantsIterator: o } = e, a = o.limit?.args ?? n;
712
+ if (!i.store)
713
713
  return;
714
- const r = o.store.save(l);
714
+ const r = i.store.save(a);
715
715
  if (t)
716
716
  return r;
717
717
  }
718
- function ht(e, n, t, o) {
719
- const { abortControllerParallel: i, state: l, options: r } = e, { logOptions: a } = r;
718
+ function ht(e, n, t, i) {
719
+ const { abortControllerParallel: o, state: a, options: r } = e, { logOptions: l } = r;
720
720
  if (e.options.findBestError)
721
- e.variantsIterator.addLimit({ args: n, error: t, tests: o }), l.debugMode = !1, B(e, n, !1), r.sequentialOnError && !i.signal.aborted ? (a.debug && a.func(
721
+ e.variantsIterator.addLimit({ args: n, error: t, tests: i }), a.debugMode = !1, B(e, n, !1), r.sequentialOnError && !o.signal.aborted ? (l.debug && l.func(
722
722
  "debug",
723
723
  "[test-variants] sequentialOnError: aborting parallel, switching to sequential"
724
- ), i.abort(new T())) : a.debug && a.func(
724
+ ), o.abort(new T())) : l.debug && l.func(
725
725
  "debug",
726
726
  "[test-variants] parallel error in findBestError mode, continuing with new limits"
727
727
  );
728
728
  else {
729
- if (i.signal.aborted)
729
+ if (o.signal.aborted)
730
730
  return;
731
- B(e, n, !1), i.abort(t);
731
+ B(e, n, !1), o.abort(t);
732
732
  }
733
733
  }
734
- function de(e, n, t, o) {
735
- const { state: i } = e;
734
+ function de(e, n, t, i) {
735
+ const { state: o } = e;
736
736
  if (e.options.findBestError) {
737
- e.variantsIterator.addLimit({ args: n, error: t, tests: o });
737
+ e.variantsIterator.addLimit({ args: n, error: t, tests: i });
738
738
  const r = B(e, n, !0);
739
739
  if (r)
740
740
  return r.then(() => {
741
- i.debugMode = !1;
741
+ o.debugMode = !1;
742
742
  });
743
- i.debugMode = !1;
743
+ o.debugMode = !1;
744
744
  return;
745
745
  }
746
- const l = B(e, n, !0);
747
- if (l)
748
- return l.then(() => {
746
+ const a = B(e, n, !0);
747
+ if (a)
748
+ return a.then(() => {
749
749
  throw t;
750
750
  });
751
751
  throw t;
752
752
  }
753
753
  function bt(e, n) {
754
- const { GC_Iterations: t, GC_IterationsAsync: o, GC_Interval: i } = e.options;
755
- return t > 0 && e.state.iterations - e.state.prevGcIterations >= t || o > 0 && e.state.iterationsAsync - e.state.prevGcIterationsAsync >= o || i > 0 && n - e.state.prevGcTime >= i;
754
+ const { GC_Iterations: t, GC_IterationsAsync: i, GC_Interval: o } = e.options;
755
+ return t > 0 && e.state.iterations - e.state.prevGcIterations >= t || i > 0 && e.state.iterationsAsync - e.state.prevGcIterationsAsync >= i || o > 0 && n - e.state.prevGcTime >= o;
756
756
  }
757
757
  async function yt(e, n) {
758
758
  e.prevGcIterations = e.iterations, e.prevGcIterationsAsync = e.iterationsAsync, e.prevGcTime = n, await ee(1);
@@ -778,46 +778,46 @@ function vt(e, n) {
778
778
  return (e.mode === "forward" || e.mode === "backward") && (e.cycles != null && (t += `, cycles=${e.cycles}`), e.attemptsPerVariant != null && (t += `, attempts=${e.attemptsPerVariant}`)), e.limitTime != null && (t += `, limitTime=${te(e.limitTime)}`), e.limitTests != null && (t += `, limitTests=${e.limitTests}`), t;
779
779
  }
780
780
  function he(e, n) {
781
- const t = e - n, o = t >= 0 ? "+" : "";
782
- return `${J(e)} (${o}${J(t)})`;
781
+ const t = e - n, i = t >= 0 ? "+" : "";
782
+ return `${J(e)} (${i}${J(t)})`;
783
783
  }
784
- function St(e, n) {
784
+ function Et(e, n) {
785
785
  if (!e.start)
786
786
  return;
787
787
  let t = "[test-variants] start";
788
788
  n != null && (t += `, memory: ${J(n)}`), e.func("start", t);
789
789
  }
790
- function xt(e) {
791
- const { options: n, state: t } = e, { logOptions: o, timeController: i } = n;
792
- if (!o.completed)
790
+ function St(e) {
791
+ const { options: n, state: t } = e, { logOptions: i, timeController: o } = n;
792
+ if (!i.completed)
793
793
  return;
794
- const l = i.now() - t.startTime;
795
- let r = `[test-variants] end, tests: ${t.tests} (${te(l)}), async: ${t.iterationsAsync}`;
794
+ const a = o.now() - t.startTime;
795
+ let r = `[test-variants] end, tests: ${t.tests} (${te(a)}), async: ${t.iterationsAsync}`;
796
796
  if (t.startMemory != null) {
797
- const a = Y();
798
- a != null && (r += `, memory: ${he(a, t.startMemory)}`);
797
+ const l = Y();
798
+ l != null && (r += `, memory: ${he(l, t.startMemory)}`);
799
799
  }
800
- o.func("completed", r);
800
+ i.func("completed", r);
801
801
  }
802
802
  function be(e) {
803
- const { options: n, state: t } = e, { logOptions: o } = n, i = t.pendingModeChange;
804
- !o.modeChange || i == null || (o.func(
803
+ const { options: n, state: t } = e, { logOptions: i } = n, o = t.pendingModeChange;
804
+ !i.modeChange || o == null || (i.func(
805
805
  "modeChange",
806
- `[test-variants] ${vt(i.mode, i.modeIndex)}`
806
+ `[test-variants] ${vt(o.mode, o.modeIndex)}`
807
807
  ), t.pendingModeChange = null);
808
808
  }
809
- function wt(e) {
810
- const { options: n, state: t } = e, { logOptions: o, timeController: i } = n, l = i.now();
811
- if (!o.progress || l - t.prevLogTime < o.progress)
809
+ function xt(e) {
810
+ const { options: n, state: t } = e, { logOptions: i, timeController: o } = n, a = o.now();
811
+ if (!i.progress || a - t.prevLogTime < i.progress)
812
812
  return !1;
813
813
  be(e);
814
- const r = l - t.startTime;
815
- let a = `[test-variants] tests: ${t.tests} (${te(r)}), async: ${t.iterationsAsync}`;
814
+ const r = a - t.startTime;
815
+ let l = `[test-variants] tests: ${t.tests} (${te(r)}), async: ${t.iterationsAsync}`;
816
816
  if (t.prevLogMemory != null) {
817
817
  const u = Y();
818
- u != null && (a += `, memory: ${he(u, t.prevLogMemory)}`, t.prevLogMemory = u);
818
+ u != null && (l += `, memory: ${he(u, t.prevLogMemory)}`, t.prevLogMemory = u);
819
819
  }
820
- return o.func("progress", a), t.prevLogTime = l, !0;
820
+ return i.func("progress", l), t.prevLogTime = a, !0;
821
821
  }
822
822
  function X(e, n) {
823
823
  e.debugMode = !1, n && (e.iterationsAsync += n.iterationsAsync, e.iterations += n.iterationsSync + n.iterationsAsync);
@@ -826,40 +826,40 @@ function Z(e) {
826
826
  e.state.debugMode = !0, e.abortControllerParallel.abort(new T());
827
827
  }
828
828
  function ye(e, n) {
829
- const { testRun: t, testOptions: o, state: i } = e, l = i.tests;
830
- i.tests++;
829
+ const { testRun: t, testOptions: i, state: o } = e, a = o.tests;
830
+ o.tests++;
831
831
  try {
832
- const r = t(n, l, o);
832
+ const r = t(n, a, i);
833
833
  if (M(r))
834
834
  return r.then(
835
- (a) => {
836
- if (!a) {
835
+ (l) => {
836
+ if (!l) {
837
837
  Z(e);
838
838
  return;
839
839
  }
840
- X(i, a);
840
+ X(o, l);
841
841
  },
842
- (a) => de(e, n, a, l)
842
+ (l) => de(e, n, l, a)
843
843
  );
844
844
  if (!r) {
845
845
  Z(e);
846
846
  return;
847
847
  }
848
- X(i, r);
848
+ X(o, r);
849
849
  } catch (r) {
850
- return r instanceof T ? void 0 : de(e, n, r, l);
850
+ return r instanceof T ? void 0 : de(e, n, r, a);
851
851
  }
852
852
  }
853
- function Et(e, n) {
854
- const { pool: t, abortSignal: o, testRun: i, testOptionsParallel: l, state: r } = e;
853
+ function wt(e, n) {
854
+ const { pool: t, abortSignal: i, testRun: o, testOptionsParallel: a, state: r } = e;
855
855
  if (!t)
856
856
  return;
857
- const a = r.tests;
857
+ const l = r.tests;
858
858
  r.tests++, (async () => {
859
859
  try {
860
- if (o.aborted)
860
+ if (i.aborted)
861
861
  return;
862
- let u = i(n, a, l);
862
+ let u = o(n, l, a);
863
863
  if (M(u) && (u = await u), !u) {
864
864
  Z(e);
865
865
  return;
@@ -868,18 +868,18 @@ function Et(e, n) {
868
868
  } catch (u) {
869
869
  if (u instanceof T)
870
870
  return;
871
- ht(e, n, u, a);
871
+ ht(e, n, u, l);
872
872
  } finally {
873
873
  t.release(1);
874
874
  }
875
875
  })();
876
876
  }
877
877
  function ve(e) {
878
- const { options: n, state: t } = e, { logOptions: o, timeController: i, GC_Interval: l } = n;
879
- if (!o.progress && !l)
878
+ const { options: n, state: t } = e, { logOptions: i, timeController: o, GC_Interval: a } = n;
879
+ if (!i.progress && !a)
880
880
  return;
881
- wt(e);
882
- const r = i.now();
881
+ xt(e);
882
+ const r = o.now();
883
883
  if (bt(e, r))
884
884
  return yt(t, r);
885
885
  }
@@ -889,137 +889,138 @@ function R(e) {
889
889
  function K(e) {
890
890
  return e.abortSignal.aborted;
891
891
  }
892
- function Se(e, n) {
892
+ function Ee(e, n) {
893
893
  return e.state.debugMode ? n : e.variantsIterator.next();
894
894
  }
895
895
  async function W(e, n) {
896
- const { pool: t, state: o, options: i } = e, { parallel: l, logOptions: r } = i;
897
- let a = n ?? null;
896
+ const { pool: t, state: i, options: o } = e, { parallel: a, logOptions: r } = o;
897
+ let l = n ?? null;
898
898
  for (; !R(e); ) {
899
899
  const u = t && !K(e);
900
- let d = !1;
901
- u && (t.hold(1) || await le({ pool: t, count: 1, hold: !0 }), d = !0);
900
+ let f = !1;
901
+ u && (t.hold(1) || await ae({ pool: t, count: 1, hold: !0 }), f = !0);
902
902
  try {
903
- if (a == null && (a = Se(e, a), a == null))
903
+ if (l == null && (l = Ee(e, l), l == null))
904
904
  break;
905
- const f = ve(e);
906
- if (M(f) && await f, R(e)) {
907
- a = null;
905
+ const d = ve(e);
906
+ if (M(d) && await d, R(e)) {
907
+ l = null;
908
908
  continue;
909
909
  }
910
910
  if (u)
911
- Et(e, a), d = !1;
911
+ wt(e, l), f = !1;
912
912
  else {
913
913
  r.debug && t && K(e) && r.func(
914
914
  "debug",
915
- `[test-variants] parallel aborted, running sequential: tests=${o.tests}`
915
+ `[test-variants] parallel aborted, running sequential: tests=${i.tests}`
916
916
  );
917
- const h = ye(e, a);
917
+ const h = ye(e, l);
918
918
  M(h) && await h;
919
919
  }
920
- a = null;
920
+ l = null;
921
921
  } finally {
922
- d && t.release(1);
922
+ f && t.release(1);
923
923
  }
924
924
  }
925
- t && (await le({ pool: t, count: l, hold: !0 }), t.release(l));
925
+ t && (await ae({ pool: t, count: a, hold: !0 }), t.release(a));
926
926
  }
927
927
  function Mt(e) {
928
- const { pool: n, state: t, options: o } = e, { logOptions: i } = o;
928
+ const { pool: n, state: t, options: i } = e, { logOptions: o } = i;
929
929
  if (n)
930
930
  return W(e);
931
- let l = null;
932
- for (; !R(e) && (l = Se(e, l), l != null); ) {
931
+ let a = null;
932
+ for (; !R(e) && (a = Ee(e, a), a != null); ) {
933
933
  const r = ve(e);
934
934
  if (M(r)) {
935
- const u = l;
935
+ const u = a;
936
936
  return r.then(() => W(e, u));
937
937
  }
938
938
  if (R(e))
939
939
  continue;
940
- i.debug && K(e) && i.func(
940
+ o.debug && K(e) && o.func(
941
941
  "debug",
942
942
  `[test-variants] parallel aborted, running sequential: tests=${t.tests}`
943
943
  );
944
- const a = ye(e, l);
945
- if (M(a))
946
- return a.then(() => W(e));
944
+ const l = ye(e, a);
945
+ if (M(l))
946
+ return l.then(() => W(e));
947
947
  }
948
948
  }
949
- async function Tt(e, n, t, o) {
950
- const i = pt(o), {
951
- store: l,
949
+ async function Tt(e, n, t, i) {
950
+ const o = pt(i), {
951
+ store: a,
952
952
  logOptions: r,
953
- abortSignalExternal: a,
953
+ abortSignalExternal: l,
954
954
  findBestError: u,
955
- dontThrowIfError: d,
956
- timeController: f,
955
+ dontThrowIfError: f,
956
+ timeController: d,
957
957
  parallel: h
958
- } = i, y = new se(), p = new se(), b = ie(
959
- a,
958
+ } = o, y = new se(), p = new se(), b = ie(
959
+ l,
960
960
  y.signal
961
- ), S = ie(
961
+ ), E = ie(
962
962
  b,
963
963
  p.signal
964
964
  ), L = {
965
965
  abortSignal: b,
966
- timeController: f
966
+ timeController: d
967
967
  }, g = {
968
- abortSignal: S,
969
- timeController: f
968
+ abortSignal: E,
969
+ timeController: d
970
970
  };
971
- l && await l.replay({
971
+ a && await a.replay({
972
972
  testRun: e,
973
973
  variantsIterator: n,
974
974
  testOptions: L,
975
975
  findBestErrorEnabled: !!u
976
976
  });
977
- const x = h <= 1 ? null : new Ke(h);
978
- St(r, t.startMemory);
977
+ const S = h <= 1 ? null : new Ke(h);
978
+ Et(r, t.startMemory);
979
979
  const I = {
980
- options: i,
980
+ options: o,
981
981
  testRun: e,
982
982
  variantsIterator: n,
983
983
  testOptions: L,
984
984
  testOptionsParallel: g,
985
985
  abortControllerGlobal: y,
986
986
  abortControllerParallel: p,
987
- abortSignal: S,
988
- pool: x,
987
+ abortSignal: E,
988
+ pool: S,
989
989
  state: t
990
990
  };
991
991
  be(I);
992
992
  try {
993
- await Mt(I), S.throwIfAborted();
993
+ await Mt(I), E.throwIfAborted();
994
994
  } catch (P) {
995
995
  throw y.abort(new T()), P;
996
996
  }
997
- return b.throwIfAborted(), y.abort(new T()), xt(I), await ee(1), mt(t, n, d);
997
+ return b.throwIfAborted(), y.abort(new T()), St(I), await ee(1), mt(t, n, f);
998
998
  }
999
999
  function Nt(e) {
1000
1000
  return function(t) {
1001
- return async function(i) {
1002
- const l = ge(i?.log), r = st(e, {
1003
- onError: i?.onError,
1004
- log: l
1005
- }), a = i?.timeController ?? Q, u = Y(), d = nt(a, u), f = i?.onModeChange;
1001
+ return async function(o) {
1002
+ const a = ge(o?.log), r = st(e, {
1003
+ onError: o?.onError,
1004
+ log: a,
1005
+ pauseDebuggerOnError: o?.pauseDebuggerOnError
1006
+ }), l = o?.timeController ?? Q, u = Y(), f = nt(l, u), d = o?.onModeChange;
1006
1007
  function h(p) {
1007
- d.pendingModeChange = p, f?.(p);
1008
+ f.pendingModeChange = p, d?.(p);
1008
1009
  }
1009
1010
  const y = dt({
1010
1011
  argsTemplates: t,
1011
- getSeed: i?.getSeed,
1012
- iterationModes: i?.iterationModes,
1013
- equals: i?.findBestError?.equals,
1014
- limitArgOnError: i?.findBestError?.limitArgOnError,
1015
- includeErrorVariant: i?.findBestError?.includeErrorVariant,
1016
- timeController: a,
1012
+ getSeed: o?.getSeed,
1013
+ iterationModes: o?.iterationModes,
1014
+ equals: o?.findBestError?.equals,
1015
+ limitArgOnError: o?.findBestError?.limitArgOnError,
1016
+ includeErrorVariant: o?.findBestError?.includeErrorVariant,
1017
+ timeController: l,
1017
1018
  onModeChange: h,
1018
- limitCompletionCount: i?.cycles ?? 1,
1019
- limitTests: i?.limitTests,
1020
- limitTime: i?.limitTime
1019
+ limitCompletionCount: o?.cycles ?? 1,
1020
+ limitTests: o?.limitTests,
1021
+ limitTime: o?.limitTime
1021
1022
  });
1022
- return Tt(r, y, d, i);
1023
+ return Tt(r, y, f, o);
1023
1024
  };
1024
1025
  };
1025
1026
  }