Exemple #1
0
        public void test()
        {
            var testFilePath      = "D:\\TestFile.txt";
            var sortingParameters = new SortingParameters()
            {
                NumberOfTemporaryFiles = 2
            };
            var fileParameters = new FileParameters()
            {
                BlockSize = 8, SourceFileName = testFilePath,
                TemporaryBufferFileDirectory = "D:\\", Separator = " "
            };
            var sorter = new PolyPhaseSorting(sortingParameters, fileParameters);

            sorter.Distribution.Distribute();
            sorter.Merger.Merge();
            sorter.RestoreOriginalFileName();
            var actualFileContent = File.ReadAllText(testFilePath);

            Assert.IsTrue(true);
            Console.WriteLine("Statistics:\nRead accesses:\t{0}\nWrite acesses:\t{1}\nSteps:\t{2}",
                              sorter.ReadAccesses, sorter.WriteAccesses, sorter.Steps);

            File.Delete(testFilePath);
        }
Exemple #2
0
        public void sortAlreadySortedfile()
        {
            var testFilePath           = "D:\\FileToSort.txt";
            var unsortedFileLinesArray = new string[] { "1", "2", "3", "4", "5" };
            var sortedFileContent      = string.Join(Environment.NewLine, unsortedFileLinesArray) + Environment.NewLine;

            File.WriteAllText(testFilePath, string.Join(Environment.NewLine, unsortedFileLinesArray) + Environment.NewLine);
            var sortingParameters = new SortingParameters()
            {
                NumberOfTemporaryFiles = 2
            };
            var fileParameters = new FileParameters()
            {
                BlockSize = 4, SourceFileName = testFilePath,
                TemporaryBufferFileDirectory = "D:\\", Separator = " "
            };
            var sorter = new PolyPhaseSorting(sortingParameters, fileParameters);

            sorter.Distribution.Distribute();
            sorter.Merger.Merge();
            sorter.RestoreOriginalFileName();
            var actualFileContent = File.ReadAllText(testFilePath);

            Assert.AreEqual(sortedFileContent, actualFileContent);
            Console.WriteLine("Statistics:\nRead accesses:\t{0}\nWrite acesses:\t{1}\nSteps:\t{2}",
                              sorter.ReadAccesses, sorter.WriteAccesses, sorter.Steps);

            File.Delete(testFilePath);
        }
        private void createNewSorter()
        {
            TextBox_FileToSort.Text = filePath;
            linesIfChoosenFile      = Utilities.getNumberOfLinesInFile(filePath);
            var fileParameters = new FileParameters()
            {
                BlockSize      = int.Parse(TextBox_BlockSize.Text), Separator = " ",
                SourceFileName = filePath,
                TemporaryBufferFileDirectory = TextBox_BufferLocation.Text
            };
            var sortingParameters = new SortingParameters()
            {
                NumberOfTemporaryFiles = int.Parse(TextBox_NumberOfTemporaryBuffers.Text)
            };

            Sorter = new PolyPhaseSorting(sortingParameters, fileParameters);
            Sorter.Distribution.Distribute();
        }