Example #1
0
        public void Median_Test1()
        {
            var sol = new RunningMedian();
            var res = sol.Solve(new List <int> {
                94455, 20555, 20535, 53125
            }).ToList();

            Assert.Equal(new List <double> {
                94455, 57505, 20555, 36840
            }, res);
        }
Example #2
0
        public void Median_Test0()
        {
            var sol = new RunningMedian();
            var res = sol.Solve(new List <int> {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
            }).ToList();

            Assert.Equal(new List <double> {
                1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5
            }, res);
        }
Example #3
0
        public void WhenMaxHeapCountMoreThanMinHeapCount_And_CurrentNumberIsBiggerThanCurrentMedian()
        {
            // Arrange
            var numbers = new int[] { 1, 2 };
            var median  = new RunningMedian();

            // Act
            median.Find(numbers);

            // Assert
            Assert.Equal(2, median.minHeap[0]);
            Assert.Equal(1, median.maxHeap[0]);
        }
Example #4
0
        public void WhenMaxHeapCountEqualToMinHeapCount_And_CurrentNumberIsSmallerThanCurrentMedian()
        {
            // Arrange
            var numbers = new int[] { 10, 12, 3 };
            var median  = new RunningMedian();

            // Act
            median.Find(numbers);

            // Assert
            Assert.Equal(10, median.maxHeap[0]);
            Assert.Equal(3, median.maxHeap[1]);
            Assert.Equal(12, median.minHeap[0]);
        }
Example #5
0
        public void FindMedian4()
        {
            // Arrange
            var numbers = new int[] { 10, 20, 30 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(10, results[0]);
            Assert.Equal(15, results[1]);
            Assert.Equal(20, results[2]);
        }
Example #6
0
        public void FindMedian2()
        {
            // Arrange
            var numbers = new int[] { 7, 3, 5, 2 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(7, results[0]);
            Assert.Equal(5, results[1]);
            Assert.Equal(5, results[2]);
            Assert.Equal(4, results[3]);
        }
Example #7
0
        public void CalculateMedian()
        {
            // Arrange
            var maxHeap = new List <int> {
                4
            };
            var minHeap = new List <int> {
                6
            };

            // Act
            var median = new RunningMedian().CalculateMedian(maxHeap, minHeap);

            // Assert
            Assert.Equal(5, median);
        }
Example #8
0
        public void FindMedian7()
        {
            // Arrange
            var numbers = new int[] { 3, 10, 5, 20, 7, 6 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(3, results[0]);
            Assert.Equal(6.5, results[1]);
            Assert.Equal(5, results[2]);
            Assert.Equal(7.5, results[3]);
            Assert.Equal(7, results[4]);
            Assert.Equal(6.5, results[5]);
        }
Example #9
0
        public void FindMedian6()
        {
            // Arrange
            var numbers = new int[] { 32, 22, 55, 9, 35, 36 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(32, results[0]);
            Assert.Equal(27, results[1]);
            Assert.Equal(32, results[2]);
            Assert.Equal(27, results[3]);
            Assert.Equal(32, results[4]);
            Assert.Equal(33.5, results[5]);
        }
Example #10
0
        public void FindMedian()
        {
            // Arrange
            var numbers = new int[] { 12, 4, 5, 3, 8, 7 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(12.0, results[0]);
            Assert.Equal(8.0, results[1]);
            Assert.Equal(5.0, results[2]);
            Assert.Equal(4.5, results[3]);
            Assert.Equal(5.0, results[4]);
            Assert.Equal(6.0, results[5]);
        }
Example #11
0
        public void FindMedian8()
        {
            // Arrange
            var numbers = new int[] { 20, 1, 11, 19, 21, 17, 6 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(20, results[0]);
            Assert.Equal(10.5, results[1]);
            Assert.Equal(11, results[2]);
            Assert.Equal(15, results[3]);
            Assert.Equal(19, results[4]);
            Assert.Equal(18, results[5]);
            Assert.Equal(17, results[6]);
        }
Example #12
0
        public void FindMedian5()
        {
            // Arrange
            var numbers = new int[] { 5, 8, 1, 4, 2, 8, 5, 5 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(5, results[0]);
            Assert.Equal(6.5, results[1]);
            Assert.Equal(5, results[2]);
            Assert.Equal(4.5, results[3]);
            Assert.Equal(4, results[4]);
            Assert.Equal(4.5, results[5]);
            Assert.Equal(5, results[6]);
            Assert.Equal(5, results[7]);
        }
Example #13
0
        public void FindMedian10()
        {
            // Arrange
            var numbers = new int[] { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(10, results[0]);
            Assert.Equal(9.5, results[1]);
            Assert.Equal(9, results[2]);
            Assert.Equal(8.5, results[3]);
            Assert.Equal(8, results[4]);
            Assert.Equal(7.5, results[5]);
            Assert.Equal(7, results[6]);
            Assert.Equal(6.5, results[7]);
            Assert.Equal(6, results[8]);
            Assert.Equal(5.5, results[9]);
        }
Example #14
0
        public void FindMedian9()
        {
            // Arrange
            var numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            var median  = new RunningMedian();

            // Act
            var results = median.Find(numbers).ToList();

            // Assert
            Assert.Equal(1, results[0]);
            Assert.Equal(1.5, results[1]);
            Assert.Equal(2, results[2]);
            Assert.Equal(2.5, results[3]);
            Assert.Equal(3, results[4]);
            Assert.Equal(3.5, results[5]);
            Assert.Equal(4, results[6]);
            Assert.Equal(4.5, results[7]);
            Assert.Equal(5, results[8]);
            Assert.Equal(5.5, results[9]);
        }