Files
annotations/Azaion.Test/ParallelExtTest.cs
T
Alex Bezdieniezhnykh 5a592e9dbf rework to Azaion.Suite
2024-11-21 13:41:32 +02:00

46 lines
1.3 KiB
C#

using System.Diagnostics;
using Azaion.Annotator.Extensions;
using FluentAssertions;
using Xunit;
using ParallelOptions = Azaion.Annotator.Extensions.ParallelOptions;
namespace Azaion.Annotator.Test;
public class ParallelExtTest
{
[Fact]
public async Task ParallelExtWorksOkTest()
{
var list = Enumerable.Range(0, 10).ToList();
var sw = Stopwatch.StartNew();
await ParallelExt.ForEachAsync(list, async (i, cancellationToken) =>
{
await Task.Delay(TimeSpan.FromSeconds(i), cancellationToken);
}, new ParallelOptions
{
CpuUtilPercent = 100,
ProgressUpdateInterval = 1
});
var elapsed = sw.Elapsed;
elapsed.Should().BeLessThan(TimeSpan.FromSeconds(11));
}
[Fact]
public async Task ParallelLibWorksOkTest()
{
var list = Enumerable.Range(0, 10).ToList();
var sw = Stopwatch.StartNew();
await Parallel.ForEachAsync(list, new System.Threading.Tasks.ParallelOptions
{
MaxDegreeOfParallelism = Environment.ProcessorCount,
}, async (i, cancellationToken) =>
{
await Task.Delay(TimeSpan.FromSeconds(i), cancellationToken);
});
var elapsed = sw.Elapsed;
elapsed.Should().BeLessThan(TimeSpan.FromSeconds(11));
}
}