Files
Shogi/Benchmarking/Benchmarks.cs
2021-02-26 17:11:08 -06:00

72 lines
1.7 KiB
C#

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using Gameboard.ShogiUI.BoardState;
using System;
using System.Numerics;
namespace Benchmarking
{
public class Benchmarks
{
private readonly Move[] moves;
public Benchmarks()
{
moves = new[]
{
// P1 Rook
new Move { From = new Vector2(7, 1), To = new Vector2(4, 1) },
// P2 Gold
new Move { From = new Vector2(3, 8), To = new Vector2(2, 7) },
// P1 Pawn
new Move { From = new Vector2(4, 2), To = new Vector2(4, 3) },
// P2 other Gold
new Move { From = new Vector2(5, 8), To = new Vector2(6, 7) },
// P1 same Pawn
new Move { From = new Vector2(4, 3), To = new Vector2(4, 4) },
// P2 Pawn
new Move { From = new Vector2(4, 6), To = new Vector2(4, 5) },
// P1 Pawn takes P2 Pawn
new Move { From = new Vector2(4, 4), To = new Vector2(4, 5) },
// P2 King
new Move { From = new Vector2(4, 8), To = new Vector2(4, 7) },
// P1 Pawn promotes
new Move { From = new Vector2(4, 5), To = new Vector2(4, 6), IsPromotion = true },
// P2 King retreat
new Move { From = new Vector2(4, 7), To = new Vector2(4, 8) },
};
}
[Benchmark]
public void One()
{
var board = new ShogiBoard();
foreach (var move in moves)
{
board.Move(move);
}
}
[Benchmark]
public void Two()
{
var board = new ShogiBoard();
foreach (var move in moves)
{
//board.TryMove2(move);
}
}
}
public class Program
{
public static void Main(string[] args)
{
//BenchmarkRunner.Run<Benchmarks>();
Console.WriteLine("Done");
}
}
}