public static void TestCustomInitialize()
{
File a = File.A;
File b = File.B;
File c = File.C;
File d = File.D;
File e = File.E;
File f = File.F;
File g = File.G;
File h = File.H;
Piece[][] board = new Piece[8][]
{
new[] { rb, o, bb, qb, kb, bb, nb, rb },
new[] { pb, pb, pb, pb, pb, pb, pb, pb },
new[] { o, o, nb, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, o, pw, o, o, o },
new[] { o, o, o, o, o, o, o, o },
new[] { pw, pw, pw, pw, o, pw, pw, pw },
new[] { rw, nw, bw, qw, kw, bw, nw, rw }
};
ChessGame cb = new ChessGame(board, Player.White);
Assert.AreEqual(rw, cb.GetPieceAt(a, 1));
Assert.AreEqual(nw, cb.GetPieceAt(b, 1));
Assert.AreEqual(bw, cb.GetPieceAt(c, 1));
Assert.AreEqual(qw, cb.GetPieceAt(d, 1));
Assert.AreEqual(kw, cb.GetPieceAt(e, 1));
Assert.AreEqual(bw, cb.GetPieceAt(f, 1));
Assert.AreEqual(nw, cb.GetPieceAt(g, 1));
Assert.AreEqual(rw, cb.GetPieceAt(h, 1));
Assert.AreEqual(pw, cb.GetPieceAt(a, 2));
Assert.AreEqual(pw, cb.GetPieceAt(b, 2));
Assert.AreEqual(pw, cb.GetPieceAt(c, 2));
Assert.AreEqual(pw, cb.GetPieceAt(d, 2));
Assert.AreEqual(o, cb.GetPieceAt(e, 2));
Assert.AreEqual(pw, cb.GetPieceAt(f, 2));
Assert.AreEqual(pw, cb.GetPieceAt(g, 2));
Assert.AreEqual(pw, cb.GetPieceAt(h, 2));
Assert.AreEqual(o, cb.GetPieceAt(a, 3));
Assert.AreEqual(o, cb.GetPieceAt(b, 3));
Assert.AreEqual(o, cb.GetPieceAt(c, 3));
Assert.AreEqual(o, cb.GetPieceAt(d, 3));
Assert.AreEqual(o, cb.GetPieceAt(e, 3));
Assert.AreEqual(o, cb.GetPieceAt(f, 3));
Assert.AreEqual(o, cb.GetPieceAt(g, 3));
Assert.AreEqual(o, cb.GetPieceAt(h, 3));
Assert.AreEqual(o, cb.GetPieceAt(a, 4));
Assert.AreEqual(o, cb.GetPieceAt(b, 4));
Assert.AreEqual(o, cb.GetPieceAt(c, 4));
Assert.AreEqual(o, cb.GetPieceAt(d, 4));
Assert.AreEqual(pw, cb.GetPieceAt(e, 4));
Assert.AreEqual(o, cb.GetPieceAt(f, 4));
Assert.AreEqual(o, cb.GetPieceAt(g, 4));
Assert.AreEqual(o, cb.GetPieceAt(h, 4));
Assert.AreEqual(o, cb.GetPieceAt(a, 5));
Assert.AreEqual(o, cb.GetPieceAt(b, 5));
Assert.AreEqual(o, cb.GetPieceAt(c, 5));
Assert.AreEqual(o, cb.GetPieceAt(d, 5));
Assert.AreEqual(o, cb.GetPieceAt(e, 5));
Assert.AreEqual(o, cb.GetPieceAt(f, 5));
Assert.AreEqual(o, cb.GetPieceAt(g, 5));
Assert.AreEqual(o, cb.GetPieceAt(h, 5));
Assert.AreEqual(o, cb.GetPieceAt(a, 6));
Assert.AreEqual(o, cb.GetPieceAt(b, 6));
Assert.AreEqual(cb.GetPieceAt(c, 6), nb);
Assert.AreEqual(o, cb.GetPieceAt(d, 6));
Assert.AreEqual(o, cb.GetPieceAt(e, 6));
Assert.AreEqual(o, cb.GetPieceAt(f, 6));
Assert.AreEqual(o, cb.GetPieceAt(g, 6));
Assert.AreEqual(o, cb.GetPieceAt(h, 6));
Assert.AreEqual(pb, cb.GetPieceAt(a, 7));
Assert.AreEqual(pb, cb.GetPieceAt(b, 7));
Assert.AreEqual(pb, cb.GetPieceAt(c, 7));
Assert.AreEqual(pb, cb.GetPieceAt(d, 7));
Assert.AreEqual(pb, cb.GetPieceAt(e, 7));
Assert.AreEqual(pb, cb.GetPieceAt(f, 7));
Assert.AreEqual(pb, cb.GetPieceAt(g, 7));
Assert.AreEqual(pb, cb.GetPieceAt(h, 7));
Assert.AreEqual(rb, cb.GetPieceAt(a, 8));
Assert.AreEqual(o, cb.GetPieceAt(b, 8));
Assert.AreEqual(bb, cb.GetPieceAt(c, 8));
Assert.AreEqual(qb, cb.GetPieceAt(d, 8));
Assert.AreEqual(kb, cb.GetPieceAt(e, 8));
Assert.AreEqual(bb, cb.GetPieceAt(f, 8));
Assert.AreEqual(nb, cb.GetPieceAt(g, 8));
Assert.AreEqual(rb, cb.GetPieceAt(h, 8));
}