Files
discrete-optimization-coursera/puzzle/nqueens.tests/NBoardTests.cs
T
2025-08-03 20:24:38 -07:00

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));
}
}
}