Skip to content

Commit

Permalink
Add JsonResourceManager benchmark between versions
Browse files Browse the repository at this point in the history
  • Loading branch information
hishamco committed Mar 25, 2024
1 parent d13b42a commit e841fa0
Showing 1 changed file with 42 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Toolchains.CsProj;
using My.Extensions.Localization.Json.Internal;
using System.Globalization;

namespace My.Extensions.Localization.Json.Benchmarks
{
[Config(typeof(BenchmarkConfig))]
public class JsonResourceManagerTests
{
private static readonly JsonResourceManager _jsonResourceManager;
private static readonly CultureInfo _frenchCulture;

static JsonResourceManagerTests()
{
_jsonResourceManager = new JsonResourceManager("Resources\\fr-FR.json");
_frenchCulture = CultureInfo.GetCultureInfo("fr-FR");
}

[Benchmark]
public void EvaluateGetResourceSetWithoutCultureFallback()
=> _jsonResourceManager.GetResourceSet(_frenchCulture, tryParents: false);

[Benchmark]
public void EvaluateGetResourceSetWithCultureFallback()
=> _jsonResourceManager.GetResourceSet(_frenchCulture, tryParents: true);

private class BenchmarkConfig : ManualConfig
{
public BenchmarkConfig()
{
var baseJob = Job.MediumRun.WithToolchain(CsProjCoreToolchain.NetCoreApp80);

AddJob(baseJob.WithNuGet("My.Extensions.Localization.Json", "3.0.0"));
AddJob(baseJob.WithNuGet("My.Extensions.Localization.Json", "3.1.0"));
AddJob(baseJob.WithNuGet("My.Extensions.Localization.Json", "3.2.0"));
}
}
}
}

0 comments on commit e841fa0

Please sign in to comment.