Skip to content

Commit 54f741e

Browse files
committed
Move tests to Integrationtests
1 parent 1b24c22 commit 54f741e

3 files changed

Lines changed: 67 additions & 57 deletions

File tree

src/Tests/MeasureMap.BenchmarkTests/MeasureMap.BenchmarkTests.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1818
</PackageReference>
1919
<PackageReference Include="NUnit3TestAdapter" Version="5.1.0" />
20+
<PackageReference Include="AwesomeAssertions" Version="9.1.0" />
2021
</ItemGroup>
2122

2223
<ItemGroup>
2324
<Using Include="NUnit.Framework"/>
25+
<Using Include="AwesomeAssertions" />
2426
</ItemGroup>
2527

2628
<ItemGroup>
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
using System.Diagnostics;
2+
using MeasureMap.Runners;
3+
4+
namespace MeasureMap.BenchmarkTests
5+
{
6+
public class TimedTaskExecutionBenchmark
7+
{
8+
[Test]
9+
public void TimedTaskExecution_Benchmark_Timer()
10+
{
11+
var benchmarks = new Dictionary<string, TimeSpan[]>
12+
{
13+
{ "1 ms delay", Measure(TimeSpan.FromMilliseconds(1)) },
14+
{ "10 ms delay", Measure(TimeSpan.FromMilliseconds(10)) },
15+
{ "100 ms delay", Measure(TimeSpan.FromMilliseconds(100)) },
16+
{ "1000 ms delay", Measure(TimeSpan.FromMilliseconds(1000)) }
17+
};
18+
19+
Trace.WriteLine("| Key | Avg ms | Avg ticks |");
20+
foreach (var benchmark in benchmarks)
21+
{
22+
Trace.WriteLine($"| {benchmark.Key} | {benchmark.Value.Average(v => v.TotalMilliseconds)} | {benchmark.Value.Average(v => v.Ticks)} |");
23+
}
24+
25+
// skip first because that one is a direct runthrough and fakes statistics
26+
benchmarks["1 ms delay"].Skip(2).Average(v => v.TotalMilliseconds).Should().BeGreaterThan(1, TraceResult(benchmarks["1 ms delay"])).And.BeLessThan(20);
27+
benchmarks["10 ms delay"].Skip(2).Average(v => v.TotalMilliseconds).Should().BeGreaterThan(10, TraceResult(benchmarks["1 ms delay"])).And.BeLessThan(20);
28+
benchmarks["100 ms delay"].Skip(2).Average(v => v.TotalMilliseconds).Should().BeGreaterThan(100, TraceResult(benchmarks["1 ms delay"])).And.BeLessThan(120);
29+
benchmarks["1000 ms delay"].Skip(2).Average(v => v.TotalMilliseconds).Should().BeGreaterThan(1000, TraceResult(benchmarks["1 ms delay"])).And.BeLessThan(1020);
30+
}
31+
32+
private string TraceResult(IEnumerable<TimeSpan> skip)
33+
{
34+
return $"{Environment.NewLine} - " + string.Join($"{Environment.NewLine} - ", skip);
35+
}
36+
37+
private TimeSpan[] Measure(TimeSpan interval)
38+
{
39+
var context = new ExecutionContext
40+
{
41+
Logger =
42+
{
43+
MinLogLevel = MeasureMap.Diagnostics.LogLevel.Debug
44+
}
45+
};
46+
47+
var times = new TimeSpan[10];
48+
49+
// Start Stopwatch before creating TimedTaskExecution
50+
// The ctor of TimedTaskExecution starts the Stopwatch to track the timer
51+
//
52+
var sw = Stopwatch.StartNew();
53+
54+
var execution = new TimedTaskExecution(interval);
55+
for (var i = 0; i < 10; i++)
56+
{
57+
execution.Execute(context, c => { });
58+
times[i] = sw.Elapsed;
59+
sw.Restart();
60+
}
61+
62+
return times;
63+
}
64+
}
65+
}

src/Tests/MeasureMap.UnitTest/Runners/TimedTaskExecutionBenchmark.cs

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -48,62 +48,5 @@ public void TimedTaskExecution_Benchmark()
4848

4949
result.Should().HaveCount(3);
5050
}
51-
52-
[Test]
53-
public void TimedTaskExecution_Benchmark_Timer()
54-
{
55-
var benchmarks = new Dictionary<string, TimeSpan[]>
56-
{
57-
{ "1 ms delay", Measure(TimeSpan.FromMilliseconds(1)) },
58-
{ "10 ms delay", Measure(TimeSpan.FromMilliseconds(10)) },
59-
{ "100 ms delay", Measure(TimeSpan.FromMilliseconds(100)) },
60-
{ "1000 ms delay", Measure(TimeSpan.FromMilliseconds(1000)) }
61-
};
62-
63-
Trace.WriteLine("| Key | Avg ms | Avg ticks |");
64-
foreach (var benchmark in benchmarks)
65-
{
66-
Trace.WriteLine($"| {benchmark.Key} | {benchmark.Value.Average(v => v.TotalMilliseconds)} | {benchmark.Value.Average(v => v.Ticks)} |");
67-
}
68-
69-
// skip first because that one is a direct runthrough and fakes statistics
70-
benchmarks["1 ms delay"].Skip(2).Average(v => v.TotalMilliseconds).Should().BeGreaterThan(1, TraceResult(benchmarks["1 ms delay"])).And.BeLessThan(20);
71-
benchmarks["10 ms delay"].Skip(2).Average(v => v.TotalMilliseconds).Should().BeGreaterThan(10, TraceResult(benchmarks["1 ms delay"])).And.BeLessThan(20);
72-
benchmarks["100 ms delay"].Skip(2).Average(v => v.TotalMilliseconds).Should().BeGreaterThan(100, TraceResult(benchmarks["1 ms delay"])).And.BeLessThan(120);
73-
benchmarks["1000 ms delay"].Skip(2).Average(v => v.TotalMilliseconds).Should().BeGreaterThan(1000, TraceResult(benchmarks["1 ms delay"])).And.BeLessThan(1020);
74-
}
75-
76-
private string TraceResult(IEnumerable<TimeSpan> skip)
77-
{
78-
return $"{Environment.NewLine} - " + string.Join($"{Environment.NewLine} - ", skip);
79-
}
80-
81-
private TimeSpan[] Measure(TimeSpan interval)
82-
{
83-
var context = new ExecutionContext
84-
{
85-
Logger =
86-
{
87-
MinLogLevel = MeasureMap.Diagnostics.LogLevel.Debug
88-
}
89-
};
90-
91-
var times = new TimeSpan[10];
92-
93-
// Start Stopwatch before creating TimedTaskExecution
94-
// The ctor of TimedTaskExecution starts the Stopwatch to track the timer
95-
//
96-
var sw = Stopwatch.StartNew();
97-
98-
var execution = new TimedTaskExecution(interval);
99-
for (var i = 0; i < 10; i++)
100-
{
101-
execution.Execute(context, c => { });
102-
times[i] = sw.Elapsed;
103-
sw.Restart();
104-
}
105-
106-
return times;
107-
}
10851
}
10952
}

0 commit comments

Comments
 (0)