using System; using System.Linq; using GameOfLife; using GameOfLife.Entities; using GameOfLife.IO; using NUnit.Framework; namespace GameOfLifeTests { public class ApgcodeDecoderTests { [Test] public void ConvertToUintTest() { Assert.AreEqual(0, ApgcodeDecoder.ConvertToUint('0')); Assert.AreEqual(9, ApgcodeDecoder.ConvertToUint('9')); Assert.AreEqual(10, ApgcodeDecoder.ConvertToUint('a')); Assert.AreEqual(11, ApgcodeDecoder.ConvertToUint('b')); } [Test] public void ExpandAbbreviationsTests() { Assert.AreEqual("00", ApgcodeDecoder.ExpandAbbreviations("w")); Assert.AreEqual("000", ApgcodeDecoder.ExpandAbbreviations("x")); Assert.AreEqual("00000", ApgcodeDecoder.ExpandAbbreviations("wx")); Assert.AreEqual("0000", ApgcodeDecoder.ExpandAbbreviations("y0")); Assert.AreEqual("00000", ApgcodeDecoder.ExpandAbbreviations("y1")); Assert.AreEqual(new string('0', 39), ApgcodeDecoder.ExpandAbbreviations("yz")); } [Test] public void Headerless_DecodeTests() { var apgcodeDecoder = new ApgcodeDecoder("0ca178b96z69d1d96"); foreach (var line in apgcodeDecoder.Pattern.ToGrid()) { Console.WriteLine(line); } } [Test] public void Xs_DecodeTests() { var apgcodeDecoder = new ApgcodeDecoder("xs4_33"); Assert.AreEqual(4, apgcodeDecoder.Pattern.Count); Assert.AreEqual(PatternType.StillLife, apgcodeDecoder.Metadata.Type); Assert.AreEqual("4", apgcodeDecoder.Metadata.Comments.First()); } } }