Skip to content

Commit 575d699

Browse files
author
Petr Sramek
committed
added enumeration parameter benchmark
1 parent 9d61b50 commit 575d699

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

benchmarks/PolylineAlgorithm.Benchmarks/PolylineEncoderBenchmark.cs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,31 @@ namespace PolylineAlgorithm.Benchmarks;
1212

1313
[Orderer(SummaryOrderPolicy.Declared)]
1414
public class PolylineEncoderBenchmark {
15-
public static IEnumerable<Coordinate> Coordinates { get; } = [new(60.81071, -121.40005), new(70.05664, -38.43130), new(37.52379, -84.83755), new(41.85003, 26.25620), new(68.04709, 110.63120), new(61.48922, 50.16245), new(-4.46018, -58.11880), new(-32.16061, -3.27505), new(-50.89185, -55.30630), new(-28.52070, 90.94370), new(35.26009, 93.75620), new(54.83622, 128.91245), new(1.16022, 37.50620), new(-44.26398, -131.24380), new(-33.34325, 154.22495), new(-59.65879, 90.94370), new(-62.38215, 0.94370), new(72.32117, 40.31870), new(64.66910, 2.34995), new(-61.04971, -84.83755), new(77.10238, -91.86880), new(-72.88859, -129.83755), new(-69.24987, -24.36880), new(77.41254, 119.06870), new(-70.69409, 83.91245), new(78.85650, 75.47495), new(26.83989, 140.16245), new(-24.75069, -108.74380), new(30.53968, -145.30630), new(79.12503, 145.78745), new(-34.51006, 133.13120), new(-73.29753, -60.93130), new(-74.08712, 23.44370), new(-76.57404, 100.78745), new(-76.57404, 100.78745), new(39.72082, 103.59995), new(70.99412, 148.59995), new(82.27591, 138.75620), new(78.29964, -3.27505), new(78.29964, -3.27505), new(-8.65039, 47.34995)];
15+
private static readonly Random R = new();
16+
public static List<Coordinate> GetList() {
17+
return new List<Coordinate>(GetEnumeration());
18+
}
19+
20+
public static IEnumerable<Coordinate> GetEnumeration() {
21+
for (int i = 0; i < 1_000_000; i++) {
22+
yield return new Coordinate(R.Next(-90, 90) + R.NextDouble(), R.Next(-180, 180) + R.NextDouble());
23+
}
24+
}
25+
26+
[Benchmark]
27+
public Polyline PolylineEncoder_Encode_List() {
28+
var encoder = new PolylineEncoder();
29+
30+
return encoder
31+
.Encode(GetList());
32+
}
1633

17-
[Benchmark(Baseline = true)]
18-
public Polyline PolylineEncoder_Encode() {
34+
[Benchmark]
35+
public Polyline PolylineEncoder_Encode_Enumerator() {
1936
var encoder = new PolylineEncoder();
2037

2138
return encoder
22-
.Encode(Coordinates);
39+
.Encode(GetEnumeration());
2340
}
2441

2542
}

0 commit comments

Comments
 (0)