예제 #1
0
        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());
        }
예제 #2
0
        public void FullSizePointRectangleHasTheRightNumberOfPoints()
        {
            var upperLeft  = SgfPoint.Parse("aa");
            var lowerRight = SgfPoint.Parse("ZZ");
            var rectangle  = new SgfPointRectangle(upperLeft, lowerRight);

            Assert.AreEqual(2704, rectangle.Count());
        }
예제 #3
0
        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());
        }
예제 #4
0
        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());
        }
예제 #5
0
        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());
        }
예제 #6
0
 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()));
 }