97 lines
3.2 KiB
C#
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);
|
|
}//
|
|
}
|
|
} |