public void ToStringSerializesRectangularPointRectangleProperly() { var upperLeft = SgfPoint.Parse("aa"); var lowerRight = SgfPoint.Parse("ZZ"); var rectangle = new SgfPointRectangle(upperLeft, lowerRight); Assert.AreEqual("aa:ZZ", rectangle.ToString()); }
public void FullSizePointRectangleHasTheRightNumberOfPoints() { var upperLeft = SgfPoint.Parse("aa"); var lowerRight = SgfPoint.Parse("ZZ"); var rectangle = new SgfPointRectangle(upperLeft, lowerRight); Assert.AreEqual(2704, rectangle.Count()); }
public void SinglePointRectangleIsProperlyCreated() { var single = new SgfPoint(12, 2); var rectangle = new SgfPointRectangle(single); Assert.AreEqual(single, rectangle.UpperLeft); Assert.AreEqual(single, rectangle.LowerRight); Assert.AreEqual(1, rectangle.Count()); Assert.AreEqual(single, rectangle.First()); }
public void MultiplePointsAreProperlyEnumerated() { var upperLeft = new SgfPoint(10, 5); var lowerRight = new SgfPoint(11, 6); var rectangle = new SgfPointRectangle(upperLeft, lowerRight); var enumerated = rectangle.ToList(); Assert.AreEqual(4, enumerated.Count); Assert.AreEqual(upperLeft, enumerated.First()); Assert.AreEqual(new SgfPoint(11, 5), enumerated[1]); Assert.AreEqual(new SgfPoint(10, 6), enumerated[2]); Assert.AreEqual(lowerRight, enumerated.Last()); }
public void ComplexPointRectanglePointsCanBeCompressed() { var rectangles = new SgfPointRectangle[] { new SgfPointRectangle(SgfPoint.Parse("jd"), SgfPoint.Parse("jg")), new SgfPointRectangle(SgfPoint.Parse("kn"), SgfPoint.Parse("lq")), new SgfPointRectangle(SgfPoint.Parse("pn"), SgfPoint.Parse("pq")), }; var allPoints = rectangles.SelectMany(pr => pr.ToList()).ToArray(); SgfPointCompressor compressor = new SgfPointCompressor(allPoints); var pointRectangles = compressor.CompressPoints(); var decompressedPoints = pointRectangles.SelectMany(pr => pr.ToList()); Assert.AreEqual(0, allPoints.Except(decompressedPoints).Count()); Assert.AreEqual(0, pointRectangles.Except(rectangles).Count()); }
public void SgfPointRectangleDoesNotAcceptNonRectangleAreas() { var point = new SgfPointRectangle(new SgfPoint(1, 2), new SgfPoint(0, 0)); }
private SgfPointRectangle[] ConvertPositionsToPointRectangles(IEnumerable <Position> positions) { return(SgfPointRectangle.CompressPoints(positions.Select(p => p.ToSgfPoint(_gameInfo.BoardSize)) .ToArray())); }