Skip to content

Commit 30d0c06

Browse files
authored
Fix absolute max bug (#6144)
1 parent 5454e2f commit 30d0c06

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/main/java/com/thealgorithms/maths/AbsoluteMax.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static int getMaxValue(int... numbers) {
1717
}
1818
int absMax = numbers[0];
1919
for (int i = 1; i < numbers.length; i++) {
20-
if (Math.abs(numbers[i]) > Math.abs(absMax)) {
20+
if (Math.abs(numbers[i]) > Math.abs(absMax) || (Math.abs(numbers[i]) == Math.abs(absMax) && numbers[i] > absMax)) {
2121
absMax = numbers[i];
2222
}
2323
}

src/test/java/com/thealgorithms/maths/AbsoluteMaxTest.java

+8
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,12 @@ void testGetMaxValue() {
1919
void testGetMaxValueWithNoArguments() {
2020
assertThrows(IllegalArgumentException.class, AbsoluteMax::getMaxValue);
2121
}
22+
23+
@Test
24+
void testGetMaxValueWithSameAbsoluteValues() {
25+
assertEquals(5, AbsoluteMax.getMaxValue(-5, 5));
26+
assertEquals(5, AbsoluteMax.getMaxValue(5, -5));
27+
assertEquals(12, AbsoluteMax.getMaxValue(-12, 9, 3, 12, 1));
28+
assertEquals(12, AbsoluteMax.getMaxValue(12, 9, 3, -12, 1));
29+
}
2230
}

0 commit comments

Comments
 (0)