public static void BasicTests() { var nMesh = 0; foreach (var g in AllGeometries) { Console.WriteLine($"Testing mesh {nMesh++}"); ValidateGeometry(g); //ValidateGeometry(g.ToTriMesh()); } Assert.AreEqual(3, XYTriangle.NumCornersPerFace); Assert.AreEqual(1, XYTriangle.NumFaces); 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[] { 0, 1, 2 }, XYTriangle.Indices.ToArray()); Assert.AreEqual(3, XYQuad.NumCornersPerFace); Assert.AreEqual(2, XYQuad.NumFaces); Assert.AreEqual(4, XYQuad.Vertices.Count); Assert.AreEqual(6, XYQuad.Indices.Count); Assert.IsTrue(XYQuad.Planar()); Assert.AreEqual(new[] { 0, 1, 2, 0, 2, 3 }, XYQuad.Indices.ToArray()); Assert.AreEqual(3, XYQuadFromFunc.NumCornersPerFace); Assert.AreEqual(2, XYQuadFromFunc.NumFaces); Assert.AreEqual(4, XYQuadFromFunc.Vertices.Count); Assert.AreEqual(6, XYQuadFromFunc.Indices.Count); Assert.AreEqual(3, XYQuad2x2.NumCornersPerFace); Assert.AreEqual(8, XYQuad2x2.NumFaces); Assert.AreEqual(9, XYQuad2x2.Vertices.Count); Assert.AreEqual(24, XYQuad2x2.Indices.Count); Assert.AreEqual(3, Tetrahedron.NumCornersPerFace); Assert.AreEqual(4, Tetrahedron.NumFaces); Assert.AreEqual(4, Tetrahedron.Vertices.Count); Assert.AreEqual(12, Tetrahedron.Indices.Count); Assert.AreEqual(TestTetrahedronIndices, Tetrahedron.Indices.ToArray()); Assert.AreEqual(3, XYTriangleTwice.NumCornersPerFace); Assert.AreEqual(2, XYTriangleTwice.NumFaces); 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[] { 0, 1, 2, 3, 4, 5 }, XYTriangleTwice.Indices.ToArray()); }