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() { new Cell(1, 2) }).GetHashCode(); var p2 = new Pattern(new List() { new Cell(2, 3) }).GetHashCode(); var p3 = new Pattern(new List() { new Cell(1, 2) }).GetHashCode(); var p4 = new Pattern(new List() { new Cell(1, 2), new Cell(2,3) }).GetHashCode(); var p5 = new Pattern(new List() { new Cell(1, 2), new Cell(2,3) }).GetHashCode(); var p6 = new Pattern(new List() { 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); }// } }