public void SingleVertex()
        {
            var vertices = new List <char> {
                'a'
            };

            VertexOptimization.OptimizeVertexData(vertices, out List <char> newVertices, out List <int> newIndices);

            CollectionAssert.AreEqual(vertices, newVertices);
            CollectionAssert.AreEqual(new List <int> {
                0
            }, newIndices);
        }
        public void ThreeIdenticalVertices()
        {
            var vertices = new List <char> {
                'a', 'a', 'a'
            };

            VertexOptimization.OptimizeVertexData(vertices, out List <char> newVertices, out List <int> newIndices);

            CollectionAssert.AreEqual(new List <char> {
                'a'
            }, newVertices);
            CollectionAssert.AreEqual(new List <int> {
                0, 0, 0
            }, newIndices);
        }
        public void ThreeUniqueVertices()
        {
            var vertices = new List <char> {
                'a', 'b', 'c'
            };

            VertexOptimization.OptimizeVertexData(vertices, out List <char> newVertices, out List <int> newIndices);

            CollectionAssert.AreEqual(new List <char> {
                'a', 'b', 'c'
            }, newVertices);
            CollectionAssert.AreEqual(new List <int> {
                0, 1, 2
            }, newIndices);
        }
        public void RepeatedAndUniqueVerticesWidthIndices()
        {
            var vertices = new List <char> {
                'a', 'b', 'd', 'b', 'b', 'c', 'c'
            };

            VertexOptimization.OptimizeVertexData(vertices, out List <char> newVertices, out List <int> newIndices);

            CollectionAssert.AreEqual(new List <char> {
                'a', 'b', 'd', 'c'
            }, newVertices);
            CollectionAssert.AreEqual(new List <int> {
                0, 1, 2, 1, 1, 3, 3
            }, newIndices);
        }