public static void Test5()
 {
     com.epl.geometry.Polygon poly = new com.epl.geometry.Polygon();
     poly.StartPath(0, 0);
     poly.LineTo(0, 1);
     poly.LineTo(1, 1);
     poly.LineTo(1, 0);
     poly.StartPath(2, 0);
     poly.LineTo(2, 1);
     poly.LineTo(3, 1);
     poly.LineTo(3, 0);
     poly.SetAttribute(com.epl.geometry.VertexDescription.Semantics.M, 1, 0, 1);
     poly.SetAttribute(com.epl.geometry.VertexDescription.Semantics.M, 3, 0, 3);
     poly.SetAttribute(com.epl.geometry.VertexDescription.Semantics.M, 6, 0, 1);
     poly.SetAttribute(com.epl.geometry.VertexDescription.Semantics.M, 5, 0, 4);
     poly.InterpolateAttributes(com.epl.geometry.VertexDescription.Semantics.M, 0, 3, 1);
     poly.InterpolateAttributes(com.epl.geometry.VertexDescription.Semantics.M, 0, 1, 3);
     poly.InterpolateAttributes(com.epl.geometry.VertexDescription.Semantics.M, 1, 2, 1);
     NUnit.Framework.Assert.IsTrue(poly.GetAttributeAsDbl(com.epl.geometry.VertexDescription.Semantics.M, 0, 0) == 2);
     NUnit.Framework.Assert.IsTrue(poly.GetAttributeAsDbl(com.epl.geometry.VertexDescription.Semantics.M, 1, 0) == 1);
     NUnit.Framework.Assert.IsTrue(poly.GetAttributeAsDbl(com.epl.geometry.VertexDescription.Semantics.M, 2, 0) == 2);
     NUnit.Framework.Assert.IsTrue(poly.GetAttributeAsDbl(com.epl.geometry.VertexDescription.Semantics.M, 3, 0) == 3);
     NUnit.Framework.Assert.IsTrue(poly.GetAttributeAsDbl(com.epl.geometry.VertexDescription.Semantics.M, 4, 0) == 3);
     NUnit.Framework.Assert.IsTrue(poly.GetAttributeAsDbl(com.epl.geometry.VertexDescription.Semantics.M, 5, 0) == 4);
     NUnit.Framework.Assert.IsTrue(poly.GetAttributeAsDbl(com.epl.geometry.VertexDescription.Semantics.M, 6, 0) == 1);
     NUnit.Framework.Assert.IsTrue(poly.GetAttributeAsDbl(com.epl.geometry.VertexDescription.Semantics.M, 7, 0) == 2);
 }