Skip to content

Commit

Permalink
cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonCropp committed Nov 1, 2024
1 parent 3130d5c commit 9f2e00a
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 50 deletions.
44 changes: 15 additions & 29 deletions src/Verify/Combinations/CombinationRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,36 +13,22 @@ public CombinationRunner(bool? captureExceptions, List<IEnumerable<object?>> lis
indices = new int[lists.Count];
}

async Task<CombinationResults> InnerRun<TReturn>(Func<object?[], Task<TReturn>> method)
{
var items = new List<CombinationResult>();
while (true)
Task<CombinationResults> RunWithReturn<TReturn>(Func<object?[], Task<TReturn>> method) =>
InnerRun(async keys =>
{
var keys = BuildParameters();
try
{
await CombinationSettings.RunBeforeCallbacks(keys);
var value = await method(keys);
await CombinationSettings.RunAfterCallbacks(keys, value);
items.Add(CombinationResult.ForValue(keys, value));
}
catch (Exception exception)
when (captureExceptions)
{
await CombinationSettings.RunExceptionCallbacks(keys, exception);
items.Add(CombinationResult.ForException(keys, exception));
}
var value = await method(keys);
return (CombinationResult.ForValue(keys, value), value);
});

if (Increment())
{
break;
}
}

return new(items, keyTypes);
}
Task<CombinationResults> RunWithVoid(Func<object?[], Task> method) =>
InnerRun(async keys =>
{
await method(keys);
return (CombinationResult.ForVoid(keys), null);
});

