public void GameTooShortTest(TestFixture fixture, Game game, IPgnManager manager) { "GIVEN a game with less than 15 moves".x(() => { fixture = new TestFixture(); game = new Game(new Metadata(), fixture.PgnWithLessThan15Moves); fixture.FakeReader.ReadGame(Arg.Invoke(game)); }); "AND the game is not duplicated".x(() => { fixture.FakeRepo.IsDuplicated(game).Returns(false); }); "WHEN the game is processed".x(() => { manager = new PgnManager(fixture.FakeReader, fixture.FakeWriter, fixture.FakeRepo, fixture.FakeLogger); manager.ExecuteCheckingForDuplicates(g => { }); }); "THEN the game is not written".x(() => { fixture.FakeWriter.DidNotReceive().WriteGame(Arg.Is(game)); }); "AND the game is not stored in the database".x(() => { fixture.FakeRepo.DidNotReceive().Save(Arg.Is(game)); }); }
public void WrongResultNotationTest(IReadPgnFiles reader, IWritePgnFiles writer) { "GIVEN a single file with wrong result notation".x(() => { reader = new PgnReader(TestFixture.FolderWithOneFileWrongNotation); writer = new PgnWriter(TestFixture.PathResultedPgn); }); "WHEN the file is read".x(() => { var manager = new PgnManager(reader, writer, TestFixture.FakeRepo, TestFixture.FakeLogger); manager.ExecuteCheckingForDuplicates(g => { }); }); "THEN the new file created contains two games".x(() => { TestFixture.ContentOfResultedPgn.ShouldBe(TestFixture.ContentOfWrongResultGames); }); }
public void OneGameTest(IReadPgnFiles reader, IWritePgnFiles writer) { "GIVEN a single file with one game".x(() => { reader = new PgnReader(TestFixture.FolderWithOneFileOneGame); writer = new PgnWriter(TestFixture.PathResultedPgn); }); "WHEN the file is read".x(() => { var manager = new PgnManager(reader, writer, TestFixture.FakeRepo, TestFixture.FakeLogger); manager.ExecuteCheckingForDuplicates(g => { }); }); "THEN the new file created contains one game".x(() => { TestFixture.ContentOfResultedPgn.ShouldBe(TestFixture.ContentOfExpectedOneGame); }); }
private void convertPGNToInfinityChessDatabaseicdToolStripMenuItem_Click(object sender, EventArgs e) { pgn = new PgnManager(this.Game); pgn.OnProgressBarInitialized += new PgnManager.ProgressBarInitHandler(pgn_OnProgressBarInitialized); pgn.OnProgressChanged += new PgnManager.ProgressChangedEventHandler(pgn_OnProgressChanged); pgn.OnProgressWorkCompleted += new PgnManager.ProgressWorkCompletedHandler(pgn_OnProgressWorkCompleted); fileName = txtFile.Text; if (isPgnToIcbConversion) { pgn.isPgnToIcbConversion = true; UFile.Delete(fileName.Replace(".pgn", ".icb")); } else { UFile.Delete(fileName.Replace(".pgn", ".icd")); } pgn.ConvertPgnToIcd(fileName); isPgnToIcbConversion = false; }
public void TwoNestedFilesTest(IReadPgnFiles reader, IWritePgnFiles writer) { "GIVEN a folder with two nested files where each file contains one game".x(() => { reader = new PgnReader(TestFixture.FolderWithNestedFiles); writer = new PgnWriter(TestFixture.PathResultedPgn); }); "WHEN the files are read".x(() => { var manager = new PgnManager(reader, writer, TestFixture.FakeRepo, TestFixture.FakeLogger); manager.ExecuteCheckingForDuplicates(g => { }); }); "THEN the new file created contains two games".x(() => { TestFixture.ContentOfResultedPgn.ShouldBe(TestFixture.ContentOfExpectedTwoGames); }); }
static void Main(string[] args) { _start = DateTime.UtcNow; var reader = new PgnReader(@"C:\Chess\PNGSources"); var writer = new PgnWriter(@"C:\Chess\Databases\db2018.pgn"); var repo = new GameRepository(@"Data Source=LENOVO-PC;Initial Catalog=PlayGrandmasters;Integrated Security=True"); var logger = new Logger(@"C:\Chess\Databases\logs"); var manager = new PgnManager(reader, writer, repo, logger); int counter = 0; manager.ExecuteWithoutCheckingForDuplicates(game => { counter++; string moves; if (game.Moves.Length >= 40) { moves = game.Moves.Substring(game.Moves.Length - 40); } else { moves = game.Moves; } Console.WriteLine($"{counter} = {game.Hash}: {moves}"); }); _end = DateTime.UtcNow; Console.WriteLine($"Duration: {_end - _start}"); Console.Read(); }