Skip to content

Commit 7e7121c

Browse files
committed
Switched to unmanaged memory in all parallel tests
1 parent 9964e66 commit 7e7121c

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

UnitTests/UnitTests.HighPerformance.Shared/Extensions/Test_ReadOnlySpanExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void Test_ReadOnlySpanExtensions_DangerousGetReference()
2020
{
2121
using var owner = CreateRandomData<int>(12, default);
2222

23-
ReadOnlySpan<int> data = owner.Span;
23+
ReadOnlySpan<int> data = owner.GetSpan();
2424

2525
ref int r0 = ref data.DangerousGetReference();
2626
ref int r1 = ref Unsafe.AsRef(data[0]);
@@ -34,7 +34,7 @@ public void Test_ReadOnlySpanExtensions_DangerousGetReferenceAt_Zero()
3434
{
3535
using var owner = CreateRandomData<int>(12, default);
3636

37-
ReadOnlySpan<int> data = owner.Span;
37+
ReadOnlySpan<int> data = owner.GetSpan();
3838

3939
ref int r0 = ref data.DangerousGetReference();
4040
ref int r1 = ref data.DangerousGetReferenceAt(0);
@@ -48,7 +48,7 @@ public void Test_ReadOnlySpanExtensions_DangerousGetReferenceAt_Index()
4848
{
4949
using var owner = CreateRandomData<int>(12, default);
5050

51-
ReadOnlySpan<int> data = owner.Span;
51+
ReadOnlySpan<int> data = owner.GetSpan();
5252

5353
ref int r0 = ref data.DangerousGetReferenceAt(5);
5454
ref int r1 = ref Unsafe.AsRef(data[5]);

UnitTests/UnitTests.HighPerformance.Shared/Helpers/Test_ParallelHelper.ForEach.In.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Threading;
99
using Microsoft.Toolkit.HighPerformance.Helpers;
1010
using Microsoft.VisualStudio.TestTools.UnitTesting;
11+
using UnitTests.HighPerformance.Shared.Buffers.Internals;
1112

1213
namespace UnitTests.HighPerformance.Helpers
1314
{
@@ -19,15 +20,15 @@ public unsafe void Test_ParallelHelper_ForEach_In()
1920
{
2021
foreach (int count in TestForCounts)
2122
{
22-
int[] data = CreateRandomData(count);
23+
using UnmanagedSpanOwner<int> data = CreateRandomData(count);
2324

2425
int sum = 0;
2526

26-
ParallelHelper.ForEach<int, Summer>(data.AsMemory(), new Summer(&sum));
27+
ParallelHelper.ForEach<int, Summer>(data.Memory, new Summer(&sum));
2728

2829
int expected = 0;
2930

30-
foreach (int n in data)
31+
foreach (int n in data.GetSpan())
3132
{
3233
expected += n;
3334
}
@@ -55,13 +56,13 @@ public unsafe void Test_ParallelHelper_ForEach_In()
5556
/// <param name="count">The number of array items to create.</param>
5657
/// <returns>An array of random <see cref="int"/> elements.</returns>
5758
[Pure]
58-
private static int[] CreateRandomData(int count)
59+
private static UnmanagedSpanOwner<int> CreateRandomData(int count)
5960
{
6061
var random = new Random(count);
6162

62-
int[] data = new int[count];
63+
UnmanagedSpanOwner<int> data = new UnmanagedSpanOwner<int>(count);
6364

64-
foreach (ref int n in data.AsSpan())
65+
foreach (ref int n in data.GetSpan())
6566
{
6667
n = random.Next(0, byte.MaxValue);
6768
}

UnitTests/UnitTests.HighPerformance.Shared/Helpers/Test_ParallelHelper.ForEach.Ref.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System;
66
using Microsoft.Toolkit.HighPerformance.Helpers;
77
using Microsoft.VisualStudio.TestTools.UnitTesting;
8+
using UnitTests.HighPerformance.Shared.Buffers.Internals;
89

910
namespace UnitTests.HighPerformance.Helpers
1011
{
@@ -16,21 +17,26 @@ public void Test_ParallelHelper_ForEach_Ref()
1617
{
1718
foreach (int count in TestForCounts)
1819
{
19-
int[] data = CreateRandomData(count);
20-
int[] copy = data.AsSpan().ToArray();
20+
using UnmanagedSpanOwner<int> data = CreateRandomData(count);
21+
using UnmanagedSpanOwner<int> copy = new UnmanagedSpanOwner<int>(count);
2122

22-
foreach (ref int n in copy.AsSpan())
23+
data.GetSpan().CopyTo(copy.GetSpan());
24+
25+
foreach (ref int n in copy.GetSpan())
2326
{
2427
n = unchecked(n * 397);
2528
}
2629

27-
ParallelHelper.ForEach(data.AsMemory(), new Multiplier(397));
30+
ParallelHelper.ForEach(data.Memory, new Multiplier(397));
31+
32+
Span<int> dataSpan = data.GetSpan();
33+
Span<int> copySpan = copy.GetSpan();
2834

2935
for (int i = 0; i < data.Length; i++)
3036
{
31-
if (data[i] != copy[i])
37+
if (dataSpan[i] != copySpan[i])
3238
{
33-
Assert.Fail($"Item #{i} was not a match, was {data[i]} instead of {copy[i]}");
39+
Assert.Fail($"Item #{i} was not a match, was {dataSpan[i]} instead of {copySpan[i]}");
3440
}
3541
}
3642
}

0 commit comments

Comments
 (0)