Browse Source

cleanup + StyleCop

pull/34/head
Anton Firszov 9 years ago
parent
commit
768a9577f5
  1. 63
      tests/ImageSharp.Benchmarks/Image/DecodeJpegMultiple.cs

63
tests/ImageSharp.Benchmarks/Image/DecodeJpegMultiple.cs

@ -1,4 +1,9 @@
namespace ImageSharp.Benchmarks.Image
// <copyright file="DecodeJpegMultiple.cs" company="James Jackson-South">
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
// </copyright>
namespace ImageSharp.Benchmarks.Image
{
using System;
using System.Collections.Generic;
@ -13,17 +18,23 @@
public class DecodeJpegMultiple
{
private const string Folder = "../ImageSharp.Tests/TestImages/Formats/Jpg/";
private Dictionary<string, byte[]> fileNamesToBytes;
public enum JpegTestingMode
{
All,
SmallImagesOnly,
LargeImagesOnly,
CalliphoraOnly,
}
[Params(JpegTestingMode.All, JpegTestingMode.SmallImagesOnly, JpegTestingMode.LargeImagesOnly, JpegTestingMode.CalliphoraOnly)]
[Params(JpegTestingMode.All, JpegTestingMode.SmallImagesOnly, JpegTestingMode.LargeImagesOnly,
JpegTestingMode.CalliphoraOnly)]
public JpegTestingMode Mode { get; set; }
private IEnumerable<KeyValuePair<string, byte[]>> RequestedImages
@ -31,7 +42,7 @@
get
{
int thresholdInBytes = 100000;
switch (this.Mode)
{
case JpegTestingMode.All:
@ -41,38 +52,13 @@
case JpegTestingMode.LargeImagesOnly:
return this.fileNamesToBytes.Where(kv => kv.Value.Length >= thresholdInBytes);
case JpegTestingMode.CalliphoraOnly:
return new[] {
this.fileNamesToBytes.First(kv => kv.Key.ToLower().Contains("calliphora"))
};
return new[] { this.fileNamesToBytes.First(kv => kv.Key.ToLower().Contains("calliphora")) };
default:
throw new ArgumentOutOfRangeException();
}
}
}
#if BENCHMARK46
private const string Folder = "../../../ImageSharp.Tests/TestImages/Formats/Jpg/";
#else
private const string Folder = "../ImageSharp.Tests/TestImages/Formats/Jpg/";
#endif
[Setup]
public void ReadImages()
{
if (this.fileNamesToBytes != null) return;
// Decoder does not work for these images (yet?):
string[] filterWords = { "testimgari", "corrupted", "gray", "longvertical" };
var allFiles = Directory.EnumerateFiles(Folder, "*.jpg", SearchOption.AllDirectories)
.Where(fn => !filterWords.Any(w => fn.ToLower().Contains(w)))
.ToArray();
this.fileNamesToBytes = allFiles.ToDictionary(fn => fn, File.ReadAllBytes);
}
[Benchmark(Description = "DecodeJpegMultiple - ImageSharp")]
public ImageSharpSize JpegImageSharp()
{
@ -81,7 +67,7 @@
{
using (MemoryStream memoryStream = new MemoryStream(kv.Value))
{
Image image = new ImageSharp.Image(memoryStream);
Image image = new Image(memoryStream);
lastSize = new ImageSharpSize(image.Width, image.Height);
}
}
@ -92,7 +78,7 @@
[Benchmark(Baseline = true, Description = "DecodeJpegMultiple - System.Drawing")]
public Size JpegSystemDrawing()
{
Size lastSize = new System.Drawing.Size();
Size lastSize = new Size();
foreach (var kv in this.RequestedImages)
{
using (MemoryStream memoryStream = new MemoryStream(kv.Value))
@ -107,5 +93,20 @@
return lastSize;
}
[Setup]
public void ReadImages()
{
if (this.fileNamesToBytes != null) return;
// Decoder does not work for these images (yet?):
string[] filterWords = { "testimgari", "corrupted", "gray", "longvertical" };
var allFiles =
Directory.EnumerateFiles(Folder, "*.jpg", SearchOption.AllDirectories)
.Where(fn => !filterWords.Any(w => fn.ToLower().Contains(w)))
.ToArray();
this.fileNamesToBytes = allFiles.ToDictionary(fn => fn, File.ReadAllBytes);
}
}
}
Loading…
Cancel
Save