util: fix ArrayUtil.reverse
authorSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 30 Oct 2015 16:00:32 +0000 (19:00 +0300)
committerSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 30 Oct 2015 16:00:32 +0000 (19:00 +0300)
platform/util/src/com/intellij/util/ArrayUtil.java
platform/util/testSrc/com/intellij/util/ArrayUtilTest.java

index 9f1d56cefa25de995efb08e249f1792894c52b51..f0abaedc7a9443fa3c49e0cbb4b6b4abdb12d2a4 100644 (file)
@@ -642,7 +642,7 @@ public class ArrayUtil extends ArrayUtilRt {
   }
 
   public static void reverse(@NotNull char[] array) {
-    for (int i = 0; i < array.length; i++) {
+    for (int i = 0; i < array.length / 2; i++) {
       swap(array, array.length - i - 1, i);
     }
   }
index 023da87c83a0ba57fe7b89d9f047e855b36f444a..0deb89fdf9c411ee43f089db91acbfe4bf26d5be 100644 (file)
@@ -17,6 +17,8 @@ package com.intellij.util;
 
 import junit.framework.TestCase;
 
+import java.util.Arrays;
+
 /**
  * @author Sergey.Malenkov
  */
@@ -67,4 +69,26 @@ public class ArrayUtilTest extends TestCase {
       assertEquals(expected[i], actual[i]);
     }
   }
+
+  private static void assertArrayEquals(char[] expected, char[] actual) {
+    assertTrue(Arrays.equals(expected, actual));
+  }
+
+  public void testReverse() throws Exception {
+    char[] a = new char[]{};
+    ArrayUtil.reverse(a);
+    assertArrayEquals(new char[]{}, a);
+
+    a = new char[]{'1'};
+    ArrayUtil.reverse(a);
+    assertArrayEquals(new char[]{'1'}, a);
+
+    a = new char[]{'1', '2', '3', '4'};
+    ArrayUtil.reverse(a);
+    assertArrayEquals(new char[]{'4', '3', '2', '1'}, a);
+
+    a = new char[]{'1', '2', '3', '4', '5'};
+    ArrayUtil.reverse(a);
+    assertArrayEquals(new char[]{'5', '4', '3', '2', '1'}, a);
+  }
 }