diff --git a/geaflow/geaflow-utils/src/main/java/org/apache/geaflow/utils/math/MathUtil.java b/geaflow/geaflow-utils/src/main/java/org/apache/geaflow/utils/math/MathUtil.java index aef6f3d13..7178ba2f5 100644 --- a/geaflow/geaflow-utils/src/main/java/org/apache/geaflow/utils/math/MathUtil.java +++ b/geaflow/geaflow-utils/src/main/java/org/apache/geaflow/utils/math/MathUtil.java @@ -184,6 +184,9 @@ private static long[] toArray(List input) { * @return The average(values) */ public static long average(long[] values) { + if (values == null || values.length == 0) { + return 0; + } //Find average double sum = 0d; for (long value : values) { @@ -198,6 +201,9 @@ public static long average(long[] values) { * @return The average(values) */ public static long average(List values) { + if (values == null || values.isEmpty()) { + return 0; + } //Find average double sum = 0d; for (long value : values) { diff --git a/geaflow/geaflow-utils/src/test/java/org/apache/geaflow/utils/math/MathUtilTest.java b/geaflow/geaflow-utils/src/test/java/org/apache/geaflow/utils/math/MathUtilTest.java index 4177d2a62..d0c91d563 100644 --- a/geaflow/geaflow-utils/src/test/java/org/apache/geaflow/utils/math/MathUtilTest.java +++ b/geaflow/geaflow-utils/src/test/java/org/apache/geaflow/utils/math/MathUtilTest.java @@ -19,6 +19,7 @@ package org.apache.geaflow.utils.math; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.testng.Assert; @@ -69,6 +70,32 @@ public void testAverage() { Assert.assertEquals(7, result); } + @Test + public void testAverageEmptyArray() { + // Test empty array returns 0 + long[] emptyArray = new long[0]; + long result = MathUtil.average(emptyArray); + Assert.assertEquals(0, result); + + // Test null array returns 0 + long[] nullArray = null; + result = MathUtil.average(nullArray); + Assert.assertEquals(0, result); + } + + @Test + public void testAverageEmptyList() { + // Test empty list returns 0 + List emptyList = new ArrayList<>(); + long result = MathUtil.average(emptyList); + Assert.assertEquals(0, result); + + // Test null list returns 0 + List nullList = null; + result = MathUtil.average(nullList); + Assert.assertEquals(0, result); + } + @Test public void testMedian() { List array = Arrays.asList(1L, 2L, 8L, 9L, 13L, 3L, 12L, 4L, 7L, 6L, 11L, 10L, 5L);