public static void TestDifferenceAndSymmetricDifference()
		{
			com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal.GetInstance();
			com.esri.core.geometry.OperatorDifference differenceOp = (com.esri.core.geometry.OperatorDifference)engine.GetOperator(com.esri.core.geometry.Operator.Type.Difference);
			com.esri.core.geometry.SpatialReference spatialRef = com.esri.core.geometry.SpatialReference.Create(102113);
			com.esri.core.geometry.Polygon polygon1 = MakePolygon1();
			com.esri.core.geometry.Polygon polygon2 = MakePolygon2();
			com.esri.core.geometry.Polyline polyline1 = MakePolyline1();
			com.esri.core.geometry.MultiPoint multipoint1 = MakeMultiPoint1();
			com.esri.core.geometry.MultiPoint multipoint2 = MakeMultiPoint2();
			com.esri.core.geometry.MultiPoint multipoint3 = MakeMultiPoint3();
			com.esri.core.geometry.Point point1 = MakePoint1();
			com.esri.core.geometry.Point point2 = MakePoint2();
			com.esri.core.geometry.Envelope envelope1 = MakeEnvelope1();
			com.esri.core.geometry.Envelope envelope2 = MakeEnvelope2();
			com.esri.core.geometry.Envelope envelope3 = MakeEnvelope3();
			com.esri.core.geometry.Polygon outputPolygon = (com.esri.core.geometry.Polygon)differenceOp.Execute(polygon1, polygon2, spatialRef, null);
			double area = outputPolygon.CalculateArea2D();
			NUnit.Framework.Assert.IsTrue(System.Math.Abs(area - 75) <= 0.001);
			{
				com.esri.core.geometry.Point point_1 = new com.esri.core.geometry.Point(-130, 10);
				com.esri.core.geometry.Point point_2 = new com.esri.core.geometry.Point(-130, 10);
				com.esri.core.geometry.Geometry baseGeom = new com.esri.core.geometry.Point(point_1.GetX(), point_1.GetY());
				com.esri.core.geometry.Geometry comparisonGeom = new com.esri.core.geometry.Point(point_2.GetX(), point2.GetY());
				com.esri.core.geometry.SpatialReference sr = com.esri.core.geometry.SpatialReference.Create(4326);
				com.esri.core.geometry.Geometry geom = differenceOp.Execute(baseGeom, comparisonGeom, sr, null);
			}
			com.esri.core.geometry.OperatorSymmetricDifference symDifferenceOp = (com.esri.core.geometry.OperatorSymmetricDifference)engine.GetOperator(com.esri.core.geometry.Operator.Type.SymmetricDifference);
			outputPolygon = (com.esri.core.geometry.Polygon)symDifferenceOp.Execute(polygon1, polygon2, spatialRef, null);
			area = outputPolygon.CalculateArea2D();
			NUnit.Framework.Assert.IsTrue(System.Math.Abs(area - 150) <= 0.001);
			com.esri.core.geometry.Polyline outputPolyline = (com.esri.core.geometry.Polyline)differenceOp.Execute(polyline1, polygon1, spatialRef, null);
			double length = outputPolyline.CalculateLength2D();
			NUnit.Framework.Assert.IsTrue(System.Math.Abs(length * length - 50) < 0.001);
			com.esri.core.geometry.MultiPoint outputMultiPoint = (com.esri.core.geometry.MultiPoint)differenceOp.Execute(multipoint1, polygon1, spatialRef, null);
			int pointCount = outputMultiPoint.GetPointCount();
			NUnit.Framework.Assert.IsTrue(pointCount == 1);
			outputMultiPoint = (com.esri.core.geometry.MultiPoint)(symDifferenceOp.Execute(multipoint1, point1, spatialRef, null));
			pointCount = outputMultiPoint.GetPointCount();
			NUnit.Framework.Assert.IsTrue(pointCount == 2);
			outputMultiPoint = (com.esri.core.geometry.MultiPoint)(symDifferenceOp.Execute(multipoint1, point2, spatialRef, null));
			pointCount = outputMultiPoint.GetPointCount();
			NUnit.Framework.Assert.IsTrue(pointCount == 4);
			outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.Execute(multipoint1, point1, spatialRef, null));
			pointCount = outputMultiPoint.GetPointCount();
			NUnit.Framework.Assert.IsTrue(pointCount == 2);
			outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.Execute(multipoint1, point2, spatialRef, null));
			pointCount = outputMultiPoint.GetPointCount();
			NUnit.Framework.Assert.IsTrue(pointCount == 3);
			outputPolygon = (com.esri.core.geometry.Polygon)(differenceOp.Execute(polygon1, envelope1, spatialRef, null));
			area = outputPolygon.CalculateArea2D();
			NUnit.Framework.Assert.IsTrue(System.Math.Abs(area - 75) <= 0.001);
			outputPolygon = (com.esri.core.geometry.Polygon)(differenceOp.Execute(polygon2, envelope2, spatialRef, null));
			area = outputPolygon.CalculateArea2D();
			NUnit.Framework.Assert.IsTrue(System.Math.Abs(area - 75) <= 0.001);
			outputPolyline = (com.esri.core.geometry.Polyline)(differenceOp.Execute(polyline1, envelope2, spatialRef, null));
			length = outputPolyline.CalculateLength2D();
			NUnit.Framework.Assert.IsTrue(System.Math.Abs(length * length - 50) <= 0.001);
			outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.Execute(multipoint1, envelope2, spatialRef, null));
			pointCount = outputMultiPoint.GetPointCount();
			NUnit.Framework.Assert.IsTrue(pointCount == 1);
			outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.Execute(multipoint2, envelope2, spatialRef, null));
			pointCount = outputMultiPoint.GetPointCount();
			NUnit.Framework.Assert.IsTrue(pointCount == 6);
			outputMultiPoint = (com.esri.core.geometry.MultiPoint)(differenceOp.Execute(multipoint3, envelope2, spatialRef, null));
			pointCount = outputMultiPoint.GetPointCount();
			NUnit.Framework.Assert.IsTrue(pointCount == 0);
			com.esri.core.geometry.Point outputPoint = (com.esri.core.geometry.Point)(differenceOp.Execute(point1, envelope2, spatialRef, null));
			NUnit.Framework.Assert.IsTrue(!outputPoint.IsEmpty());
			outputPoint = (com.esri.core.geometry.Point)(differenceOp.Execute(point2, envelope2, spatialRef, null));
			NUnit.Framework.Assert.IsTrue(outputPoint.IsEmpty());
			outputPolygon = (com.esri.core.geometry.Polygon)(differenceOp.Execute(envelope3, envelope2, spatialRef, null));
			NUnit.Framework.Assert.IsTrue(outputPolygon != null && outputPolygon.IsEmpty());
			outputPolygon = (com.esri.core.geometry.Polygon)(symDifferenceOp.Execute(envelope3, envelope3, spatialRef, null));
			NUnit.Framework.Assert.IsTrue(outputPolygon != null && outputPolygon.IsEmpty());
			outputPoint = (com.esri.core.geometry.Point)(differenceOp.Execute(point1, polygon1, spatialRef, null));
			NUnit.Framework.Assert.IsTrue(outputPoint != null);
		}
		public virtual void TestProximity_2D_1()
		{
			com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal.GetInstance();
			com.esri.core.geometry.OperatorProximity2D proximityOp = (com.esri.core.geometry.OperatorProximity2D)engine.GetOperator(com.esri.core.geometry.Operator.Type.Proximity2D);
			com.esri.core.geometry.Point inputPoint = new com.esri.core.geometry.Point(3, 2);
			com.esri.core.geometry.Point point0 = new com.esri.core.geometry.Point(2.75, 2);
			// Point point1 = new Point(3, 2.5);
			// Point point2 = new Point(3.75, 2);
			// Point point3 = new Point(2.25, 2.5);
			// Point point4 = new Point(4, 2.25);
			// GetNearestVertices for Polygon (Native and DotNet)
			com.esri.core.geometry.Polygon polygon = MakePolygon();
			com.esri.core.geometry.Proximity2DResult[] resultArray = com.esri.core.geometry.GeometryEngine.GetNearestVertices(polygon, inputPoint, 2.0, 8);
			NUnit.Framework.Assert.IsTrue(resultArray.Length == 8);
			double lastdistance;
			double distance;
			com.esri.core.geometry.Proximity2DResult result0 = resultArray[0];
			lastdistance = result0.GetDistance();
			NUnit.Framework.Assert.IsTrue(lastdistance <= 2.0);
			com.esri.core.geometry.Proximity2DResult result1 = resultArray[1];
			distance = result1.GetDistance();
			NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
			lastdistance = distance;
			com.esri.core.geometry.Proximity2DResult result2 = resultArray[2];
			distance = result2.GetDistance();
			NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
			lastdistance = distance;
			com.esri.core.geometry.Proximity2DResult result3 = resultArray[3];
			distance = result3.GetDistance();
			NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
			lastdistance = distance;
			com.esri.core.geometry.Proximity2DResult result4 = resultArray[4];
			distance = result4.GetDistance();
			NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
			lastdistance = distance;
			com.esri.core.geometry.Proximity2DResult result5 = resultArray[5];
			distance = result5.GetDistance();
			NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
			lastdistance = distance;
			com.esri.core.geometry.Proximity2DResult result6 = resultArray[6];
			distance = result6.GetDistance();
			NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
			lastdistance = distance;
			com.esri.core.geometry.Proximity2DResult result7 = resultArray[7];
			distance = result7.GetDistance();
			NUnit.Framework.Assert.IsTrue(distance <= 2.0 && distance >= lastdistance);
			// lastdistance = distance;
			// Point[] coordinates = polygon.get.getCoordinates2D();
			// int pointCount = polygon.getPointCount();
			//
			// int hits = 0;
			// for (int i = 0; i < pointCount; i++)
			// {
			// Point ipoint = coordinates[i];
			// distance = Point::Distance(ipoint, inputPoint);
			//
			// if (distance < lastdistance)
			// hits++;
			// }
			// assertTrue(hits < 8);
			// GetNearestVertices for Point
			com.esri.core.geometry.Point point = MakePoint();
			resultArray = com.esri.core.geometry.GeometryEngine.GetNearestVertices(point, inputPoint, 1.0, 1);
			NUnit.Framework.Assert.IsTrue(resultArray.Length == 1);
			result0 = resultArray[0];
			com.esri.core.geometry.Point resultPoint0 = result0.GetCoordinate();
			NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == point.GetX() && resultPoint0.GetY() == point.GetY());
			// GetNearestVertex for Polygon
			result0 = com.esri.core.geometry.GeometryEngine.GetNearestVertex(polygon, inputPoint);
			resultPoint0 = result0.GetCoordinate();
			NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == point0.GetX() && resultPoint0.GetY() == point0.GetY());
			// GetNearestVertex for Point
			result0 = com.esri.core.geometry.GeometryEngine.GetNearestVertex(point, inputPoint);
			resultPoint0 = result0.GetCoordinate();
			NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == point.GetX() && resultPoint0.GetY() == point.GetY());
			// GetNearestCoordinate for Polygon
			com.esri.core.geometry.Polygon polygon2 = MakePolygon2();
			result0 = com.esri.core.geometry.GeometryEngine.GetNearestCoordinate(polygon2, inputPoint, true);
			resultPoint0 = result0.GetCoordinate();
			NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == inputPoint.GetX() && resultPoint0.GetY() == inputPoint.GetY());
			// GetNearestCoordinate for Polyline
			com.esri.core.geometry.Polyline polyline = MakePolyline();
			result0 = com.esri.core.geometry.GeometryEngine.GetNearestCoordinate(polyline, inputPoint, true);
			resultPoint0 = result0.GetCoordinate();
			NUnit.Framework.Assert.IsTrue(resultPoint0.GetX() == 0.0 && resultPoint0.GetY() == 2.0);
			com.esri.core.geometry.Polygon pp = new com.esri.core.geometry.Polygon();
			pp.StartPath(0, 0);
			pp.LineTo(0, 10);
			pp.LineTo(10, 10);
			pp.LineTo(10, 0);
			inputPoint.SetXY(15, -5);
			result0 = proximityOp.GetNearestCoordinate(pp, inputPoint, true, true);
			bool is_right = result0.IsRightSide();
			NUnit.Framework.Assert.IsTrue(!is_right);
		}
		public static void TestCreation()
		{
			{
				// simple create
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				NUnit.Framework.Assert.IsTrue(mpoint.GetType() == Geometry.Type.MultiPoint);
				// assertFalse(mpoint.getClass() == Polyline.class);
				NUnit.Framework.Assert.IsTrue(mpoint != null);
				NUnit.Framework.Assert.IsTrue(mpoint.GetType() == com.esri.core.geometry.Geometry.Type.MultiPoint);
				NUnit.Framework.Assert.IsTrue(mpoint.IsEmpty());
				NUnit.Framework.Assert.IsTrue(mpoint.GetPointCount() == 0);
				mpoint = null;
				NUnit.Framework.Assert.IsFalse(mpoint != null);
			}
			{
				// play with default attributes
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				SimpleTest(mpoint);
			}
			{
				// simple create 2D
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				NUnit.Framework.Assert.IsTrue(mpoint != null);
				com.esri.core.geometry.MultiPoint mpoint1 = new com.esri.core.geometry.MultiPoint();
				NUnit.Framework.Assert.IsTrue(mpoint1 != null);
				mpoint.SetEmpty();
				com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(0, 0);
				mpoint.Add(pt);
				com.esri.core.geometry.Point pt3 = mpoint.GetPoint(0);
				NUnit.Framework.Assert.IsTrue(pt3.GetX() == 0 && pt3.GetY() == 0);
				// assertFalse(mpoint->HasAttribute(VertexDescription::Semantics::Z));
				// pt3.setZ(115.0);
				mpoint.SetPoint(0, pt3);
				pt3 = mpoint.GetPoint(0);
				NUnit.Framework.Assert.IsTrue(pt3.GetX() == 0 && pt3.GetY() == 0);
			}
			{
				/* && pt3.getZ() == 115 */
				// assertTrue(mpoint->HasAttribute(VertexDescription::Semantics::Z));
				// CompareGeometryContent(mpoint, &pt, 1);
				// move 3d
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				NUnit.Framework.Assert.IsTrue(mpoint != null);
				com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(0, 0);
				mpoint.Add(pt);
				com.esri.core.geometry.Point pt3 = mpoint.GetPoint(0);
				NUnit.Framework.Assert.IsTrue(pt3.GetX() == 0 && pt3.GetY() == 0);
			}
			{
				/* && pt3.getZ() == 0 */
				// test QueryInterval
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0);
				// pt1.setZ(-1.0);
				com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 0.0);
				// pt2.setZ(1.0);
				mpoint.Add(pt1);
				mpoint.Add(pt2);
				// Envelope1D e =
				// mpoint->QueryInterval(enum_value2(VertexDescription, Semantics,
				// Z), 0);
				com.esri.core.geometry.Envelope e = new com.esri.core.geometry.Envelope();
				mpoint.QueryEnvelope(e);
			}
			{
				// assertTrue(e.get == -1.0 && e.vmax == 1.0);
				com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
			}
			{
				// int sz = sizeof(openString) / sizeof(openString[0]);
				// for (int i = 0; i < sz; i++)
				// geom.add(openString[i]);
				// CompareGeometryContent(geom, openString, sz);
				com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
			}
			{
				// int sz = sizeof(openString) / sizeof(openString[0]);
				// Point point = GCNEW Point;
				// for (int i = 0; i < sz; i++)
				// {
				// point.setXY(openString[i]);
				// geom.add(point);
				// }
				// CompareGeometryContent(geom, openString, sz);
				// Test AddPoints
				com.esri.core.geometry.MultiPoint geom = new com.esri.core.geometry.MultiPoint();
			}
			{
				// int sz = sizeof(openString) / sizeof(openString[0]);
				// geom.addPoints(openString, sz, 0, -1);
				// CompareGeometryContent((MultiVertexGeometry)geom, openString,
				// sz);
				// Test InsertPoint(Point2D)
				com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
				com.esri.core.geometry.Point pt0 = new com.esri.core.geometry.Point(0.0, 0.0);
				// pt0.setZ(-1.0);
				// pt0.setID(7);
				com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0);
				// pt1.setZ(1.0);
				// pt1.setID(11);
				com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 1.0);
				// pt2.setZ(1.0);
				// pt2.setID(13);
				mpoint.Add(pt0);
				mpoint.Add(pt1);
				mpoint.Add(pt2);
				com.esri.core.geometry.Point pt3 = new com.esri.core.geometry.Point(-11.0, -13.0);
				mpoint.Add(pt3);
				mpoint.InsertPoint(1, pt3);
				NUnit.Framework.Assert.IsTrue(mpoint.GetPointCount() == 5);
				com.esri.core.geometry.Point pt;
				pt = mpoint.GetPoint(0);
				NUnit.Framework.Assert.IsTrue(pt.GetX() == pt0.GetX() && pt.GetY() == pt0.GetY());
				/*
				* &&
				* pt.
				* getZ
				* () ==
				* pt0
				* .getZ
				* ()
				*/
				pt = mpoint.GetPoint(1);
				NUnit.Framework.Assert.IsTrue(pt.GetX() == pt3.GetX() && pt.GetY() == pt3.GetY());
				pt = mpoint.GetPoint(2);
				NUnit.Framework.Assert.IsTrue(pt.GetX() == pt1.GetX() && pt.GetY() == pt1.GetY());
				/*
				* &&
				* pt.
				* getZ
				* () ==
				* pt1
				* .getZ
				* ()
				*/
				pt = mpoint.GetPoint(3);
				NUnit.Framework.Assert.IsTrue(pt.GetX() == pt2.GetX() && pt.GetY() == pt2.GetY());
				/*
				* &&
				* pt.
				* getZ
				* () ==
				* pt2
				* .getZ
				* ()
				*/
				com.esri.core.geometry.Point point = new com.esri.core.geometry.Point();
				point.SetXY(17.0, 19.0);
				// point.setID(12);
				// point.setM(5);
				mpoint.InsertPoint(2, point);
				mpoint.Add(point);
				NUnit.Framework.Assert.IsTrue(mpoint.GetPointCount() == 7);
			}
			// double m;
			// int id;
			// pt = mpoint.getXYZ(2);
			// assertTrue(pt.x == 17.0 && pt.y == 19.0 && pt.z == defaultZ);
			// m = mpoint.getAttributeAsDbl(enum_value2(VertexDescription,
			// Semantics, M), 2, 0);
			// assertTrue(m == 5);
			// id = mpoint.getAttributeAsInt(enum_value2(VertexDescription,
			// Semantics, ID), 2, 0);
			// assertTrue(id == 23);
			//
			// pt = mpoint.getXYZ(3);
			// assertTrue(pt.x == pt1.x && pt.y == pt1.y && pt.z == pt1.z);
			// m = mpoint.getAttributeAsDbl(enum_value2(VertexDescription,
			// Semantics, M), 3, 0);
			// assertTrue(NumberUtils::IsNaN(m));
			// id = mpoint.getAttributeAsInt(enum_value2(VertexDescription,
			// Semantics, ID), 3, 0);
			// assertTrue(id == 11);
			com.esri.core.geometry.MultiPoint mpoint_1 = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point pt0_1 = new com.esri.core.geometry.Point(0.0, 0.0, -1.0);
			com.esri.core.geometry.Point pt1_1 = new com.esri.core.geometry.Point(0.0, 0.0, 1.0);
			com.esri.core.geometry.Point pt2_1 = new com.esri.core.geometry.Point(0.0, 1.0, 1.0);
			mpoint_1.Add(pt0_1);
			mpoint_1.Add(pt1_1);
			mpoint_1.Add(pt2_1);
			mpoint_1.RemovePoint(1);
			com.esri.core.geometry.Point pt_1;
			pt_1 = mpoint_1.GetPoint(0);
			NUnit.Framework.Assert.IsTrue(pt_1.GetX() == pt0_1.GetX() && pt_1.GetY() == pt0_1.GetY());
			pt_1 = mpoint_1.GetPoint(1);
			NUnit.Framework.Assert.IsTrue(pt_1.GetX() == pt2_1.GetX() && pt_1.GetY() == pt2_1.GetY());
			NUnit.Framework.Assert.IsTrue(mpoint_1.GetPointCount() == 2);
		}
		public static void TestCopy()
		{
			com.esri.core.geometry.MultiPoint mpoint = new com.esri.core.geometry.MultiPoint();
			com.esri.core.geometry.Point pt0 = new com.esri.core.geometry.Point(0.0, 0.0, -1.0);
			com.esri.core.geometry.Point pt1 = new com.esri.core.geometry.Point(0.0, 0.0, 1.0);
			com.esri.core.geometry.Point pt2 = new com.esri.core.geometry.Point(0.0, 1.0, 1.0);
			mpoint.Add(pt0);
			mpoint.Add(pt1);
			mpoint.Add(pt2);
			mpoint.RemovePoint(1);
			com.esri.core.geometry.MultiPoint mpCopy = (com.esri.core.geometry.MultiPoint)mpoint.Copy();
			NUnit.Framework.Assert.IsTrue(mpCopy.Equals(mpoint));
			com.esri.core.geometry.Point pt;
			pt = mpCopy.GetPoint(0);
			NUnit.Framework.Assert.IsTrue(pt.GetX() == pt0.GetX() && pt.GetY() == pt0.GetY());
			pt = mpCopy.GetPoint(1);
			NUnit.Framework.Assert.IsTrue(pt.GetX() == pt2.GetX() && pt.GetY() == pt2.GetY());
			NUnit.Framework.Assert.IsTrue(mpCopy.GetPointCount() == 2);
		}
		public virtual void TestInsertPoint()
		{
			com.esri.core.geometry.Polygon poly = new com.esri.core.geometry.Polygon();
			poly.StartPath(10, 1);
			poly.LineTo(15, 20);
			poly.LineTo(30, 14);
			poly.LineTo(60, 144);
			poly.StartPath(10, 1);
			poly.LineTo(15, 20);
			poly.LineTo(300, 14);
			poly.LineTo(314, 217);
			poly.LineTo(60, 144);
			poly.StartPath(10, 1);
			poly.LineTo(125, 20);
			poly.LineTo(30, 14);
			poly.LineTo(600, 144);
			com.esri.core.geometry.Point pt = new com.esri.core.geometry.Point(-33, -34);
			poly.InsertPoint(1, 1, pt);
			pt = poly.GetPoint(4);
			NUnit.Framework.Assert.IsTrue(pt.GetX() == 10 && pt.GetY() == 1);
			pt = poly.GetPoint(5);
			NUnit.Framework.Assert.IsTrue(pt.GetX() == -33 && pt.GetY() == -34);
			pt = poly.GetPoint(6);
			NUnit.Framework.Assert.IsTrue(pt.GetX() == 15 && pt.GetY() == 20);
			NUnit.Framework.Assert.IsTrue(poly.GetPointCount() == 14);
			NUnit.Framework.Assert.IsTrue(poly.GetPathSize(1) == 6);
			NUnit.Framework.Assert.IsTrue(poly.GetPathSize(2) == 4);
			NUnit.Framework.Assert.IsTrue(poly.GetPathCount() == 3);
		}
		public static void TestGetXCorrectCR185697()
		{
			com.esri.core.geometry.OperatorFactoryLocal engine = com.esri.core.geometry.OperatorFactoryLocal.GetInstance();
			com.esri.core.geometry.OperatorClip clipOp = (com.esri.core.geometry.OperatorClip)engine.GetOperator(com.esri.core.geometry.Operator.Type.Clip);
			com.esri.core.geometry.Polyline polylineCR = MakePolylineCR();
			com.esri.core.geometry.SimpleGeometryCursor polylineCursCR = new com.esri.core.geometry.SimpleGeometryCursor(polylineCR);
			com.esri.core.geometry.SpatialReference gcsWGS84 = com.esri.core.geometry.SpatialReference.Create(4326);
			com.esri.core.geometry.Envelope2D envelopeCR = new com.esri.core.geometry.Envelope2D();
			envelopeCR.xmin = -180;
			envelopeCR.xmax = 180;
			envelopeCR.ymin = -90;
			envelopeCR.ymax = 90;
			// CR
			com.esri.core.geometry.Polyline clippedPolylineCR = (com.esri.core.geometry.Polyline)clipOp.Execute(polylineCR, envelopeCR, gcsWGS84, null);
			com.esri.core.geometry.Point pointResult = new com.esri.core.geometry.Point();
			clippedPolylineCR.GetPointByVal(0, pointResult);
			NUnit.Framework.Assert.IsTrue(pointResult.GetX() == -180);
			clippedPolylineCR.GetPointByVal(1, pointResult);
			NUnit.Framework.Assert.IsTrue(pointResult.GetX() == -90);
			clippedPolylineCR.GetPointByVal(2, pointResult);
			NUnit.Framework.Assert.IsTrue(pointResult.GetX() == 0);
			clippedPolylineCR.GetPointByVal(3, pointResult);
			NUnit.Framework.Assert.IsTrue(pointResult.GetX() == 100);
			clippedPolylineCR.GetPointByVal(4, pointResult);
			NUnit.Framework.Assert.IsTrue(pointResult.GetX() == 170);
			clippedPolylineCR.GetPointByVal(5, pointResult);
			NUnit.Framework.Assert.IsTrue(pointResult.GetX() == 180);
		}