Beispiel #1
0
        protected virtual void TestCircle(double x, double y, double dist)
        {
            ICircle c   = ctx.MakeCircle(x, y, dist);
            String  msg = c.ToString();
            ICircle c2  = ctx.MakeCircle(ctx.MakePoint(x, y), dist);

            Assert.Equal(c, c2);
            Assert.Equal(c.GetHashCode(), c2.GetHashCode());

            Assert.Equal(/*msg,*/ dist > 0, c.HasArea);
            double area = c.GetArea(ctx);

            Assert.True(/*msg,*/ c.HasArea == (area > 0.0));
            IRectangle bbox = c.BoundingBox;

            Assert.Equal(/*msg,*/ dist > 0, bbox.GetArea(ctx) > 0);
            Assert.True(area <= bbox.GetArea(ctx));
            if (!ctx.IsGeo)
            {
                //if not geo then units of dist == units of x,y
                AssertEqualsRatio(msg, bbox.Height, dist * 2);
                AssertEqualsRatio(msg, bbox.Width, dist * 2);
            }
            AssertRelation(msg, SpatialRelation.CONTAINS, c, c.Center);
            AssertRelation(msg, SpatialRelation.CONTAINS, bbox, c);
        }