using NUnit.Framework; namespace nqueens.tests { [TestFixture] public class NBoardTests { [Test] public void GetConflicts_SameRow() { var nBoard = new NBoard(new [] {0,0,0,0}); Assert.That(nBoard.GetConflictCount(0), Is.EqualTo(3)); Assert.That(nBoard.GetConflictCount(3), Is.EqualTo(3)); } [Test] public void GetConflicts_SameRow_AfterUpdates() { var nBoard = new NBoard(new [] {0,0,0,0}); nBoard.UpdateRow(0,2); Assert.That(nBoard.GetConflictCount(1), Is.EqualTo(2)); nBoard.UpdateRow(2,1); Assert.That(nBoard.GetConflictCount(0), Is.EqualTo(0)); nBoard.UpdateRow(0,0); nBoard.UpdateRow(1,1); nBoard.UpdateRow(2,2); nBoard.UpdateRow(3,3); Assert.That(nBoard.GetConflictCount(0), Is.EqualTo(3)); Assert.That(nBoard.GetConflictCount(1), Is.EqualTo(3)); Assert.That(nBoard.GetConflictCount(2), Is.EqualTo(3)); Assert.That(nBoard.GetConflictCount(3), Is.EqualTo(3)); nBoard.UpdateRow(3,2); Assert.That(nBoard.GetConflictCount(0), Is.EqualTo(2)); Assert.That(nBoard.GetConflictCount(1), Is.EqualTo(2)); Assert.That(nBoard.GetConflictCount(2), Is.EqualTo(3)); Assert.That(nBoard.GetConflictCount(3), Is.EqualTo(1)); } [Test] public void GetConflicts_OneNonConflictRow() { var nBoard = new NBoard(new [] {2,0,0,0}); Assert.That(nBoard.GetConflictCount(1), Is.EqualTo(2)); } [Test] public void GetConflicts_NoConflicts() { var nBoard = new NBoard(new [] {2,0,1,0}); Assert.That(nBoard.GetConflictCount(0), Is.EqualTo(0)); } [Test] public void GetConflicts_AllDiagonalConflict() { var nBoard = new NBoard(new [] {0,1,2,3}); Assert.That(nBoard.GetConflictCount(2), Is.EqualTo(3)); } [Test] public void GetConflicts_AllOppositeDiagonalConflict() { var nBoard = new NBoard(new [] {3,2,1,0}); Assert.That(nBoard.GetConflictCount(3), Is.EqualTo(3)); } [Test] public void GetConflicts_TwoOppositeDiagonalConflict() { var nBoard = new NBoard(new [] {0,1,2,2}); Assert.That(nBoard.GetConflictCount(0), Is.EqualTo(2)); } } }