Skip to content

Commit e736013

Browse files
address feedback
1 parent c3fc698 commit e736013

File tree

1 file changed

+6
-40
lines changed

1 file changed

+6
-40
lines changed

src/benchmarks/micro/libraries/System.Collections/PriorityQueue/Perf_PriorityQueue.cs

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,27 @@
55
using System.Linq;
66
using System.Collections.Generic;
77
using BenchmarkDotNet.Attributes;
8+
using BenchmarkDotNet.Extensions;
89
using MicroBenchmarks;
910

1011
namespace System.Collections.Tests
1112
{
1213
[BenchmarkCategory(Categories.Libraries, Categories.Collections, Categories.GenericCollections)]
13-
public abstract class Perf_PriorityQueue<TElement, TPriority>
14+
[GenericTypeArguments(typeof(int), typeof(int))]
15+
[GenericTypeArguments(typeof(string), typeof(string))]
16+
public class Perf_PriorityQueue<TElement, TPriority>
1417
{
15-
[Params(10, 100, 1000, 10_000, 100_000)]
18+
[Params(10, 100, 1000)]
1619
public int Size;
1720

1821
private (TElement Element, TPriority Priority)[] _items;
1922
private PriorityQueue<TElement, TPriority> _priorityQueue;
2023
private PriorityQueue<TElement, TPriority> _prePopulatedPriorityQueue;
2124

22-
public abstract IEnumerable<(TElement Element, TPriority Priority)> GenerateItems(int count);
23-
2425
[GlobalSetup]
2526
public void Setup()
2627
{
27-
_items = GenerateItems(Size).ToArray();
28+
_items = ValuesGenerator.Array<TElement>(Size).Zip(ValuesGenerator.Array<TPriority>(Size)).ToArray();
2829
_priorityQueue = new PriorityQueue<TElement, TPriority>(initialCapacity: Size);
2930
_prePopulatedPriorityQueue = new PriorityQueue<TElement, TPriority>(_items);
3031
}
@@ -104,39 +105,4 @@ public void K_Max_Elements()
104105
}
105106
}
106107
}
107-
108-
public class Perf_PriorityQueue_String_String : Perf_PriorityQueue<string, string>
109-
{
110-
public override IEnumerable<(string Element, string Priority)> GenerateItems(int count)
111-
{
112-
var random = new Random(42);
113-
const int MaxSize = 30;
114-
byte[] buffer = new byte[MaxSize];
115-
116-
for (int i = 0; i < count; i++)
117-
{
118-
yield return (GenerateString(), GenerateString());
119-
}
120-
121-
string GenerateString()
122-
{
123-
int size = random.Next(MaxSize);
124-
Span<byte> slice = buffer.AsSpan().Slice(size);
125-
random.NextBytes(slice);
126-
return Convert.ToBase64String(slice);
127-
}
128-
}
129-
}
130-
131-
public class Perf_PriorityQueue_Int_Int : Perf_PriorityQueue<int, int>
132-
{
133-
public override IEnumerable<(int Element, int Priority)> GenerateItems(int count)
134-
{
135-
var random = new Random(42);
136-
for (int i = 0; i < count; i++)
137-
{
138-
yield return (random.Next(), random.Next());
139-
}
140-
}
141-
}
142108
}

0 commit comments

Comments
 (0)