Files
2026-05-07 03:23:56 +00:00

97 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
using GameOfLife;
using GameOfLife.Entities;
namespace GameOfLifeTests
{
public class CellTests
{
private readonly PatternTestData _patternTestData = new PatternTestData();
[SetUp]
public void Setup()
{
}
[Test]
public void Equals_True_Test()
{
Assert.True(Util.Equals(_patternTestData.CornerPattern, _patternTestData.CornerCopy));
}
[Test]
public void Equals_False_Test()
{
Assert.False(Util.Equals(_patternTestData.CornerPattern, _patternTestData.SquarePattern));
}
[Test]
public void Rotate_Test()
{
var rotate = _patternTestData.CornerPattern.Rotate();
Console.WriteLine(_patternTestData.CornerPattern);
Console.WriteLine(rotate);
Assert.Contains(-_patternTestData.CornerPattern[0].Item2, rotate.Select(r => r.Item1).ToList());
Assert.Contains(_patternTestData.CornerPattern[0].Item1, rotate.Select(r => r.Item2).ToList());
Assert.Contains(-_patternTestData.CornerPattern[0].Item2, rotate.Select(r => r.Item1).ToList());
Assert.Contains(-_patternTestData.CornerPattern[0].Item2, rotate.Select(r => r.Item1).ToList());
}
[Test]
public void Rotate_Circle_Test()
{
var rotate = _patternTestData.CornerPattern.Rotate(4);
Assert.AreEqual(_patternTestData.CornerPattern, rotate);
}
[Test]
public void GetFirstPoint_Test()
{
var fp = _patternTestData.CornerPattern.GetFirstRowFirstCell();
Assert.True(fp.Item1 == 2);
Assert.True(fp.Item2 == 1);
}
[Test]
public void Subtract_Test()
{
var fp = _patternTestData.CornerPattern[0] - new Cell(1,2);
Assert.True(fp.Item1 == 1);
Assert.True(fp.Item2 == -1);
}
[Test]
public void Hash_Test()
{
var h1 = new Cell(1, 2).GetHashCode();
var h2 = new Cell(2, 3).GetHashCode();
var h3 = new Cell(1, 2).GetHashCode();
Assert.AreEqual(h1, h3);
Assert.AreNotEqual(h1, h2);
}
}
public class PatternTests
{
[Test]
public void GetHashCode_Tests()
{
var p1 = new Pattern(new List<Cell>() { new Cell(1, 2) }).GetHashCode();
var p2 = new Pattern(new List<Cell>() { new Cell(2, 3) }).GetHashCode();
var p3 = new Pattern(new List<Cell>() { new Cell(1, 2) }).GetHashCode();
var p4 = new Pattern(new List<Cell>() { new Cell(1, 2), new Cell(2,3) }).GetHashCode();
var p5 = new Pattern(new List<Cell>() { new Cell(1, 2), new Cell(2,3) }).GetHashCode();
var p6 = new Pattern(new List<Cell>() { new Cell(2, 3), new Cell(1, 2) }).GetHashCode();
Assert.AreEqual(p1, p3);
Assert.AreNotEqual(p1, p2);
Assert.AreNotEqual(p1, p4);
Assert.AreEqual(p4, p5);
Assert.AreEqual(p5, p6);
}//
}
}