protected virtual void AddByWholeStringTest(string fileName, SuffixArray.SuffixArray array)
        {
            string text = ReadText(fileName);

            text = CropText(text);

            array.AddStringAtEnd(text);

            Assert(array);
        }
        protected virtual void AddByCharTest(string fileName, SuffixArray.SuffixArray array)
        {
            string text = CropText(ReadText(fileName));

            text = CropText(text);

            for (int i = 0; i < text.Length; i++)
            {
                array.AddCharAtEnd(text[i]);
            }

            Assert(array);
        }
        protected override void AddByWholeStringTest(string fileName, SuffixArray.SuffixArray array)
        {
            string fileText = ReadText(fileName);

            for (int step = 1; step <= stepCount; step++)
            {
                string text = fileText.Substring(0, step * Length / stepCount);

                using (new Timer())
                {
                    array.AddStringAtEnd(text);
                }
            }
        }
        protected override void AddByCharTest(string fileName, SuffixArray.SuffixArray array)
        {
            string fileText = ReadText(fileName);

            for (int step = 1; step <= stepCount; step++)
            {
                string text = fileText.Substring(0, step * Length / stepCount);

                using (new Timer())
                {
                    for (int i = 0; i < text.Length; i++)
                    {
                        array.AddCharAtEnd(text[i]);
                    }
                }
            }
        }
 protected virtual void Assert(SuffixArray.SuffixArray array)
 {
     NUnit.Framework.Assert.That(SuffixArrayTest.IsSuffixArrayCorrect(array));
 }