Skip to content

Commit 2d1bc4e

Browse files
committed
Merge branch 'main' into FilterLines
2 parents 650fe68 + c21eb74 commit 2d1bc4e

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
[MemoryDiagnoser]
2+
[SimpleJob(iterationCount: 10, warmupCount: 3)]
3+
public class FilterLinesBenchmarks
4+
{
5+
StringBuilder smallInput = null!;
6+
StringBuilder mediumInput = null!;
7+
StringBuilder largeInput = null!;
8+
9+
[GlobalSetup]
10+
public void Setup()
11+
{
12+
// Small: ~1KB, 20 lines
13+
smallInput = CreateTestData(20, 50);
14+
15+
// Medium: ~50KB, 1000 lines
16+
mediumInput = CreateTestData(1000, 50);
17+
18+
// Large: ~500KB, 10000 lines
19+
largeInput = CreateTestData(10000, 50);
20+
}
21+
22+
static StringBuilder CreateTestData(int lineCount, int charsPerLine)
23+
{
24+
var builder = new StringBuilder();
25+
for (var i = 0; i < lineCount; i++)
26+
{
27+
builder.Append(new string('x', charsPerLine));
28+
builder.Append(i);
29+
builder.AppendLine();
30+
}
31+
return builder;
32+
}
33+
34+
// Remove every other line
35+
static bool RemoveEvenLines(string line) =>
36+
line.Length > 0 && char.IsDigit(line[^1]) && (line[^1] - '0') % 2 == 0;
37+
38+
[Benchmark(Baseline = true)]
39+
public void Small()
40+
{
41+
var builder = new StringBuilder(smallInput.ToString());
42+
builder.FilterLines(RemoveEvenLines);
43+
}
44+
45+
[Benchmark]
46+
public void Medium()
47+
{
48+
var builder = new StringBuilder(mediumInput.ToString());
49+
builder.FilterLines(RemoveEvenLines);
50+
}
51+
52+
[Benchmark]
53+
public void Large()
54+
{
55+
var builder = new StringBuilder(largeInput.ToString());
56+
builder.FilterLines(RemoveEvenLines);
57+
}
58+
}

src/Verify.MSTest.SourceGenerator/UsesVerifyGenerator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
namespace VerifyMSTest.SourceGenerator;
22

3+
//https://github.com/dotnet/roslyn-analyzers/issues/6229
4+
#pragma warning disable RS1036
35
[Generator]
46
public class UsesVerifyGenerator : IIncrementalGenerator
57
{

0 commit comments

Comments
 (0)