public static void BasicTests() { foreach (var g in AllGeometries) { ValidateGeometry(g); ValidateGeometry(g.ToTriMesh()); } Assert.AreEqual(3, XYTriangle.PointsPerFace); Assert.AreEqual(1, XYTriangle.FaceCount()); Assert.AreEqual(3, XYTriangle.Vertices.Count); Assert.AreEqual(3, XYTriangle.Indices.Count); Assert.AreEqual(1, XYTriangle.Triangles().Count); Assert.AreEqual(0.5, XYTriangle.Area(), SmallTolerance); Assert.IsTrue(XYTriangle.Planar()); Assert.AreEqual(new[] { 3 }, XYTriangle.FaceSizes.ToArray()); Assert.AreEqual(new[] { 0 }, XYTriangle.FaceIndices.ToArray()); Assert.AreEqual(new[] { 0, 1, 2 }, XYTriangle.Indices.ToArray()); Assert.AreEqual(4, XYQuad.PointsPerFace); Assert.AreEqual(1, XYQuad.FaceCount()); Assert.AreEqual(4, XYQuad.Vertices.Count); Assert.AreEqual(4, XYQuad.Indices.Count); Assert.AreEqual(2, XYQuad.Triangles().Count); Assert.AreEqual(1, XYQuad.Area(), SmallTolerance); Assert.IsTrue(XYQuad.Planar()); Assert.AreEqual(new[] { 4 }, XYQuad.FaceSizes.ToArray()); Assert.AreEqual(new[] { 0 }, XYQuad.FaceIndices.ToArray()); Assert.AreEqual(new[] { 0, 1, 2, 3 }, XYQuad.Indices.ToArray()); Assert.AreEqual(4, XYQuadFromFunc.PointsPerFace); Assert.AreEqual(1, XYQuadFromFunc.FaceCount()); Assert.AreEqual(4, XYQuadFromFunc.Vertices.Count); Assert.AreEqual(4, XYQuadFromFunc.Indices.Count); Assert.AreEqual(2, XYQuadFromFunc.Triangles().Count); Assert.AreEqual(1, XYQuadFromFunc.Area(), SmallTolerance); Assert.IsTrue(XYQuadFromFunc.Planar()); Assert.AreEqual(new[] { 4 }, XYQuadFromFunc.FaceSizes.ToArray()); Assert.AreEqual(new[] { 0 }, XYQuadFromFunc.FaceIndices.ToArray()); //Assert.AreEqual(new[] { 0, 1, 2, 3 }, XYQuadFromFunc.Indices.ToArray()); Assert.AreEqual(4, XYQuad2x2.PointsPerFace); Assert.AreEqual(4, XYQuad2x2.FaceCount()); Assert.AreEqual(9, XYQuad2x2.Vertices.Count); Assert.AreEqual(16, XYQuad2x2.Indices.Count); Assert.AreEqual(8, XYQuad2x2.Triangles().Count); Assert.AreEqual(1, XYQuad2x2.Area(), SmallTolerance); Assert.IsTrue(XYQuad2x2.Planar()); Assert.AreEqual(new[] { 4, 4, 4, 4 }, XYQuad2x2.FaceSizes.ToArray()); Assert.AreEqual(new[] { 0, 4, 8, 12 }, XYQuad2x2.FaceIndices.ToArray()); //Assert.AreEqual(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, XYQuad2x2.Indices.ToArray()); Assert.AreEqual(3, Tetrahedron.PointsPerFace); Assert.AreEqual(4, Tetrahedron.FaceCount()); Assert.AreEqual(4, Tetrahedron.Vertices.Count); Assert.AreEqual(12, Tetrahedron.Indices.Count); Assert.AreEqual(new[] { 3, 3, 3, 3 }, Tetrahedron.FaceSizes.ToArray()); Assert.AreEqual(new[] { 0, 3, 6, 9 }, Tetrahedron.FaceIndices.ToArray()); Assert.AreEqual(TestTetrahedronIndices, Tetrahedron.Indices.ToArray()); Assert.AreEqual(3, XYTriangleTwice.PointsPerFace); Assert.AreEqual(2, XYTriangleTwice.FaceCount()); Assert.AreEqual(6, XYTriangleTwice.Vertices.Count); Assert.AreEqual(6, XYTriangleTwice.Indices.Count); Assert.AreEqual(2, XYTriangleTwice.Triangles().Count); Assert.AreEqual(1.0, XYTriangleTwice.Area(), SmallTolerance); Assert.IsTrue(XYTriangleTwice.Planar()); Assert.AreEqual(new[] { 3, 3 }, XYTriangleTwice.FaceSizes.ToArray()); Assert.AreEqual(new[] { 0, 3, }, XYTriangleTwice.FaceIndices.ToArray()); Assert.AreEqual(new[] { 0, 1, 2, 3, 4, 5 }, XYTriangleTwice.Indices.ToArray()); }
static void Measure(IGeometry geo) { Console.WriteLine(geo); Console.WriteLine(geo.Area()); Console.WriteLine(geo.Perim()); }