async Task<CombinationResults> InnerRun(Func<object?[], Task> method)
async Task<CombinationResults> InnerRun(Func<object?[], Task<(CombinationResult result, object? value)>> method)
{
var items = new List<CombinationResult>();
while (true)
Expand All @@ -51,9 +37,9 @@ async Task<CombinationResults> InnerRun(Func<object?[], Task> method)
try
{
await CombinationSettings.RunBeforeCallbacks(keys);
await method(keys);
await CombinationSettings.RunAfterCallbacks(keys, null);
items.Add(CombinationResult.ForVoid(keys));
var (result, value) = await method(keys);
await CombinationSettings.RunAfterCallbacks(keys, value);
items.Add(result);
}
catch (Exception exception)
when (captureExceptions)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
partial class CombinationRunner
{
Task<CombinationResults> Run<TReturn>(Func<object?[], IAsyncEnumerable<TReturn>> method) =>
InnerRun(_ => method(_).ToList());
RunWithReturn(_ => method(_).ToList());

public static Task<CombinationResults> Run<A, TReturn>(
Func<A, IAsyncEnumerable<TReturn>> method,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
partial class CombinationRunner
{
Task<CombinationResults> Run<TReturn>(Func<object?[], IEnumerable<TReturn>> method) =>
InnerRun(_ => Task.FromResult(method(_).ToList()));
RunWithReturn(_ => Task.FromResult(method(_).ToList()));

public static Task<CombinationResults> Run<A, TReturn>(
Func<A, IEnumerable<TReturn>> method,
Expand Down
2 changes: 1 addition & 1 deletion src/Verify/Combinations/CombinationRunner_SimpleReturn.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
partial class CombinationRunner
{
Task<CombinationResults> Run<TReturn>(Func<object?[], TReturn> method) =>
InnerRun(_ => Task.FromResult(method(_)));
RunWithReturn(_ => Task.FromResult(method(_)));

public static Task<CombinationResults> Run<A, TReturn>(
Func<A, TReturn> method,
Expand Down
16 changes: 8 additions & 8 deletions src/Verify/Combinations/CombinationRunner_TaskReturn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public static Task<CombinationResults> Run<A, TReturn>(
captureExceptions,
[a.Cast<object?>()],
[typeof(A)]);
return generator.InnerRun(_ => method((A)_[0]!));
return generator.RunWithReturn(_ => method((A)_[0]!));
}

public static Task<CombinationResults> Run<A, B, TReturn>(
Expand All @@ -28,7 +28,7 @@ public static Task<CombinationResults> Run<A, B, TReturn>(
typeof(A),
typeof(B)
]);
return generator.InnerRun(
return generator.RunWithReturn(
_ => method(
(A)_[0]!,
(B)_[1]!));
Expand All @@ -53,7 +53,7 @@ public static Task<CombinationResults> Run<A, B, C, TReturn>(
typeof(B),
typeof(C)
]);
return generator.InnerRun(
return generator.RunWithReturn(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -82,7 +82,7 @@ public static Task<CombinationResults> Run<A, B, C, D, TReturn>(
typeof(C),
typeof(D)
]);
return generator.InnerRun(
return generator.RunWithReturn(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -115,7 +115,7 @@ public static Task<CombinationResults> Run<A, B, C, D, E, TReturn>(
typeof(D),
typeof(E)
]);
return generator.InnerRun(
return generator.RunWithReturn(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -152,7 +152,7 @@ public static Task<CombinationResults> Run<A, B, C, D, E, F, TReturn>(
typeof(E),
typeof(F)
]);
return generator.InnerRun(
return generator.RunWithReturn(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -193,7 +193,7 @@ public static Task<CombinationResults> Run<A, B, C, D, E, F, G, TReturn>(
typeof(F),
typeof(G)
]);
return generator.InnerRun(
return generator.RunWithReturn(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -238,7 +238,7 @@ public static Task<CombinationResults> Run<A, B, C, D, E, F, G, H, TReturn>(
typeof(G),
typeof(H)
]);
return generator.InnerRun(
return generator.RunWithReturn(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
partial class CombinationRunner
{
Task<CombinationResults> Run<TReturn>(Func<object?[], ValueTask<TReturn>> method) =>
InnerRun(_ => method(_).AsTask());
RunWithReturn(_ => method(_).AsTask());

public static Task<CombinationResults> Run<A, TReturn>(
Func<A, ValueTask<TReturn>> method,
Expand Down
16 changes: 8 additions & 8 deletions src/Verify/Combinations/CombinationRunner_VoidTaskReturn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public static Task<CombinationResults> Run<A>(
captureExceptions,
[a.Cast<object?>()],
[typeof(A)]);
return generator.InnerRun(_ => method((A)_[0]!));
return generator.RunWithVoid(_ => method((A)_[0]!));
}

public static Task<CombinationResults> Run<A, B>(
Expand All @@ -28,7 +28,7 @@ public static Task<CombinationResults> Run<A, B>(
typeof(A),
typeof(B)
]);
return generator.InnerRun(
return generator.RunWithVoid(
_ => method(
(A)_[0]!,
(B)_[1]!));
Expand All @@ -53,7 +53,7 @@ public static Task<CombinationResults> Run<A, B, C>(
typeof(B),
typeof(C)
]);
return generator.InnerRun(
return generator.RunWithVoid(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -82,7 +82,7 @@ public static Task<CombinationResults> Run<A, B, C, D>(
typeof(C),
typeof(D)
]);
return generator.InnerRun(
return generator.RunWithVoid(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -115,7 +115,7 @@ public static Task<CombinationResults> Run<A, B, C, D, E>(
typeof(D),
typeof(E)
]);
return generator.InnerRun(
return generator.RunWithVoid(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -152,7 +152,7 @@ public static Task<CombinationResults> Run<A, B, C, D, E, F>(
typeof(E),
typeof(F)
]);
return generator.InnerRun(
return generator.RunWithVoid(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -193,7 +193,7 @@ public static Task<CombinationResults> Run<A, B, C, D, E, F, G>(
typeof(F),
typeof(G)
]);
return generator.InnerRun(
return generator.RunWithVoid(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down Expand Up @@ -238,7 +238,7 @@ public static Task<CombinationResults> Run<A, B, C, D, E, F, G, H>(
typeof(G),
typeof(H)
]);
return generator.InnerRun(
return generator.RunWithVoid(
_ => method(
(A)_[0]!,
(B)_[1]!,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
partial class CombinationRunner
{
Task<CombinationResults> Run(Func<object?[], ValueTask> method) =>
InnerRun(_ => method(_).AsTask());
RunWithVoid(_ => method(_).AsTask());

public static Task<CombinationResults> Run<A>(
Func<A, ValueTask> method,
Expand Down

0 comments on commit 9f2e00a

Please sign in to comment.