Merge pull request #539 from CJ-SPT/test-mod

Intoduce test mod and restructure test suites into their own solution folder
This commit is contained in:
Cj
2025-08-09 15:26:06 -04:00
committed by GitHub
parent dd67098734
commit c16c988fda
25 changed files with 92 additions and 22 deletions
+50
View File
@@ -0,0 +1,50 @@
using BenchmarkDotNet.Attributes;
using Benchmarks.Mock;
using SPTarkov.Server.Core.Models.Spt.Templates;
using SPTarkov.Server.Core.Utils;
using SPTarkov.Server.Core.Utils.Cloners;
using SPTarkov.Server.Core.Utils.Json;
namespace Benchmarks;
[SimpleJob(warmupCount: 10, iterationCount: 10)]
[MemoryDiagnoser]
public class ClonerBenchmarks
{
private ICloner _fastCloner;
private ICloner _jsonCloner;
private ICloner _reflectionsCloner;
private Templates? _templates;
[GlobalSetup]
public void Setup()
{
var jsonUtil = new JsonUtil([new SptJsonConverterRegistrator()]);
var importer = new ImporterUtil(new MockLogger<ImporterUtil>(), new FileUtil(), jsonUtil);
var loadTask = importer.LoadRecursiveAsync<Templates>("./Assets/database/templates/");
loadTask.Wait();
_templates = loadTask.Result;
_jsonCloner = new JsonCloner(jsonUtil);
_reflectionsCloner = new ReflectionsCloner(new MockLogger<ReflectionsCloner>());
_fastCloner = new SPTarkov.Server.Core.Utils.Cloners.FastCloner();
}
[Benchmark]
public void JsonCloner()
{
_jsonCloner.Clone(_templates);
}
[Benchmark]
public void ReflectionsCloner()
{
_reflectionsCloner.Clone(_templates);
}
[Benchmark(Baseline = true)]
public void FastCloner()
{
_fastCloner.Clone(_templates);
}
}