init
This commit is contained in:
124
tests/GeneEncodeDecodeTests.cs
Normal file
124
tests/GeneEncodeDecodeTests.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace InverseOfLife.Test;
|
||||
[TestFixture]
|
||||
public class GeneEncodeDecodeTests
|
||||
{
|
||||
[Test]
|
||||
public void EncodeAndDecode_ShouldHandleResolution1Correctly()
|
||||
{
|
||||
int resolution = 1;
|
||||
int width = 8;
|
||||
int height = 8;
|
||||
var board = new Board(width, height);
|
||||
board.Toggle(0, 0);
|
||||
board.Toggle(7, 7);
|
||||
board.Toggle(3, 5);
|
||||
var gene = new Gene(resolution, board);
|
||||
var restoredBoard = gene.Restore(width, height);
|
||||
|
||||
Assert.IsTrue(restoredBoard.Lives.Contains((0, 0)), "Cell (0, 0) should be alive.");
|
||||
Assert.IsTrue(restoredBoard.Lives.Contains((7, 7)), "Cell (7, 7) should be alive.");
|
||||
Assert.IsTrue(restoredBoard.Lives.Contains((3, 5)), "Cell (3, 5) should be alive.");
|
||||
Assert.That(restoredBoard.Lives, Is.EquivalentTo(board.Lives), "Restored board should match the original board.");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EncodeAndDecode_ShouldHandleResolution2Correctly()
|
||||
{
|
||||
int resolution = 2;
|
||||
int width = 4;
|
||||
int height = 4;
|
||||
var board = new Board(width, height);
|
||||
board.Toggle(0, 0);
|
||||
board.Toggle(3, 3);
|
||||
board.Toggle(2, 1);
|
||||
board.Toggle(1, 2);
|
||||
|
||||
var gene = new Gene(resolution, board);
|
||||
var restoredBoard = gene.Restore(width, height);
|
||||
|
||||
Assert.IsTrue(restoredBoard.Lives.Contains((0, 0)), "Cell (0, 0) should be alive.");
|
||||
Assert.IsTrue(restoredBoard.Lives.Contains((3, 3)), "Cell (3, 3) should be alive.");
|
||||
Assert.IsTrue(restoredBoard.Lives.Contains((2, 1)), "Cell (2, 1) should be alive.");
|
||||
Assert.IsTrue(restoredBoard.Lives.Contains((1, 2)), "Cell (1, 2) should be alive.");
|
||||
Assert.That(restoredBoard.Lives, Is.EquivalentTo(board.Lives), "Restored board should match the original board.");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EncodeAndDecode_ShouldHandleEmptyBoardResolution1()
|
||||
{
|
||||
int resolution = 1;
|
||||
int width = 8;
|
||||
int height = 8;
|
||||
var board = new Board(width, height);
|
||||
|
||||
var gene = new Gene(resolution, board);
|
||||
var restoredBoard = gene.Restore(width, height);
|
||||
|
||||
Assert.IsEmpty(restoredBoard.Lives, "Restored board should be empty.");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EncodeAndDecode_ShouldHandleEmptyBoardResolution2()
|
||||
{
|
||||
int resolution = 2;
|
||||
int width = 4;
|
||||
int height = 4;
|
||||
var board = new Board(width, height);
|
||||
|
||||
var gene = new Gene(resolution, board);
|
||||
var restoredBoard = gene.Restore(width, height);
|
||||
|
||||
Assert.IsEmpty(restoredBoard.Lives, "Restored board should be empty.");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EncodeAndDecode_ShouldHandleFullBoardResolution1()
|
||||
{
|
||||
int resolution = 1;
|
||||
int width = 8;
|
||||
int height = 8;
|
||||
var board = new Board(width, height);
|
||||
for (int x = 0; x < width; x++)
|
||||
{
|
||||
for (int y = 0; y < height; y++)
|
||||
{
|
||||
board.Toggle(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
var gene = new Gene(resolution, board);
|
||||
foreach (byte b in gene.RiboseSequence)
|
||||
{
|
||||
Console.Write($"{b} ");
|
||||
Console.WriteLine();
|
||||
}
|
||||
var restoredBoard = gene.Restore(width, height);
|
||||
Console.WriteLine("-");
|
||||
Console.WriteLine(restoredBoard.ToString());
|
||||
Console.WriteLine("=");
|
||||
Assert.That(restoredBoard.Lives, Is.EquivalentTo(board.Lives), "Restored board should match the original full board.");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EncodeAndDecode_ShouldHandleFullBoardResolution2()
|
||||
{
|
||||
int resolution = 2;
|
||||
int width = 4;
|
||||
int height = 4;
|
||||
var board = new Board(width, height);
|
||||
for (int x = 0; x < width; x++)
|
||||
{
|
||||
for (int y = 0; y < height; y++)
|
||||
{
|
||||
board.Toggle(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
var gene = new Gene(resolution, board);
|
||||
var restoredBoard = gene.Restore(width, height);
|
||||
Console.WriteLine(restoredBoard.ToString());
|
||||
Assert.That(restoredBoard.Lives, Is.EquivalentTo(board.Lives), "Restored board should match the original full board.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user