75 lines
2.0 KiB
C#
75 lines
2.0 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|