Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit dc60908

Browse files
committed
fix string perf test
1 parent 0b3ccec commit dc60908

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/System.Memory/tests/Performance/Perf.Span.BinarySearch.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ namespace System.Memory.Tests
1010
public class Perf_Span_BinarySearch
1111
{
1212
private const int InnerCount = 100000;
13+
private const string NumberFormat = "D9";
1314

1415
[Benchmark(InnerIterationCount = InnerCount)]
1516
[InlineData(1)]
@@ -69,7 +70,7 @@ public void SpanBinarySearch_Int_NotFoundAfter(int size)
6970
[InlineData(1000)]
7071
public void SpanBinarySearch_String_FirstIndex(int size)
7172
{
72-
BenchmarkAndAssert(size, 0.ToString(), 0);
73+
BenchmarkAndAssert(size, 0.ToString(NumberFormat), 0);
7374
}
7475

7576
[Benchmark(InnerIterationCount = InnerCount)]
@@ -79,7 +80,7 @@ public void SpanBinarySearch_String_FirstIndex(int size)
7980
[InlineData(1000)]
8081
public void SpanBinarySearch_String_MiddleIndex(int size)
8182
{
82-
BenchmarkAndAssert(size, (size / 2).ToString(), size / 2);
83+
BenchmarkAndAssert(size, (size / 2).ToString(NumberFormat), size / 2);
8384
}
8485

8586
[Benchmark(InnerIterationCount = InnerCount)]
@@ -89,7 +90,7 @@ public void SpanBinarySearch_String_MiddleIndex(int size)
8990
[InlineData(1000)]
9091
public void SpanBinarySearch_String_LastIndex(int size)
9192
{
92-
BenchmarkAndAssert(size, (size - 1).ToString(), size - 1);
93+
BenchmarkAndAssert(size, (size - 1).ToString(NumberFormat), size - 1);
9394
}
9495

9596
[Benchmark(InnerIterationCount = InnerCount)]
@@ -99,7 +100,8 @@ public void SpanBinarySearch_String_LastIndex(int size)
99100
[InlineData(1000)]
100101
public void SpanBinarySearch_String_NotFoundBefore(int size)
101102
{
102-
BenchmarkAndAssert(size, (-1).ToString(), -1);
103+
// "/" is just before zero in character table
104+
BenchmarkAndAssert(size, "/", -1);
103105
}
104106

105107
[Benchmark(InnerIterationCount = InnerCount)]
@@ -109,7 +111,7 @@ public void SpanBinarySearch_String_NotFoundBefore(int size)
109111
[InlineData(1000)]
110112
public void SpanBinarySearch_String_NotFoundAfter(int size)
111113
{
112-
BenchmarkAndAssert(size, (size).ToString(), ~size);
114+
BenchmarkAndAssert(size, (size).ToString(NumberFormat), ~size);
113115
}
114116

115117
private static void BenchmarkAndAssert(int size, int value, int expectedIndex)
@@ -139,7 +141,7 @@ private static void BenchmarkAndAssert(int size, string value, int expectedIndex
139141
Span<string> span = new string[size];
140142
for (int i = 0; i < span.Length; i++)
141143
{
142-
span[i] = i.ToString();
144+
span[i] = i.ToString(NumberFormat);
143145
}
144146

145147
int index = 0;

0 commit comments

Comments
 (0)