public static void SubdivideFirstFace_CreatesValidMesh([ValueSource("shapeTypes")] ShapeType shape)
    {
        var pb = ShapeGenerator.CreateShape(shape);

        try
        {
            var face = pb.facesInternal.FirstOrDefault();
            Subdivision.Subdivide(pb, new Face[] { face });
            pb.ToMesh();
            pb.Refresh();
#if PB_CREATE_TEST_MESH_TEMPLATES
            TestUtility.SaveAssetTemplate(pb.mesh, pb.name);
#endif
            TestUtility.AssertMeshAttributesValid(pb.mesh);
            var template = TestUtility.GetAssetTemplate <Mesh>(pb.name);
            Assert.IsNotNull(template);
            TestUtility.AssertMeshesAreEqual(template, pb.mesh);
        }
        finally
        {
            UObject.DestroyImmediate(pb.gameObject);
        }
    }