public void Sort_10ItemDataSet_ComparisonCountsMatches()
        {
            //Arrange
            var fileLocation = @"..\..\TestData\input_dgrcode_06_10.txt";

            if (!File.Exists(fileLocation))
            {
                Assert.Fail("File not found");
            }
            var lines = File.ReadAllLines(fileLocation);
            var unsortedCollection = lines.Select(line => Convert.ToInt32(line)).ToList();
            IPivotPositionFinder <int> pivotPositionFinder = new GetMedianOfThreeGetRandomIndexAsPivotImpl <int>();
            var sorter             = new QuickSortImpl <int>(pivotPositionFinder);
            var expectedComparison = 21;
            //Act
            var sortedResultActual = sorter.Sort(unsortedCollection);

            //Assert
            Assert.AreEqual(expectedComparison, sorter.ComparisonCount);
        }
        public void Sort_UsingMedianOfThreeGetRandomIndexAsPivot_ExpectedComparisonCountMatches()
        {
            //Arrange
            var fileLocation = @"..\..\TestData\QuickSort.txt";

            if (!File.Exists(fileLocation))
            {
                Assert.Fail("File not found");
            }
            var lines = File.ReadAllLines(fileLocation);
            var unsortedCollection = lines.Select(line => Convert.ToInt32(line)).ToList();
            IPivotPositionFinder <int> pivotPositionFinder = new GetMedianOfThreeGetRandomIndexAsPivotImpl <int>();
            var sorter             = new QuickSortImpl <int>(pivotPositionFinder);
            var expectedComparison = 138382;

            //Act
            var sortedResultActual = sorter.Sort(unsortedCollection);

            //Assert
            Assert.AreEqual(expectedComparison, sorter.ComparisonCount);
            CollectionAssert.AreEqual(unsortedCollection.OrderBy(item => item).ToList(), sortedResultActual.ToList());
        }