// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // using MUnique.OpenMU.DataModel.Configuration; using MUnique.OpenMU.GameLogic.Benchmarks.Helpers; namespace MUnique.OpenMU.GameLogic.Benchmarks; /// /// Benchmarks for the . /// [MemoryDiagnoser] [ThreadingDiagnoser] [InvocationCount(100)] public class DropGeneratorBenchmarks { private DefaultDropGenerator _generator = null!; private MonsterDefinition _monster = null!; private Player _player = null!; /// /// Global setup for the benchmarks. /// [GlobalSetup] public async Task Setup() { var config = GameConfigurationTestHelper.Create(); var randomizer = RandomizerTestHelper.Create(); _generator = new DefaultDropGenerator(config, randomizer); _monster = MonsterTestHelper.Create(10, 1); _player = await PlayerTestHelper.CreatePlayerAsync(); } /// /// Benchmarks the drop generation with a single player and monster. /// /// A value task. [Benchmark] public async ValueTask GenerateItemDropsAsync() => await _generator.GenerateItemDropsAsync(_monster, 1000, _player); }