DistinctSelector

This commit is contained in:
neuecc
2020-05-12 02:45:12 +09:00
parent 85dc70a3ab
commit 57c414a6e0
4 changed files with 228 additions and 60 deletions

View File

@@ -32,10 +32,13 @@ namespace NetCoreTests.Linq
[MemberData(nameof(array1))]
public async Task Distinct(int[] array)
{
var xs = await array.ToUniTaskAsyncEnumerable().Distinct().ToArrayAsync();
var ys = array.Distinct().ToArray();
xs.Should().BeEquivalentTo(ys);
{
(await array.ToUniTaskAsyncEnumerable().Distinct().ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().Distinct(x => x).ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctAwait(x => UniTask.Run(() => x)).ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctAwaitWithCancellation((x, _) => UniTask.Run(() => x)).ToArrayAsync()).Should().BeEquivalentTo(ys);
}
}
[Fact]
@@ -43,8 +46,22 @@ namespace NetCoreTests.Linq
{
foreach (var item in UniTaskTestException.Throws())
{
var xs = item.Distinct().ToArrayAsync();
await Assert.ThrowsAsync<UniTaskTestException>(async () => await xs);
{
var xs = item.Distinct().ToArrayAsync();
await Assert.ThrowsAsync<UniTaskTestException>(async () => await xs);
}
{
var xs = item.Distinct(x => x).ToArrayAsync();
await Assert.ThrowsAsync<UniTaskTestException>(async () => await xs);
}
{
var xs = item.DistinctAwait(x => UniTask.Run(() => x)).ToArrayAsync();
await Assert.ThrowsAsync<UniTaskTestException>(async () => await xs);
}
{
var xs = item.DistinctAwaitWithCancellation((x, _) => UniTask.Run(() => x)).ToArrayAsync();
await Assert.ThrowsAsync<UniTaskTestException>(async () => await xs);
}
}
}