mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
refactor: Enhance docs, code, add tests in Median (#6751)
Co-authored-by: a <alexanderklmn@gmail.com>
This commit is contained in:
@@ -5,40 +5,153 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class MedianTest {
|
||||
/**
|
||||
* Test class for {@link Median}.
|
||||
* Tests various scenarios including edge cases, odd/even length arrays,
|
||||
* negative values, and unsorted inputs.
|
||||
*/
|
||||
class MedianTest {
|
||||
|
||||
@Test
|
||||
void medianSingleValue() {
|
||||
void testMedianSingleValue() {
|
||||
int[] arr = {0};
|
||||
assertEquals(0, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void medianTwoValues() {
|
||||
void testMedianSinglePositiveValue() {
|
||||
int[] arr = {42};
|
||||
assertEquals(42, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianSingleNegativeValue() {
|
||||
int[] arr = {-15};
|
||||
assertEquals(-15, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianTwoValues() {
|
||||
int[] arr = {1, 2};
|
||||
assertEquals(1.5, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void medianThreeValues() {
|
||||
void testMedianTwoIdenticalValues() {
|
||||
int[] arr = {5, 5};
|
||||
assertEquals(5.0, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianThreeValues() {
|
||||
int[] arr = {1, 2, 3};
|
||||
assertEquals(2, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void medianDecimalValueReturn() {
|
||||
void testMedianThreeUnsortedValues() {
|
||||
int[] arr = {3, 1, 2};
|
||||
assertEquals(2, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianDecimalValueReturn() {
|
||||
int[] arr = {1, 2, 3, 4, 5, 6, 8, 9};
|
||||
assertEquals(4.5, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void medianNegativeValues() {
|
||||
void testMedianNegativeValues() {
|
||||
int[] arr = {-27, -16, -7, -4, -2, -1};
|
||||
assertEquals(-5.5, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void medianEmptyArrayThrows() {
|
||||
void testMedianMixedPositiveAndNegativeValues() {
|
||||
int[] arr = {-10, -5, 0, 5, 10};
|
||||
assertEquals(0, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianMixedUnsortedValues() {
|
||||
int[] arr = {10, -5, 0, 5, -10};
|
||||
assertEquals(0, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianLargeOddArray() {
|
||||
int[] arr = {9, 7, 5, 3, 1, 2, 4, 6, 8};
|
||||
assertEquals(5, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianLargeEvenArray() {
|
||||
int[] arr = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
|
||||
assertEquals(55.0, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianAllSameValues() {
|
||||
int[] arr = {7, 7, 7, 7, 7};
|
||||
assertEquals(7.0, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianWithZeros() {
|
||||
int[] arr = {0, 0, 0, 0, 0};
|
||||
assertEquals(0.0, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianAlreadySorted() {
|
||||
int[] arr = {1, 2, 3, 4, 5};
|
||||
assertEquals(3, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianReverseSorted() {
|
||||
int[] arr = {5, 4, 3, 2, 1};
|
||||
assertEquals(3, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianWithDuplicates() {
|
||||
int[] arr = {1, 2, 2, 3, 3, 3, 4};
|
||||
assertEquals(3, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianEmptyArrayThrows() {
|
||||
int[] arr = {};
|
||||
assertThrows(IllegalArgumentException.class, () -> Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianNullArrayThrows() {
|
||||
assertThrows(IllegalArgumentException.class, () -> Median.median(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianExtremeValues() {
|
||||
int[] arr = {Integer.MAX_VALUE, Integer.MIN_VALUE};
|
||||
assertEquals(-0.5, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianTwoNegativeValues() {
|
||||
int[] arr = {-10, -20};
|
||||
assertEquals(-15.0, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianFourValuesEven() {
|
||||
int[] arr = {1, 2, 3, 4};
|
||||
assertEquals(2.5, Median.median(arr));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMedianFiveValuesOdd() {
|
||||
int[] arr = {10, 20, 30, 40, 50};
|
||||
assertEquals(30.0, Median.median(arr));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user