diff --git a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java
index 8fef1de..6bb5ada 100644
--- a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderFixedOrderTests.java
@@ -43,10 +43,10 @@
         super.setUp();
     }
 
-    private static MoreKeysKeyboardParams createParams(int numKeys, int columnNum,
-            int coordXInParnet) {
+    private static MoreKeysKeyboardParams createParams(final int numKeys, final int columnNum,
+            final int coordXInParent) {
         final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
-        params.setParameters(numKeys, columnNum, WIDTH, HEIGHT, coordXInParnet, KEYBOARD_WIDTH,
+        params.setParameters(numKeys, columnNum, WIDTH, HEIGHT, coordXInParent, KEYBOARD_WIDTH,
                 /* isFixedOrderColumn */true, /* dividerWidth */0);
         return params;
     }
@@ -55,7 +55,7 @@
         MoreKeysKeyboardParams params = null;
         try {
             final int fixColumns = KEYBOARD_WIDTH / WIDTH;
-            params = createParams(10, fixColumns + 1, HEIGHT);
+            params = createParams(fixColumns + 1, fixColumns + 1, HEIGHT);
             fail("Should throw IllegalArgumentException");
         } catch (IllegalArgumentException e) {
             // Too small keyboard to hold more keys keyboard.
diff --git a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderTests.java b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderTests.java
index ee4c72a..99da481 100644
--- a/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/MoreKeysKeyboardBuilderTests.java
@@ -43,10 +43,10 @@
         super.setUp();
     }
 
-    private static MoreKeysKeyboardParams createParams(int numKeys, int maxColumns,
-            int coordXInParnet) {
+    private static MoreKeysKeyboardParams createParams(final int numKeys, final int maxColumns,
+            final int coordXInParent) {
         final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
-        params.setParameters(numKeys, maxColumns, WIDTH, HEIGHT, coordXInParnet, KEYBOARD_WIDTH,
+        params.setParameters(numKeys, maxColumns, WIDTH, HEIGHT, coordXInParent, KEYBOARD_WIDTH,
                 /* isFixedOrderColumn */false, /* dividerWidth */0);
         return params;
     }
@@ -55,7 +55,7 @@
         MoreKeysKeyboardParams params = null;
         try {
             final int maxColumns = KEYBOARD_WIDTH / WIDTH;
-            params = createParams(10, maxColumns + 1, HEIGHT);
+            params = createParams(maxColumns + 1, maxColumns + 1, HEIGHT);
             fail("Should throw IllegalArgumentException");
         } catch (IllegalArgumentException e) {
             // Too small keyboard to hold more keys keyboard.
