Home | History | Annotate | Download | only in keyboard
      1 /*
      2  * Copyright (C) 2012 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
      5  * use this file except in compliance with the License. You may obtain a copy of
      6  * the License at
      7  *
      8  * http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     13  * License for the specific language governing permissions and limitations under
     14  * the License.
     15  */
     16 
     17 package com.android.inputmethod.keyboard;
     18 
     19 import android.test.AndroidTestCase;
     20 
     21 import com.android.inputmethod.keyboard.MoreKeysKeyboard.MoreKeysKeyboardParams;
     22 
     23 public class MoreKeysKeyboardBuilderFixedOrderTests extends AndroidTestCase {
     24     private static final int WIDTH = 10;
     25     private static final int HEIGHT = 10;
     26 
     27     private static final int KEYBOARD_WIDTH = WIDTH * 10;
     28     private static final int XPOS_L0 = WIDTH * 0 + WIDTH / 2;
     29     private static final int XPOS_L1 = WIDTH * 1 + WIDTH / 2;
     30     private static final int XPOS_L2 = WIDTH * 2 + WIDTH / 2;
     31     private static final int XPOS_L3 = WIDTH * 3 + WIDTH / 2;
     32     private static final int XPOS_M0 = WIDTH * 4 + WIDTH / 2;
     33     private static final int XPOS_M1 = WIDTH * 5 + WIDTH / 2;
     34     private static final int XPOS_R3 = WIDTH * 6 + WIDTH / 2;
     35     private static final int XPOS_R2 = WIDTH * 7 + WIDTH / 2;
     36     private static final int XPOS_R1 = WIDTH * 8 + WIDTH / 2;
     37     private static final int XPOS_R0 = WIDTH * 9 + WIDTH / 2;
     38 
     39     @Override
     40     protected void setUp() throws Exception {
     41         super.setUp();
     42     }
     43 
     44     private static MoreKeysKeyboardParams createParams(int numKeys, int columnNum,
     45             int coordXInParnet) {
     46         final MoreKeysKeyboardParams params = new MoreKeysKeyboardParams();
     47         params.setParameters(numKeys, columnNum, WIDTH, HEIGHT, coordXInParnet, KEYBOARD_WIDTH,
     48                 /* isFixedOrderColumn */true, /* dividerWidth */0);
     49         return params;
     50     }
     51 
     52     public void testLayoutError() {
     53         MoreKeysKeyboardParams params = null;
     54         try {
     55             final int fixColumns = KEYBOARD_WIDTH / WIDTH;
     56             params = createParams(10, fixColumns + 1, HEIGHT);
     57             fail("Should throw IllegalArgumentException");
     58         } catch (IllegalArgumentException e) {
     59             // Too small keyboard to hold more keys keyboard.
     60         }
     61         assertNull("Too small keyboard to hold more keys keyboard", params);
     62     }
     63 
     64     // More keys keyboard layout test.
     65     // "[n]" represents n-th key position in more keys keyboard.
     66     // "<m>" is the default key.
     67 
     68     // <1>
     69     public void testLayout1KeyFix5M0() {
     70         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_M0);
     71         assertEquals("1 key fix 5 M0 columns", 1, params.mNumColumns);
     72         assertEquals("1 key fix 5 M0 rows", 1, params.mNumRows);
     73         assertEquals("1 key fix 5 M0 left", 0, params.mLeftKeys);
     74         assertEquals("1 key fix 5 M0 right", 1, params.mRightKeys);
     75         assertEquals("1 key fix 5 M0 <1>", 0, params.getColumnPos(0));
     76         assertEquals("1 key fix 5 M0 adjust", 0, params.mTopRowAdjustment);
     77         assertEquals("1 key fix 5 M0 default", WIDTH * 0, params.getDefaultKeyCoordX());
     78     }
     79 
     80     // |<1>
     81     public void testLayout1KeyFix5L0() {
     82         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L0);
     83         assertEquals("1 key fix 5 L0 columns", 1, params.mNumColumns);
     84         assertEquals("1 key fix 5 L0 rows", 1, params.mNumRows);
     85         assertEquals("1 key fix 5 L0 left", 0, params.mLeftKeys);
     86         assertEquals("1 key fix 5 L0 right", 1, params.mRightKeys);
     87         assertEquals("1 key fix 5 L0 <1>", 0, params.getColumnPos(0));
     88         assertEquals("1 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
     89         assertEquals("1 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
     90     }
     91 
     92     // |___ <1>
     93     public void testLayout1KeyFix5L1() {
     94         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L1);
     95         assertEquals("1 key fix 5 L1 columns", 1, params.mNumColumns);
     96         assertEquals("1 key fix 5 L1 rows", 1, params.mNumRows);
     97         assertEquals("1 key fix 5 L1 left", 0, params.mLeftKeys);
     98         assertEquals("1 key fix 5 L1 right", 1, params.mRightKeys);
     99         assertEquals("1 key fix 5 L1 <1>", 0, params.getColumnPos(0));
    100         assertEquals("1 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
    101         assertEquals("1 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    102     }
    103 
    104     // |___ ___ <1>
    105     public void testLayout1KeyFix5L2() {
    106         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_L2);
    107         assertEquals("1 key fix 5 L2 columns", 1, params.mNumColumns);
    108         assertEquals("1 key fix 5 L2 rows", 1, params.mNumRows);
    109         assertEquals("1 key fix 5 L2 left", 0, params.mLeftKeys);
    110         assertEquals("1 key fix 5 L2 right", 1, params.mRightKeys);
    111         assertEquals("1 key fix 5 L2 <1>", 0, params.getColumnPos(0));
    112         assertEquals("1 key fix 5 L2 adjust", 0, params.mTopRowAdjustment);
    113         assertEquals("1 key fix 5 L2 default", WIDTH * 0, params.getDefaultKeyCoordX());
    114     }
    115 
    116     // <1>|
    117     public void testLayout1KeyFix5R0() {
    118         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R0);
    119         assertEquals("1 key fix 5 R0 columns", 1, params.mNumColumns);
    120         assertEquals("1 key fix 5 R0 rows", 1, params.mNumRows);
    121         assertEquals("1 key fix 5 R0 left", 0, params.mLeftKeys);
    122         assertEquals("1 key fix 5 R0 right", 1, params.mRightKeys);
    123         assertEquals("1 key fix 5 R0 <1>", 0, params.getColumnPos(0));
    124         assertEquals("1 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
    125         assertEquals("1 key fix 5 R0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    126     }
    127 
    128     // <1> ___|
    129     public void testLayout1KeyFix5R1() {
    130         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R1);
    131         assertEquals("1 key fix 5 R1 columns", 1, params.mNumColumns);
    132         assertEquals("1 key fix 5 R1 rows", 1, params.mNumRows);
    133         assertEquals("1 key fix 5 R1 left", 0, params.mLeftKeys);
    134         assertEquals("1 key fix 5 R1 right", 1, params.mRightKeys);
    135         assertEquals("1 key fix 5 R1 <1>", 0, params.getColumnPos(0));
    136         assertEquals("1 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
    137         assertEquals("1 key fix 5 R1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    138     }
    139 
    140     // <1> ___ ___|
    141     public void testLayout1KeyFix5R2() {
    142         MoreKeysKeyboardParams params = createParams(1, 5, XPOS_R2);
    143         assertEquals("1 key fix 5 R2 columns", 1, params.mNumColumns);
    144         assertEquals("1 key fix 5 R2 rows", 1, params.mNumRows);
    145         assertEquals("1 key fix 5 R2 left", 0, params.mLeftKeys);
    146         assertEquals("1 key fix 5 R2 right", 1, params.mRightKeys);
    147         assertEquals("1 key fix 5 R2 <1>", 0, params.getColumnPos(0));
    148         assertEquals("1 key fix 5 R2 adjust", 0, params.mTopRowAdjustment);
    149         assertEquals("1 key fix 5 R2 default", WIDTH * 0, params.getDefaultKeyCoordX());
    150     }
    151 
    152     // <1> [2]
    153     public void testLayout2KeyFix5M0() {
    154         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_M0);
    155         assertEquals("2 key fix 5 M0 columns", 2, params.mNumColumns);
    156         assertEquals("2 key fix 5 M0 rows", 1, params.mNumRows);
    157         assertEquals("2 key fix 5 M0 left", 0, params.mLeftKeys);
    158         assertEquals("2 key fix 5 M0 right", 2, params.mRightKeys);
    159         assertEquals("2 key fix 5 M0 <1>", 0, params.getColumnPos(0));
    160         assertEquals("2 key fix 5 M0 [2]", 1, params.getColumnPos(1));
    161         assertEquals("2 key fix 5 M0 adjust", 0, params.mTopRowAdjustment);
    162         assertEquals("2 key fix 5 M0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    163     }
    164 
    165     // |<1> [2]
    166     public void testLayout2KeyFix5L0() {
    167         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L0);
    168         assertEquals("2 key fix 5 L0 columns", 2, params.mNumColumns);
    169         assertEquals("2 key fix 5 L0 rows", 1, params.mNumRows);
    170         assertEquals("2 key fix 5 L0 left", 0, params.mLeftKeys);
    171         assertEquals("2 key fix 5 L0 right", 2, params.mRightKeys);
    172         assertEquals("2 key fix 5 L0 <1>", 0, params.getColumnPos(0));
    173         assertEquals("2 key fix 5 L0 [2]", 1, params.getColumnPos(1));
    174         assertEquals("2 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
    175         assertEquals("2 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    176     }
    177 
    178     // |___ <1> [2]
    179     public void testLayout2KeyFix5L1() {
    180         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L1);
    181         assertEquals("2 key fix 5 L1 columns", 2, params.mNumColumns);
    182         assertEquals("2 key fix 5 L1 rows", 1, params.mNumRows);
    183         assertEquals("2 key fix 5 L1 left", 0, params.mLeftKeys);
    184         assertEquals("2 key fix 5 L1 right", 2, params.mRightKeys);
    185         assertEquals("2 key fix 5 L1 <1>", 0, params.getColumnPos(0));
    186         assertEquals("2 key fix 5 L1 [2]", 1, params.getColumnPos(1));
    187         assertEquals("2 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
    188         assertEquals("2 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    189     }
    190 
    191     // |___ ___ <1> [2]
    192     public void testLayout2KeyFix5L2() {
    193         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_L2);
    194         assertEquals("2 key fix 5 L2 columns", 2, params.mNumColumns);
    195         assertEquals("2 key fix 5 L2 rows", 1, params.mNumRows);
    196         assertEquals("2 key fix 5 L2 left", 0, params.mLeftKeys);
    197         assertEquals("2 key fix 5 L2 right", 2, params.mRightKeys);
    198         assertEquals("2 key fix 5 L2 <1>", 0, params.getColumnPos(0));
    199         assertEquals("2 key fix 5 L2 [2]", 1, params.getColumnPos(1));
    200         assertEquals("2 key fix 5 L2 adjust", 0, params.mTopRowAdjustment);
    201         assertEquals("2 key fix 5 L2 default", WIDTH * 0, params.getDefaultKeyCoordX());
    202     }
    203 
    204     // [1] <2>|
    205     public void testLayout2KeyFix5R0() {
    206         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R0);
    207         assertEquals("2 key fix 5 R0 columns", 2, params.mNumColumns);
    208         assertEquals("2 key fix 5 R0 rows", 1, params.mNumRows);
    209         assertEquals("2 key fix 5 R0 left", 1, params.mLeftKeys);
    210         assertEquals("2 key fix 5 R0 right", 1, params.mRightKeys);
    211         assertEquals("2 key fix 5 R0 [1]", -1, params.getColumnPos(0));
    212         assertEquals("2 key fix 5 R0 <2>", 0, params.getColumnPos(1));
    213         assertEquals("2 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
    214         assertEquals("2 key fix 5 R0 default", WIDTH * 1, params.getDefaultKeyCoordX());
    215     }
    216 
    217     // [1] <2> ___|
    218     public void testLayout2KeyFix5R1() {
    219         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R1);
    220         assertEquals("2 key fix 5 R1 columns", 2, params.mNumColumns);
    221         assertEquals("2 key fix 5 R1 rows", 1, params.mNumRows);
    222         assertEquals("2 key fix 5 R1 left", 1, params.mLeftKeys);
    223         assertEquals("2 key fix 5 R1 right", 1, params.mRightKeys);
    224         assertEquals("2 key fix 5 R1 [1]", -1, params.getColumnPos(0));
    225         assertEquals("2 key fix 5 R1 <2>", 0, params.getColumnPos(1));
    226         assertEquals("2 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
    227         assertEquals("2 key fix 5 R1 default", WIDTH * 1, params.getDefaultKeyCoordX());
    228     }
    229 
    230     // <1> [2] ___|
    231     public void testLayout2KeyFix5R2() {
    232         MoreKeysKeyboardParams params = createParams(2, 5, XPOS_R2);
    233         assertEquals("2 key fix 5 R2 columns", 2, params.mNumColumns);
    234         assertEquals("2 key fix 5 R2 rows", 1, params.mNumRows);
    235         assertEquals("2 key fix 5 R2 left", 0, params.mLeftKeys);
    236         assertEquals("2 key fix 5 R2 right", 2, params.mRightKeys);
    237         assertEquals("2 key fix 5 R2 <1>", 0, params.getColumnPos(0));
    238         assertEquals("2 key fix 5 R2 [2]", 1, params.getColumnPos(1));
    239         assertEquals("2 key fix 5 R2 adjust", 0, params.mTopRowAdjustment);
    240         assertEquals("2 key fix 5 R2 default", WIDTH * 0, params.getDefaultKeyCoordX());
    241     }
    242 
    243     // [3]
    244     // <1> [2]
    245     public void testLayout3KeyFix2M0() {
    246         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_M0);
    247         assertEquals("3 key fix 2 M0 columns", 2, params.mNumColumns);
    248         assertEquals("3 key fix 2 M0 rows", 2, params.mNumRows);
    249         assertEquals("3 key fix 2 M0 left", 0, params.mLeftKeys);
    250         assertEquals("3 key fix 2 M0 right", 2, params.mRightKeys);
    251         assertEquals("3 key fix 2 M0 <1>", 0, params.getColumnPos(0));
    252         assertEquals("3 key fix 2 M0 [2]", 1, params.getColumnPos(1));
    253         assertEquals("3 key fix 2 M0 [3]", 0, params.getColumnPos(2));
    254         assertEquals("3 key fix 2 M0 adjust", 0, params.mTopRowAdjustment);
    255         assertEquals("3 key fix 2 M0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    256     }
    257 
    258     // |[3]
    259     // |<1> [2]
    260     public void testLayout3KeyFix2L0() {
    261         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L0);
    262         assertEquals("3 key fix 2 L0 columns", 2, params.mNumColumns);
    263         assertEquals("3 key fix 2 L0 rows", 2, params.mNumRows);
    264         assertEquals("3 key fix 2 L0 left", 0, params.mLeftKeys);
    265         assertEquals("3 key fix 2 L0 right", 2, params.mRightKeys);
    266         assertEquals("3 key fix 2 L0 <1>", 0, params.getColumnPos(0));
    267         assertEquals("3 key fix 2 L0 [2]", 1, params.getColumnPos(1));
    268         assertEquals("3 key fix 2 L0 [3]", 0, params.getColumnPos(2));
    269         assertEquals("3 key fix 2 L0 adjust", 0, params.mTopRowAdjustment);
    270         assertEquals("3 key fix 2 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    271     }
    272 
    273     // |___ [3]
    274     // |___ <1> [2]
    275     public void testLayout3KeyFix2L1() {
    276         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L1);
    277         assertEquals("3 key fix 2 L1 columns", 2, params.mNumColumns);
    278         assertEquals("3 key fix 2 L1 rows", 2, params.mNumRows);
    279         assertEquals("3 key fix 2 L1 left", 0, params.mLeftKeys);
    280         assertEquals("3 key fix 2 L1 right", 2, params.mRightKeys);
    281         assertEquals("3 key fix 2 L1 <1>", 0, params.getColumnPos(0));
    282         assertEquals("3 key fix 2 L1 [2]", 1, params.getColumnPos(1));
    283         assertEquals("3 key fix 2 L1 [3]", 0, params.getColumnPos(2));
    284         assertEquals("3 key fix 2 L1 adjust", 0, params.mTopRowAdjustment);
    285         assertEquals("3 key fix 2 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    286     }
    287 
    288     // |        [3]
    289     // |___ ___ <1> [2]
    290     public void testLayout3KeyFix2L2() {
    291         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_L2);
    292         assertEquals("3 key fix 2 L2 columns", 2, params.mNumColumns);
    293         assertEquals("3 key fix 2 L2 rows", 2, params.mNumRows);
    294         assertEquals("3 key fix 2 L2 left", 0, params.mLeftKeys);
    295         assertEquals("3 key fix 2 L2 right", 2, params.mRightKeys);
    296         assertEquals("3 key fix 2 L2 <1>", 0, params.getColumnPos(0));
    297         assertEquals("3 key fix 2 L2 [2]", 1, params.getColumnPos(1));
    298         assertEquals("3 key fix 2 L2 [3]", 0, params.getColumnPos(2));
    299         assertEquals("3 key fix 2 L2 adjust", 0, params.mTopRowAdjustment);
    300         assertEquals("3 key fix 2 L2 default", WIDTH * 0, params.getDefaultKeyCoordX());
    301     }
    302 
    303     //     [3]|
    304     // [1] <2>|
    305     public void testLayout3KeyFix2R0() {
    306         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R0);
    307         assertEquals("3 key fix 2 R0 columns", 2, params.mNumColumns);
    308         assertEquals("3 key fix 2 R0 rows", 2, params.mNumRows);
    309         assertEquals("3 key fix 2 R0 left", 1, params.mLeftKeys);
    310         assertEquals("3 key fix 2 R0 right", 1, params.mRightKeys);
    311         assertEquals("3 key fix 2 R0 [1]", -1, params.getColumnPos(0));
    312         assertEquals("3 key fix 2 R0 <2>", 0, params.getColumnPos(1));
    313         assertEquals("3 key fix 2 R0 [3]", 0, params.getColumnPos(2));
    314         assertEquals("3 key fix 2 R0 adjust", 0, params.mTopRowAdjustment);
    315         assertEquals("3 key fix 2 R0 default", WIDTH * 1, params.getDefaultKeyCoordX());
    316     }
    317 
    318     //     [3] ___|
    319     // [1] <2> ___|
    320     public void testLayout3KeyFix2R1() {
    321         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R1);
    322         assertEquals("3 key fix 2 R1 columns", 2, params.mNumColumns);
    323         assertEquals("3 key fix 2 R1 rows", 2, params.mNumRows);
    324         assertEquals("3 key fix 2 R1 left", 1, params.mLeftKeys);
    325         assertEquals("3 key fix 2 R1 right", 1, params.mRightKeys);
    326         assertEquals("3 key fix 2 R1 [1]", -1, params.getColumnPos(0));
    327         assertEquals("3 key fix 2 R1 <2>", 0, params.getColumnPos(1));
    328         assertEquals("3 key fix 2 R1 [3]", 0, params.getColumnPos(2));
    329         assertEquals("3 key fix 2 R1 adjust", 0, params.mTopRowAdjustment);
    330         assertEquals("3 key fix 2 R1 default", WIDTH * 1, params.getDefaultKeyCoordX());
    331     }
    332 
    333     // [3]     ___|
    334     // <1> [2] ___|
    335     public void testLayout3KeyFix2R2() {
    336         MoreKeysKeyboardParams params = createParams(3, 2, XPOS_R2);
    337         assertEquals("3 key fix 2 R2 columns", 2, params.mNumColumns);
    338         assertEquals("3 key fix 2 R2 rows", 2, params.mNumRows);
    339         assertEquals("3 key fix 2 R2 left", 0, params.mLeftKeys);
    340         assertEquals("3 key fix 2 R2 right", 2, params.mRightKeys);
    341         assertEquals("3 key fix 2 R2 <1>", 0, params.getColumnPos(0));
    342         assertEquals("3 key fix 2 R2 [2]", 1, params.getColumnPos(1));
    343         assertEquals("3 key fix 2 R2 [3]", 0, params.getColumnPos(2));
    344         assertEquals("3 key fix 2 R2 adjust", 0, params.mTopRowAdjustment);
    345         assertEquals("3 key fix 2 R2 default", WIDTH * 0, params.getDefaultKeyCoordX());
    346     }
    347 
    348     // [3] [4]
    349     // <1> [2]
    350     public void testLayout4KeyFix2M0() {
    351         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_M0);
    352         assertEquals("3 key fix 2 M0 columns", 2, params.mNumColumns);
    353         assertEquals("3 key fix 2 M0 rows", 2, params.mNumRows);
    354         assertEquals("3 key fix 2 M0 left", 0, params.mLeftKeys);
    355         assertEquals("3 key fix 2 M0 right", 2, params.mRightKeys);
    356         assertEquals("3 key fix 2 M0 <1>", 0, params.getColumnPos(0));
    357         assertEquals("3 key fix 2 M0 [2]", 1, params.getColumnPos(1));
    358         assertEquals("3 key fix 2 M0 [3]", 0, params.getColumnPos(2));
    359         assertEquals("3 key fix 2 M0 [4]", 1, params.getColumnPos(3));
    360         assertEquals("3 key fix 2 M0 adjust", 0, params.mTopRowAdjustment);
    361         assertEquals("3 key fix 2 M0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    362     }
    363 
    364     // |[3] [4]
    365     // |<1> [2]
    366     public void testLayout4KeyFix2L0() {
    367         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_L0);
    368         assertEquals("3 key fix 2 L0 columns", 2, params.mNumColumns);
    369         assertEquals("3 key fix 2 L0 rows", 2, params.mNumRows);
    370         assertEquals("3 key fix 2 L0 left", 0, params.mLeftKeys);
    371         assertEquals("3 key fix 2 L0 right", 2, params.mRightKeys);
    372         assertEquals("3 key fix 2 L0 <1>", 0, params.getColumnPos(0));
    373         assertEquals("3 key fix 2 L0 [2]", 1, params.getColumnPos(1));
    374         assertEquals("3 key fix 2 L0 [3]", 0, params.getColumnPos(2));
    375         assertEquals("3 key fix 2 L0 [4]", 1, params.getColumnPos(3));
    376         assertEquals("3 key fix 2 L0 adjust", 0, params.mTopRowAdjustment);
    377         assertEquals("3 key fix 2 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    378     }
    379 
    380     // |___ [3] [4]
    381     // |___ <1> [2]
    382     public void testLayout4KeyFix2L1() {
    383         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_L1);
    384         assertEquals("3 key fix 2 L1 columns", 2, params.mNumColumns);
    385         assertEquals("3 key fix 2 L1 rows", 2, params.mNumRows);
    386         assertEquals("3 key fix 2 L1 left", 0, params.mLeftKeys);
    387         assertEquals("3 key fix 2 L1 right", 2, params.mRightKeys);
    388         assertEquals("3 key fix 2 L1 <1>", 0, params.getColumnPos(0));
    389         assertEquals("3 key fix 2 L1 [2]", 1, params.getColumnPos(1));
    390         assertEquals("3 key fix 2 L1 [3]", 0, params.getColumnPos(2));
    391         assertEquals("3 key fix 2 L1 [4]", 1, params.getColumnPos(3));
    392         assertEquals("3 key fix 2 L1 adjust", 0, params.mTopRowAdjustment);
    393         assertEquals("3 key fix 2 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    394     }
    395 
    396     // |        [3] [4]
    397     // |___ ___ <1> [2]
    398     public void testLayout4KeyFix2L2() {
    399         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_L2);
    400         assertEquals("3 key fix 2 L2 columns", 2, params.mNumColumns);
    401         assertEquals("3 key fix 2 L2 rows", 2, params.mNumRows);
    402         assertEquals("3 key fix 2 L2 left", 0, params.mLeftKeys);
    403         assertEquals("3 key fix 2 L2 right", 2, params.mRightKeys);
    404         assertEquals("3 key fix 2 L2 <1>", 0, params.getColumnPos(0));
    405         assertEquals("3 key fix 2 L2 [2]", 1, params.getColumnPos(1));
    406         assertEquals("3 key fix 2 L2 [3]", 0, params.getColumnPos(2));
    407         assertEquals("3 key fix 2 L2 [4]", 1, params.getColumnPos(3));
    408         assertEquals("3 key fix 2 L2 adjust", 0, params.mTopRowAdjustment);
    409         assertEquals("3 key fix 2 L2 default", WIDTH * 0, params.getDefaultKeyCoordX());
    410     }
    411 
    412     // [3] [4]|
    413     // [1] <2>|
    414     public void testLayout4KeyFix2R0() {
    415         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_R0);
    416         assertEquals("3 key fix 2 R0 columns", 2, params.mNumColumns);
    417         assertEquals("3 key fix 2 R0 rows", 2, params.mNumRows);
    418         assertEquals("3 key fix 2 R0 left", 1, params.mLeftKeys);
    419         assertEquals("3 key fix 2 R0 right", 1, params.mRightKeys);
    420         assertEquals("3 key fix 2 R0 [1]", -1, params.getColumnPos(0));
    421         assertEquals("3 key fix 2 R0 <2>", 0, params.getColumnPos(1));
    422         assertEquals("3 key fix 2 R0 [3]", -1, params.getColumnPos(2));
    423         assertEquals("3 key fix 2 R0 [4]", 0, params.getColumnPos(3));
    424         assertEquals("3 key fix 2 R0 adjust", 0, params.mTopRowAdjustment);
    425         assertEquals("3 key fix 2 R0 default", WIDTH * 1, params.getDefaultKeyCoordX());
    426     }
    427 
    428     // [3] [4] ___|
    429     // [1] <2> ___|
    430     public void testLayout4KeyFix2R1() {
    431         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_R1);
    432         assertEquals("3 key fix 2 R1 columns", 2, params.mNumColumns);
    433         assertEquals("3 key fix 2 R1 rows", 2, params.mNumRows);
    434         assertEquals("3 key fix 2 R1 left", 1, params.mLeftKeys);
    435         assertEquals("3 key fix 2 R1 right", 1, params.mRightKeys);
    436         assertEquals("3 key fix 2 R1 [1]", -1, params.getColumnPos(0));
    437         assertEquals("3 key fix 2 R1 <2>", 0, params.getColumnPos(1));
    438         assertEquals("3 key fix 2 R1 [3]", -1, params.getColumnPos(2));
    439         assertEquals("3 key fix 2 R1 [4]", 0, params.getColumnPos(3));
    440         assertEquals("3 key fix 2 R1 adjust", 0, params.mTopRowAdjustment);
    441         assertEquals("3 key fix 2 R1 default", WIDTH * 1, params.getDefaultKeyCoordX());
    442     }
    443 
    444     // [3] [4] ___|
    445     // <1> [2] ___|
    446     public void testLayout4KeyFix2R2() {
    447         MoreKeysKeyboardParams params = createParams(4, 2, XPOS_R2);
    448         assertEquals("3 key fix 2 R2 columns", 2, params.mNumColumns);
    449         assertEquals("3 key fix 2 R2 rows", 2, params.mNumRows);
    450         assertEquals("3 key fix 2 R2 left", 0, params.mLeftKeys);
    451         assertEquals("3 key fix 2 R2 right", 2, params.mRightKeys);
    452         assertEquals("3 key fix 2 R2 <1>", 0, params.getColumnPos(0));
    453         assertEquals("3 key fix 2 R2 [2]", 1, params.getColumnPos(1));
    454         assertEquals("3 key fix 2 R2 [3]", 0, params.getColumnPos(2));
    455         assertEquals("3 key fix 2 R2 [4]", 1, params.getColumnPos(3));
    456         assertEquals("3 key fix 2 R2 adjust", 0, params.mTopRowAdjustment);
    457         assertEquals("3 key fix 2 R2 default", WIDTH * 0, params.getDefaultKeyCoordX());
    458     }
    459 
    460     // [1] <2> [3]
    461     public void testLayout3KeyFix5M0() {
    462         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_M0);
    463         assertEquals("3 key fix 5 columns", 3, params.mNumColumns);
    464         assertEquals("3 key fix 5 rows", 1, params.mNumRows);
    465         assertEquals("3 key fix 5 left", 1, params.mLeftKeys);
    466         assertEquals("3 key fix 5 right", 2, params.mRightKeys);
    467         assertEquals("3 key fix 5 [1]", -1, params.getColumnPos(0));
    468         assertEquals("3 key fix 5 <2>", 0, params.getColumnPos(1));
    469         assertEquals("3 key fix 5 [3]", 1, params.getColumnPos(2));
    470         assertEquals("3 key fix 5 adjust", 0, params.mTopRowAdjustment);
    471         assertEquals("3 key fix 5 default", WIDTH * 1, params.getDefaultKeyCoordX());
    472     }
    473 
    474     // |<1> [2] [3]
    475     public void testLayout3KeyFix5L0() {
    476         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L0);
    477         assertEquals("3 key fix 5 L0 columns", 3, params.mNumColumns);
    478         assertEquals("3 key fix 5 L0 rows", 1, params.mNumRows);
    479         assertEquals("3 key fix 5 L0 left", 0, params.mLeftKeys);
    480         assertEquals("3 key fix 5 L0 right", 3, params.mRightKeys);
    481         assertEquals("3 key fix 5 L0 <1>", 0, params.getColumnPos(0));
    482         assertEquals("3 key fix 5 L0 [2]", 1, params.getColumnPos(1));
    483         assertEquals("3 key fix 5 L0 [3]", 2, params.getColumnPos(2));
    484         assertEquals("3 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
    485         assertEquals("3 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    486     }
    487 
    488     // |___ <1> [2] [3]
    489     public void testLayout3KeyFix5L1() {
    490         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L1);
    491         assertEquals("3 key fix 5 L1 columns", 3, params.mNumColumns);
    492         assertEquals("3 key fix 5 L1 rows", 1, params.mNumRows);
    493         assertEquals("3 key fix 5 L1 left", 0, params.mLeftKeys);
    494         assertEquals("3 key fix 5 L1 right", 3, params.mRightKeys);
    495         assertEquals("3 key fix 5 L1 <1>", 0, params.getColumnPos(0));
    496         assertEquals("3 key fix 5 L1 [2]", 1, params.getColumnPos(1));
    497         assertEquals("3 key fix 5 L1 [3]", 2, params.getColumnPos(2));
    498         assertEquals("3 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
    499         assertEquals("3 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    500     }
    501 
    502     // |___ [1] <2> [3]
    503     public void testLayout3KeyFix5L2() {
    504         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_L2);
    505         assertEquals("3 key fix 5 L2 columns", 3, params.mNumColumns);
    506         assertEquals("3 key fix 5 L2 rows", 1, params.mNumRows);
    507         assertEquals("3 key fix 5 L2 left", 1, params.mLeftKeys);
    508         assertEquals("3 key fix 5 L2 right", 2, params.mRightKeys);
    509         assertEquals("3 key fix 5 L2 [1]", -1, params.getColumnPos(0));
    510         assertEquals("3 key fix 5 L2 <2>", 0, params.getColumnPos(1));
    511         assertEquals("3 key fix 5 L2 [3]", 1, params.getColumnPos(2));
    512         assertEquals("3 key fix 5 L2 adjust", 0, params.mTopRowAdjustment);
    513         assertEquals("3 key fix 5 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    514     }
    515 
    516     // [1] [2] <3>|
    517     public void testLayout3KeyFix5R0() {
    518         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R0);
    519         assertEquals("3 key fix 5 R0 columns", 3, params.mNumColumns);
    520         assertEquals("3 key fix 5 R0 rows", 1, params.mNumRows);
    521         assertEquals("3 key fix 5 R0 left", 2, params.mLeftKeys);
    522         assertEquals("3 key fix 5 R0 right", 1, params.mRightKeys);
    523         assertEquals("3 key fix 5 R0 [1]", -2, params.getColumnPos(0));
    524         assertEquals("3 key fix 5 R0 [2]", -1, params.getColumnPos(1));
    525         assertEquals("3 key fix 5 R0 <3>", 0, params.getColumnPos(2));
    526         assertEquals("3 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
    527         assertEquals("3 key fix 5 R0 default", WIDTH * 2, params.getDefaultKeyCoordX());
    528     }
    529 
    530     // [1] [2] <3> ___|
    531     public void testLayout3KeyFix5R1() {
    532         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R1);
    533         assertEquals("3 key fix 5 R1 columns", 3, params.mNumColumns);
    534         assertEquals("3 key fix 5 R1 rows", 1, params.mNumRows);
    535         assertEquals("3 key fix 5 R1 left", 2, params.mLeftKeys);
    536         assertEquals("3 key fix 5 R1 right", 1, params.mRightKeys);
    537         assertEquals("3 key fix 5 R1 [1]", -2, params.getColumnPos(0));
    538         assertEquals("3 key fix 5 R1 [2]", -1, params.getColumnPos(1));
    539         assertEquals("3 key fix 5 R1 <3>", 0, params.getColumnPos(2));
    540         assertEquals("3 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
    541         assertEquals("3 key fix 5 R1 default", WIDTH * 2, params.getDefaultKeyCoordX());
    542     }
    543 
    544     // [1] <2> [3] ___|
    545     public void testLayout3KeyFix5R2() {
    546         MoreKeysKeyboardParams params = createParams(3, 5, XPOS_R2);
    547         assertEquals("3 key fix 5 R2 columns", 3, params.mNumColumns);
    548         assertEquals("3 key fix 5 R2 rows", 1, params.mNumRows);
    549         assertEquals("3 key fix 5 R2 left", 1, params.mLeftKeys);
    550         assertEquals("3 key fix 5 R2 right", 2, params.mRightKeys);
    551         assertEquals("3 key fix 5 R2 [1]", -1, params.getColumnPos(0));
    552         assertEquals("3 key fix 5 R2 <2>", 0, params.getColumnPos(1));
    553         assertEquals("3 key fix 5 R2 [3]", 1, params.getColumnPos(2));
    554         assertEquals("3 key fix 5 R2 adjust", 0, params.mTopRowAdjustment);
    555         assertEquals("3 key fix 5 R2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    556     }
    557 
    558     //     [4]
    559     // [1] <2> [3]
    560     public void testLayout4KeyFix3M0() {
    561         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_M0);
    562         assertEquals("4 key fix 3 M0 columns", 3, params.mNumColumns);
    563         assertEquals("4 key fix 3 M0 rows", 2, params.mNumRows);
    564         assertEquals("4 key fix 3 M0 left", 1, params.mLeftKeys);
    565         assertEquals("4 key fix 3 M0 right", 2, params.mRightKeys);
    566         assertEquals("4 key fix 3 M0 [1]", -1, params.getColumnPos(0));
    567         assertEquals("4 key fix 3 M0 <2>", 0, params.getColumnPos(1));
    568         assertEquals("4 key fix 3 M0 [3]", 1, params.getColumnPos(2));
    569         assertEquals("4 key fix 3 M0 [4]", 0, params.getColumnPos(3));
    570         assertEquals("4 key fix 3 M0 adjust", 0, params.mTopRowAdjustment);
    571         assertEquals("4 key fix 3 M0 default", WIDTH * 1, params.getDefaultKeyCoordX());
    572     }
    573 
    574     // |[4]
    575     // |<1> [2] [3]
    576     public void testLayout4KeyFix3L0() {
    577         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L0);
    578         assertEquals("4 key fix 3 L0 columns", 3, params.mNumColumns);
    579         assertEquals("4 key fix 3 L0 rows", 2, params.mNumRows);
    580         assertEquals("4 key fix 3 L0 left", 0, params.mLeftKeys);
    581         assertEquals("4 key fix 3 L0 right", 3, params.mRightKeys);
    582         assertEquals("4 key fix 3 L0 <1>", 0, params.getColumnPos(0));
    583         assertEquals("4 key fix 3 L0 [2]", 1, params.getColumnPos(1));
    584         assertEquals("4 key fix 3 L0 [3]", 2, params.getColumnPos(2));
    585         assertEquals("4 key fix 3 L0 [4]", 0, params.getColumnPos(3));
    586         assertEquals("4 key fix 3 L0 adjust", 0, params.mTopRowAdjustment);
    587         assertEquals("4 key fix 3 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    588     }
    589 
    590     // |___ [4]
    591     // |___ <1> [2] [3]
    592     public void testLayout4KeyFix3L1() {
    593         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L1);
    594         assertEquals("4 key fix 3 L1 columns", 3, params.mNumColumns);
    595         assertEquals("4 key fix 3 L1 rows", 2, params.mNumRows);
    596         assertEquals("4 key fix 3 L1 left", 0, params.mLeftKeys);
    597         assertEquals("4 key fix 3 L1 right", 3, params.mRightKeys);
    598         assertEquals("4 key fix 3 L1 <1>", 0, params.getColumnPos(0));
    599         assertEquals("4 key fix 3 L1 [2]", 1, params.getColumnPos(1));
    600         assertEquals("4 key fix 3 L1 [3]", 2, params.getColumnPos(2));
    601         assertEquals("4 key fix 3 L1 [4]", 0, params.getColumnPos(3));
    602         assertEquals("4 key fix 3 L1 adjust", 0, params.mTopRowAdjustment);
    603         assertEquals("4 key fix 3 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    604     }
    605 
    606     // |___ ___     [4]
    607     // |___ ___ [1] <2> [3]
    608     public void testLayout4KeyFix3L2() {
    609         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_L2);
    610         assertEquals("4 key fix 3 L2 columns", 3, params.mNumColumns);
    611         assertEquals("4 key fix 3 L2 rows", 2, params.mNumRows);
    612         assertEquals("4 key fix 3 L2 left", 1, params.mLeftKeys);
    613         assertEquals("4 key fix 3 L2 right", 2, params.mRightKeys);
    614         assertEquals("4 key fix 3 L2 [1]", -1, params.getColumnPos(0));
    615         assertEquals("4 key fix 3 L2 <2>", 0, params.getColumnPos(1));
    616         assertEquals("4 key fix 3 L2 [3]", 1, params.getColumnPos(2));
    617         assertEquals("4 key fix 3 L2 [4]", 0, params.getColumnPos(3));
    618         assertEquals("4 key fix 3 L2 adjust", 0, params.mTopRowAdjustment);
    619         assertEquals("4 key fix 3 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    620     }
    621 
    622     //         [4]|
    623     // [1] [2] <3>|
    624     public void testLayout4KeyFix3R0() {
    625         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R0);
    626         assertEquals("4 key fix 3 R0 columns", 3, params.mNumColumns);
    627         assertEquals("4 key fix 3 R0 rows", 2, params.mNumRows);
    628         assertEquals("4 key fix 3 R0 left", 2, params.mLeftKeys);
    629         assertEquals("4 key fix 3 R0 right", 1, params.mRightKeys);
    630         assertEquals("4 key fix 3 R0 [1]", -2, params.getColumnPos(0));
    631         assertEquals("4 key fix 3 R0 [2]", -1, params.getColumnPos(1));
    632         assertEquals("4 key fix 3 R0 <3>", 0, params.getColumnPos(2));
    633         assertEquals("4 key fix 3 R0 [4]", 0, params.getColumnPos(3));
    634         assertEquals("4 key fix 3 R0 adjust", 0, params.mTopRowAdjustment);
    635         assertEquals("4 key fix 3 R0 default", WIDTH * 2, params.getDefaultKeyCoordX());
    636     }
    637 
    638     //         [4] ___|
    639     // [1] [2] <3> ___|
    640     public void testLayout4KeyFix3R1() {
    641         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R1);
    642         assertEquals("4 key fix 3 R1 columns", 3, params.mNumColumns);
    643         assertEquals("4 key fix 3 R1 rows", 2, params.mNumRows);
    644         assertEquals("4 key fix 3 R1 left", 2, params.mLeftKeys);
    645         assertEquals("4 key fix 3 R1 right", 1, params.mRightKeys);
    646         assertEquals("4 key fix 3 R1 [1]", -2, params.getColumnPos(0));
    647         assertEquals("4 key fix 3 R1 [2]", -1, params.getColumnPos(1));
    648         assertEquals("4 key fix 3 R1 <3>", 0, params.getColumnPos(2));
    649         assertEquals("4 key fix 3 R1 [4]", 0, params.getColumnPos(3));
    650         assertEquals("4 key fix 3 R1 adjust", 0, params.mTopRowAdjustment);
    651         assertEquals("4 key fix 3 R1 default", WIDTH * 2, params.getDefaultKeyCoordX());
    652     }
    653 
    654     //     [4]     ___|
    655     // [1] <2> [3] ___|
    656     public void testLayout4KeyFix3R2() {
    657         MoreKeysKeyboardParams params = createParams(4, 3, XPOS_R2);
    658         assertEquals("4 key fix 3 R2 columns", 3, params.mNumColumns);
    659         assertEquals("4 key fix 3 R2 rows", 2, params.mNumRows);
    660         assertEquals("4 key fix 3 R2 left", 1, params.mLeftKeys);
    661         assertEquals("4 key fix 3 R2 right", 2, params.mRightKeys);
    662         assertEquals("4 key fix 3 R2 [1]", -1, params.getColumnPos(0));
    663         assertEquals("4 key fix 3 R2 <2>", 0, params.getColumnPos(1));
    664         assertEquals("4 key fix 3 R2 [3]", 1, params.getColumnPos(2));
    665         assertEquals("4 key fix 3 R2 [4]", 0, params.getColumnPos(3));
    666         assertEquals("4 key fix 3 R2 adjust", 0, params.mTopRowAdjustment);
    667         assertEquals("4 key fix 3 R2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    668     }
    669 
    670     //   [4] [5]
    671     // [1] <2> [3]
    672     public void testLayout5KeyFix3M0() {
    673         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_M0);
    674         assertEquals("5 key fix 3 M0 columns", 3, params.mNumColumns);
    675         assertEquals("5 key fix 3 M0 rows", 2, params.mNumRows);
    676         assertEquals("5 key fix 3 M0 left", 1, params.mLeftKeys);
    677         assertEquals("5 key fix 3 M0 right", 2, params.mRightKeys);
    678         assertEquals("5 key fix 3 M0 [1]", -1, params.getColumnPos(0));
    679         assertEquals("5 key fix 3 M0 <2>", 0, params.getColumnPos(1));
    680         assertEquals("5 key fix 3 M0 [3]", 1, params.getColumnPos(2));
    681         assertEquals("5 key fix 3 M0 [4]", 0, params.getColumnPos(3));
    682         assertEquals("5 key fix 3 M0 [5]", 1, params.getColumnPos(4));
    683         assertEquals("5 key fix 3 M0 adjust", -1, params.mTopRowAdjustment);
    684         assertEquals("5 key fix 3 M0 default", WIDTH * 1, params.getDefaultKeyCoordX());
    685     }
    686 
    687     // |[4] [5]
    688     // |<1> [2] [3]
    689     public void testLayout5KeyFix3L0() {
    690         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L0);
    691         assertEquals("5 key fix 3 L0 columns", 3, params.mNumColumns);
    692         assertEquals("5 key fix 3 L0 rows", 2, params.mNumRows);
    693         assertEquals("5 key fix 3 L0 left", 0, params.mLeftKeys);
    694         assertEquals("5 key fix 3 L0 right", 3, params.mRightKeys);
    695         assertEquals("5 key fix 3 L0 <1>", 0, params.getColumnPos(0));
    696         assertEquals("5 key fix 3 L0 [2]", 1, params.getColumnPos(1));
    697         assertEquals("5 key fix 3 L0 [3]", 2, params.getColumnPos(2));
    698         assertEquals("5 key fix 3 L0 [4]", 0, params.getColumnPos(3));
    699         assertEquals("5 key fix 3 L0 [5]", 1, params.getColumnPos(4));
    700         assertEquals("5 key fix 3 L0 adjust", 0, params.mTopRowAdjustment);
    701         assertEquals("5 key fix 3 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    702     }
    703 
    704     // |___ [4] [5]
    705     // |___ <1> [2] [3]
    706     public void testLayout5KeyFix3L1() {
    707         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L1);
    708         assertEquals("5 key fix 3 L1 columns", 3, params.mNumColumns);
    709         assertEquals("5 key fix 3 L1 rows", 2, params.mNumRows);
    710         assertEquals("5 key fix 3 L1 left", 0, params.mLeftKeys);
    711         assertEquals("5 key fix 3 L1 right", 3, params.mRightKeys);
    712         assertEquals("5 key fix 3 L1 <1>", 0, params.getColumnPos(0));
    713         assertEquals("5 key fix 3 L1 [2]", 1, params.getColumnPos(1));
    714         assertEquals("5 key fix 3 L1 [3]", 2, params.getColumnPos(2));
    715         assertEquals("5 key fix 3 L1 [4]", 0, params.getColumnPos(3));
    716         assertEquals("5 key fix 3 L1 [5]", 1, params.getColumnPos(4));
    717         assertEquals("5 key fix 3 L1 adjust", 0, params.mTopRowAdjustment);
    718         assertEquals("5 key fix 3 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    719     }
    720 
    721     // |___   [4] [5]
    722     // |___ [1] <2> [3]
    723     public void testLayout5KeyFix3L2() {
    724         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_L2);
    725         assertEquals("5 key fix 3 L2 columns", 3, params.mNumColumns);
    726         assertEquals("5 key fix 3 L2 rows", 2, params.mNumRows);
    727         assertEquals("5 key fix 3 L2 left", 1, params.mLeftKeys);
    728         assertEquals("5 key fix 3 L2 right", 2, params.mRightKeys);
    729         assertEquals("5 key fix 3 L2 [1]", -1, params.getColumnPos(0));
    730         assertEquals("5 key fix 3 L2 <2>", 0, params.getColumnPos(1));
    731         assertEquals("5 key fix 3 L2 [3]", 1, params.getColumnPos(2));
    732         assertEquals("5 key fix 3 L2 [4]", 0, params.getColumnPos(3));
    733         assertEquals("5 key fix 3 L2 [5]", 1, params.getColumnPos(4));
    734         assertEquals("5 key fix 3 L2 adjust", -1, params.mTopRowAdjustment);
    735         assertEquals("5 key fix 3 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    736     }
    737 
    738     //     [4] [5]|
    739     // [1] [2] <3>|
    740     public void testLayout5KeyFix3R0() {
    741         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R0);
    742         assertEquals("5 key fix 3 R0 columns", 3, params.mNumColumns);
    743         assertEquals("5 key fix 3 R0 rows", 2, params.mNumRows);
    744         assertEquals("5 key fix 3 R0 left", 2, params.mLeftKeys);
    745         assertEquals("5 key fix 3 R0 right", 1, params.mRightKeys);
    746         assertEquals("5 key fix 3 R0 [1]", -2, params.getColumnPos(0));
    747         assertEquals("5 key fix 3 R0 [2]", -1, params.getColumnPos(1));
    748         assertEquals("5 key fix 3 R0 <3>", 0, params.getColumnPos(2));
    749         assertEquals("5 key fix 3 R0 [4]", -1, params.getColumnPos(3));
    750         assertEquals("5 key fix 3 R0 [5]", 0, params.getColumnPos(4));
    751         assertEquals("5 key fix 3 R0 adjust", 0, params.mTopRowAdjustment);
    752         assertEquals("5 key fix 3 R0 default", WIDTH * 2, params.getDefaultKeyCoordX());
    753     }
    754 
    755     //     [4] [5] ___|
    756     // [1] [2] <3> ___|
    757     public void testLayout5KeyFix3R1() {
    758         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R1);
    759         assertEquals("5 key fix 3 R1 columns", 3, params.mNumColumns);
    760         assertEquals("5 key fix 3 R1 rows", 2, params.mNumRows);
    761         assertEquals("5 key fix 3 R1 left", 2, params.mLeftKeys);
    762         assertEquals("5 key fix 3 R1 right", 1, params.mRightKeys);
    763         assertEquals("5 key fix 3 R1 [1]", -2, params.getColumnPos(0));
    764         assertEquals("5 key fix 3 R1 [2]", -1, params.getColumnPos(1));
    765         assertEquals("5 key fix 3 R1 <3>", 0, params.getColumnPos(2));
    766         assertEquals("5 key fix 3 R1 [4]", -1, params.getColumnPos(3));
    767         assertEquals("5 key fix 3 R1 [5]", 0, params.getColumnPos(4));
    768         assertEquals("5 key fix 3 R1 adjust", 0, params.mTopRowAdjustment);
    769         assertEquals("5 key fix 3 R1 default", WIDTH * 2, params.getDefaultKeyCoordX());
    770     }
    771 
    772     //   [4] [5]   ___|
    773     // [1] <2> [3] ___|
    774     public void testLayout5KeyFix3R2() {
    775         MoreKeysKeyboardParams params = createParams(5, 3, XPOS_R2);
    776         assertEquals("5 key fix 3 R2 columns", 3, params.mNumColumns);
    777         assertEquals("5 key fix 3 R2 rows", 2, params.mNumRows);
    778         assertEquals("5 key fix 3 R2 left", 1, params.mLeftKeys);
    779         assertEquals("5 key fix 3 R2 right", 2, params.mRightKeys);
    780         assertEquals("5 key fix 3 R2 [1]", -1, params.getColumnPos(0));
    781         assertEquals("5 key fix 3 R2 <2>", 0, params.getColumnPos(1));
    782         assertEquals("5 key fix 3 R2 [3]", 1, params.getColumnPos(2));
    783         assertEquals("5 key fix 3 R2 [4]", 0, params.getColumnPos(3));
    784         assertEquals("5 key fix 3 R2 [5]", 1, params.getColumnPos(4));
    785         assertEquals("5 key fix 3 R2 adjust", -1, params.mTopRowAdjustment);
    786         assertEquals("5 key fix 3 R2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    787     }
    788 
    789     // [4] [5] [6]
    790     // [1] <2> [3]
    791     public void testLayout6KeyFix3M0() {
    792         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_M0);
    793         assertEquals("6 key fix 3 M0 columns", 3, params.mNumColumns);
    794         assertEquals("6 key fix 3 M0 rows", 2, params.mNumRows);
    795         assertEquals("6 key fix 3 M0 left", 1, params.mLeftKeys);
    796         assertEquals("6 key fix 3 M0 right", 2, params.mRightKeys);
    797         assertEquals("6 key fix 3 M0 [1]", -1, params.getColumnPos(0));
    798         assertEquals("6 key fix 3 M0 <2>", 0, params.getColumnPos(1));
    799         assertEquals("6 key fix 3 M0 [3]", 1, params.getColumnPos(2));
    800         assertEquals("6 key fix 3 M0 [4]", -1, params.getColumnPos(3));
    801         assertEquals("6 key fix 3 M0 [5]", 0, params.getColumnPos(4));
    802         assertEquals("6 key fix 3 M0 [6]", 1, params.getColumnPos(5));
    803         assertEquals("6 key fix 3 M0 adjust", 0, params.mTopRowAdjustment);
    804         assertEquals("6 key fix 3 M0 default", WIDTH * 1, params.getDefaultKeyCoordX());
    805     }
    806 
    807     // |[4] [5] [6]
    808     // |<1> [2] [3]
    809     public void testLayout6KeyFix3L0() {
    810         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_L0);
    811         assertEquals("6 key fix 3 L0 columns", 3, params.mNumColumns);
    812         assertEquals("6 key fix 3 L0 rows", 2, params.mNumRows);
    813         assertEquals("6 key fix 3 L0 left", 0, params.mLeftKeys);
    814         assertEquals("6 key fix 3 L0 right", 3, params.mRightKeys);
    815         assertEquals("6 key fix 3 L0 <1>", 0, params.getColumnPos(0));
    816         assertEquals("6 key fix 3 L0 [2]", 1, params.getColumnPos(1));
    817         assertEquals("6 key fix 3 L0 [3]", 2, params.getColumnPos(2));
    818         assertEquals("6 key fix 3 L0 [4]", 0, params.getColumnPos(3));
    819         assertEquals("6 key fix 3 L0 [5]", 1, params.getColumnPos(4));
    820         assertEquals("6 key fix 3 L0 [6]", 2, params.getColumnPos(5));
    821         assertEquals("6 key fix 3 L0 adjust", 0, params.mTopRowAdjustment);
    822         assertEquals("6 key fix 3 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    823     }
    824 
    825     // |___ [4] [5] [6]
    826     // |___ <1> [2] [3]
    827     public void testLayout6KeyFix3L1() {
    828         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_L1);
    829         assertEquals("6 key fix 3 L1 columns", 3, params.mNumColumns);
    830         assertEquals("6 key fix 3 L1 rows", 2, params.mNumRows);
    831         assertEquals("6 key fix 3 L1 left", 0, params.mLeftKeys);
    832         assertEquals("6 key fix 3 L1 right", 3, params.mRightKeys);
    833         assertEquals("6 key fix 3 L1 <1>", 0, params.getColumnPos(0));
    834         assertEquals("6 key fix 3 L1 [2]", 1, params.getColumnPos(1));
    835         assertEquals("6 key fix 3 L1 [3]", 2, params.getColumnPos(2));
    836         assertEquals("6 key fix 3 L1 [4]", 0, params.getColumnPos(3));
    837         assertEquals("6 key fix 3 L1 [5]", 1, params.getColumnPos(4));
    838         assertEquals("6 key fix 3 L1 [6]", 2, params.getColumnPos(5));
    839         assertEquals("6 key fix 3 L1 adjust", 0, params.mTopRowAdjustment);
    840         assertEquals("6 key fix 3 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    841     }
    842 
    843     // |___ [4] [5] [6]
    844     // |___ [1] <2> [3]
    845     public void testLayout6KeyFix3L2() {
    846         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_L2);
    847         assertEquals("6 key fix 3 L2 columns", 3, params.mNumColumns);
    848         assertEquals("6 key fix 3 L2 rows", 2, params.mNumRows);
    849         assertEquals("6 key fix 3 L2 left", 1, params.mLeftKeys);
    850         assertEquals("6 key fix 3 L2 right", 2, params.mRightKeys);
    851         assertEquals("6 key fix 3 L2 [1]", -1, params.getColumnPos(0));
    852         assertEquals("6 key fix 3 L2 <2>", 0, params.getColumnPos(1));
    853         assertEquals("6 key fix 3 L2 [3]", 1, params.getColumnPos(2));
    854         assertEquals("6 key fix 3 L2 [4]", -1, params.getColumnPos(3));
    855         assertEquals("6 key fix 3 L2 [5]", 0, params.getColumnPos(4));
    856         assertEquals("6 key fix 3 L2 [6]", 1, params.getColumnPos(5));
    857         assertEquals("6 key fix 3 L2 adjust", 0, params.mTopRowAdjustment);
    858         assertEquals("6 key fix 3 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    859     }
    860 
    861     // [4] [5] [6]|
    862     // [1] [2] <3>|
    863     public void testLayout6KeyFix3R0() {
    864         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_R0);
    865         assertEquals("6 key fix 3 R0 columns", 3, params.mNumColumns);
    866         assertEquals("6 key fix 3 R0 rows", 2, params.mNumRows);
    867         assertEquals("6 key fix 3 R0 left", 2, params.mLeftKeys);
    868         assertEquals("6 key fix 3 R0 right", 1, params.mRightKeys);
    869         assertEquals("6 key fix 3 R0 [1]", -2, params.getColumnPos(0));
    870         assertEquals("6 key fix 3 R0 [2]", -1, params.getColumnPos(1));
    871         assertEquals("6 key fix 3 R0 <3>", 0, params.getColumnPos(2));
    872         assertEquals("6 key fix 3 R0 [4]", -2, params.getColumnPos(3));
    873         assertEquals("6 key fix 3 R0 [5]", -1, params.getColumnPos(4));
    874         assertEquals("6 key fix 3 R0 [6]", 0, params.getColumnPos(5));
    875         assertEquals("6 key fix 3 R0 adjust", 0, params.mTopRowAdjustment);
    876         assertEquals("6 key fix 3 R0 default", WIDTH * 2, params.getDefaultKeyCoordX());
    877     }
    878 
    879     // [4] [5] [6] ___|
    880     // [1] [2] <3> ___|
    881     public void testLayout6KeyFix3R1() {
    882         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_R1);
    883         assertEquals("6 key fix 3 R1 columns", 3, params.mNumColumns);
    884         assertEquals("6 key fix 3 R1 rows", 2, params.mNumRows);
    885         assertEquals("6 key fix 3 R1 left", 2, params.mLeftKeys);
    886         assertEquals("6 key fix 3 R1 right", 1, params.mRightKeys);
    887         assertEquals("6 key fix 3 R1 [1]", -2, params.getColumnPos(0));
    888         assertEquals("6 key fix 3 R1 [2]", -1, params.getColumnPos(1));
    889         assertEquals("6 key fix 3 R1 <3>", 0, params.getColumnPos(2));
    890         assertEquals("6 key fix 3 R1 [4]", -2, params.getColumnPos(3));
    891         assertEquals("6 key fix 3 R1 [5]", -1, params.getColumnPos(4));
    892         assertEquals("6 key fix 3 R1 [6]", 0, params.getColumnPos(5));
    893         assertEquals("6 key fix 3 R1 adjust", 0, params.mTopRowAdjustment);
    894         assertEquals("6 key fix 3 R1 default", WIDTH * 2, params.getDefaultKeyCoordX());
    895     }
    896 
    897     // [4] [5] [6] ___|
    898     // [1] <2> [3] ___|
    899     public void testLayout6KeyFix3R2() {
    900         MoreKeysKeyboardParams params = createParams(6, 3, XPOS_R2);
    901         assertEquals("6 key fix 3 R2 columns", 3, params.mNumColumns);
    902         assertEquals("6 key fix 3 R2 rows", 2, params.mNumRows);
    903         assertEquals("6 key fix 3 R2 left", 1, params.mLeftKeys);
    904         assertEquals("6 key fix 3 R2 right", 2, params.mRightKeys);
    905         assertEquals("6 key fix 3 R2 [1]", -1, params.getColumnPos(0));
    906         assertEquals("6 key fix 3 R2 <2>", 0, params.getColumnPos(1));
    907         assertEquals("6 key fix 3 R2 [1]", 1, params.getColumnPos(2));
    908         assertEquals("6 key fix 3 R2 [4]", -1, params.getColumnPos(3));
    909         assertEquals("6 key fix 3 R2 [5]", 0, params.getColumnPos(4));
    910         assertEquals("6 key fix 3 R2 [6]", 1, params.getColumnPos(5));
    911         assertEquals("6 key fix 3 R2 adjust", 0, params.mTopRowAdjustment);
    912         assertEquals("6 key fix 3 R2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    913     }
    914 
    915     // <1> [2] [3] [4]
    916     public void testLayout4KeyFix5M0() {
    917         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_M0);
    918         assertEquals("4 key fix 5 columns", 4, params.mNumColumns);
    919         assertEquals("4 key fix 5 rows", 1, params.mNumRows);
    920         assertEquals("4 key fix 5 left", 1, params.mLeftKeys);
    921         assertEquals("4 key fix 5 right", 3, params.mRightKeys);
    922         assertEquals("4 key fix 5 <1>", -1, params.getColumnPos(0));
    923         assertEquals("4 key fix 5 [2]", 0, params.getColumnPos(1));
    924         assertEquals("4 key fix 5 [3]", 1, params.getColumnPos(2));
    925         assertEquals("4 key fix 5 [4]", 2, params.getColumnPos(3));
    926         assertEquals("4 key fix 5 adjust", 0, params.mTopRowAdjustment);
    927         assertEquals("4 key fix 5 default", WIDTH * 1, params.getDefaultKeyCoordX());
    928     }
    929 
    930     // |<1> [2] [3] [4]
    931     public void testLayout4KeyFix5L0() {
    932         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L0);
    933         assertEquals("4 key fix 5 L0 columns", 4, params.mNumColumns);
    934         assertEquals("4 key fix 5 L0 rows", 1, params.mNumRows);
    935         assertEquals("4 key fix 5 L0 left", 0, params.mLeftKeys);
    936         assertEquals("4 key fix 5 L0 right", 4, params.mRightKeys);
    937         assertEquals("4 key fix 5 L0 <1>", 0, params.getColumnPos(0));
    938         assertEquals("4 key fix 5 L0 [2]", 1, params.getColumnPos(1));
    939         assertEquals("4 key fix 5 L0 [3]", 2, params.getColumnPos(2));
    940         assertEquals("4 key fix 5 L0 [4]", 3, params.getColumnPos(3));
    941         assertEquals("4 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
    942         assertEquals("4 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
    943     }
    944 
    945     // |___ <1> [2] [3] [4]
    946     public void testLayout4KeyFix5L1() {
    947         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L1);
    948         assertEquals("4 key fix 5 L1 columns", 4, params.mNumColumns);
    949         assertEquals("4 key fix 5 L1 rows", 1, params.mNumRows);
    950         assertEquals("4 key fix 5 L1 left", 0, params.mLeftKeys);
    951         assertEquals("4 key fix 5 L1 right", 4, params.mRightKeys);
    952         assertEquals("4 key fix 5 L1 <1>", 0, params.getColumnPos(0));
    953         assertEquals("4 key fix 5 L1 [2]", 1, params.getColumnPos(1));
    954         assertEquals("4 key fix 5 L1 [3]", 2, params.getColumnPos(2));
    955         assertEquals("4 key fix 5 L1 [4]", 3, params.getColumnPos(3));
    956         assertEquals("4 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
    957         assertEquals("4 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
    958     }
    959 
    960     // |___ [1] <2> [3] [4]
    961     public void testLayout4KeyFix5L2() {
    962         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_L2);
    963         assertEquals("4 key fix 5 L2 columns", 4, params.mNumColumns);
    964         assertEquals("4 key fix 5 L2 rows", 1, params.mNumRows);
    965         assertEquals("4 key fix 5 L2 left", 1, params.mLeftKeys);
    966         assertEquals("4 key fix 5 L2 right", 3, params.mRightKeys);
    967         assertEquals("4 key fix 5 L2 [1]", -1, params.getColumnPos(0));
    968         assertEquals("4 key fix 5 L2 <2>", 0, params.getColumnPos(1));
    969         assertEquals("4 key fix 5 L2 [3]", 1, params.getColumnPos(2));
    970         assertEquals("4 key fix 5 L2 [4]", 2, params.getColumnPos(3));
    971         assertEquals("4 key fix 5 L2 adjust", 0, params.mTopRowAdjustment);
    972         assertEquals("4 key fix 5 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
    973     }
    974 
    975     // [1] [2] [3] <4>|
    976     public void testLayout4KeyFix5R0() {
    977         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R0);
    978         assertEquals("4 key fix 5 R0 columns", 4, params.mNumColumns);
    979         assertEquals("4 key fix 5 R0 rows", 1, params.mNumRows);
    980         assertEquals("4 key fix 5 R0 left", 3, params.mLeftKeys);
    981         assertEquals("4 key fix 5 R0 right", 1, params.mRightKeys);
    982         assertEquals("4 key fix 5 R0 [1]", -3, params.getColumnPos(0));
    983         assertEquals("4 key fix 5 R0 [2]", -2, params.getColumnPos(1));
    984         assertEquals("4 key fix 5 R0 [3]", -1, params.getColumnPos(2));
    985         assertEquals("4 key fix 5 R0 <4>", 0, params.getColumnPos(3));
    986         assertEquals("4 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
    987         assertEquals("4 key fix 5 R0 default", WIDTH * 3, params.getDefaultKeyCoordX());
    988     }
    989 
    990     // [1] [2] [3] <4> ___|
    991     public void testLayout4KeyFix5R1() {
    992         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R1);
    993         assertEquals("4 key fix 5 R1 columns", 4, params.mNumColumns);
    994         assertEquals("4 key fix 5 R1 rows", 1, params.mNumRows);
    995         assertEquals("4 key fix 5 R1 left", 3, params.mLeftKeys);
    996         assertEquals("4 key fix 5 R1 right", 1, params.mRightKeys);
    997         assertEquals("4 key fix 5 R1 [1]", -3, params.getColumnPos(0));
    998         assertEquals("4 key fix 5 R1 [2]", -2, params.getColumnPos(1));
    999         assertEquals("4 key fix 5 R1 [3]", -1, params.getColumnPos(2));
   1000         assertEquals("4 key fix 5 R1 <4>", 0, params.getColumnPos(3));
   1001         assertEquals("4 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
   1002         assertEquals("4 key fix 5 R1 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1003     }
   1004 
   1005     // [1] [2] <3> [4] ___|
   1006     public void testLayout4KeyFix5R2() {
   1007         MoreKeysKeyboardParams params = createParams(4, 5, XPOS_R2);
   1008         assertEquals("4 key fix 5 R2 columns", 4, params.mNumColumns);
   1009         assertEquals("4 key fix 5 R2 rows", 1, params.mNumRows);
   1010         assertEquals("4 key fix 5 R2 left", 2, params.mLeftKeys);
   1011         assertEquals("4 key fix 5 R2 right", 2, params.mRightKeys);
   1012         assertEquals("4 key fix 5 R2 [1]", -2, params.getColumnPos(0));
   1013         assertEquals("4 key fix 5 R2 [2]", -1, params.getColumnPos(1));
   1014         assertEquals("4 key fix 5 R2 <3>", 0, params.getColumnPos(2));
   1015         assertEquals("4 key fix 5 R2 [4]", 1, params.getColumnPos(3));
   1016         assertEquals("4 key fix 5 R2 adjust", 0, params.mTopRowAdjustment);
   1017         assertEquals("4 key fix 5 R2 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1018     }
   1019 
   1020     //     [5]
   1021     // [1] <2> [3] [4]
   1022     public void testLayout5KeyFix4M0() {
   1023         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_M0);
   1024         assertEquals("5 key fix 4 M0 columns", 4, params.mNumColumns);
   1025         assertEquals("5 key fix 4 M0 rows", 2, params.mNumRows);
   1026         assertEquals("5 key fix 4 M0 left", 1, params.mLeftKeys);
   1027         assertEquals("5 key fix 4 M0 right", 3, params.mRightKeys);
   1028         assertEquals("5 key fix 4 M0 [1]", -1, params.getColumnPos(0));
   1029         assertEquals("5 key fix 4 M0 <2>", 0, params.getColumnPos(1));
   1030         assertEquals("5 key fix 4 M0 [3]", 1, params.getColumnPos(2));
   1031         assertEquals("5 key fix 4 M0 [4]", 2, params.getColumnPos(3));
   1032         assertEquals("5 key fix 4 M0 [5]", 0, params.getColumnPos(4));
   1033         assertEquals("5 key fix 4 M0 adjust", 0, params.mTopRowAdjustment);
   1034         assertEquals("5 key fix 4 M0 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1035     }
   1036 
   1037     // |[5]
   1038     // |<1> [2] [3] [4]
   1039     public void testLayout5KeyFix4L0() {
   1040         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L0);
   1041         assertEquals("5 key fix 4 L0 columns", 4, params.mNumColumns);
   1042         assertEquals("5 key fix 4 L0 rows", 2, params.mNumRows);
   1043         assertEquals("5 key fix 4 L0 left", 0, params.mLeftKeys);
   1044         assertEquals("5 key fix 4 L0 right", 4, params.mRightKeys);
   1045         assertEquals("5 key fix 4 L0 <1>", 0, params.getColumnPos(0));
   1046         assertEquals("5 key fix 4 L0 [2]", 1, params.getColumnPos(1));
   1047         assertEquals("5 key fix 4 L0 [3]", 2, params.getColumnPos(2));
   1048         assertEquals("5 key fix 4 L0 [4]", 3, params.getColumnPos(3));
   1049         assertEquals("5 key fix 4 L0 [5]", 0, params.getColumnPos(4));
   1050         assertEquals("5 key fix 4 L0 adjust", 0, params.mTopRowAdjustment);
   1051         assertEquals("5 key fix 4 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1052     }
   1053 
   1054     // |___ [5]
   1055     // |___ <1> [2] [3] [4]
   1056     public void testLayout5KeyFix4L1() {
   1057         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L1);
   1058         assertEquals("5 key fix 4 L1 columns", 4, params.mNumColumns);
   1059         assertEquals("5 key fix 4 L1 rows", 2, params.mNumRows);
   1060         assertEquals("5 key fix 4 L1 left", 0, params.mLeftKeys);
   1061         assertEquals("5 key fix 4 L1 right", 4, params.mRightKeys);
   1062         assertEquals("5 key fix 4 L1 <1>", 0, params.getColumnPos(0));
   1063         assertEquals("5 key fix 4 L1 [2]", 1, params.getColumnPos(1));
   1064         assertEquals("5 key fix 4 L1 [3]", 2, params.getColumnPos(2));
   1065         assertEquals("5 key fix 4 L1 [4]", 3, params.getColumnPos(3));
   1066         assertEquals("5 key fix 4 L1 [5]", 0, params.getColumnPos(4));
   1067         assertEquals("5 key fix 4 L1 adjust", 0, params.mTopRowAdjustment);
   1068         assertEquals("5 key fix 4 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1069     }
   1070 
   1071     // |___     [5]
   1072     // |___ [1] <2> [3] [4]
   1073     public void testLayout5KeyFix4L2() {
   1074         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_L2);
   1075         assertEquals("5 key fix 4 L2 columns", 4, params.mNumColumns);
   1076         assertEquals("5 key fix 4 L2 rows", 2, params.mNumRows);
   1077         assertEquals("5 key fix 4 L2 left", 1, params.mLeftKeys);
   1078         assertEquals("5 key fix 4 L2 right", 3, params.mRightKeys);
   1079         assertEquals("5 key fix 4 L2 [1]", -1, params.getColumnPos(0));
   1080         assertEquals("5 key fix 4 L2 <2>", 0, params.getColumnPos(1));
   1081         assertEquals("5 key fix 4 L2 [3]", 1, params.getColumnPos(2));
   1082         assertEquals("5 key fix 4 L2 [4]", 2, params.getColumnPos(3));
   1083         assertEquals("5 key fix 4 L2 [5]", 0, params.getColumnPos(4));
   1084         assertEquals("5 key fix 4 L2 adjust", 0, params.mTopRowAdjustment);
   1085         assertEquals("5 key fix 4 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1086     }
   1087 
   1088     //             [5]|
   1089     // [1] [2] [3] <4>|
   1090     public void testLayout5KeyFix4R0() {
   1091         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R0);
   1092         assertEquals("5 key fix 4 R0 columns", 4, params.mNumColumns);
   1093         assertEquals("5 key fix 4 R0 rows", 2, params.mNumRows);
   1094         assertEquals("5 key fix 4 R0 left", 3, params.mLeftKeys);
   1095         assertEquals("5 key fix 4 R0 right", 1, params.mRightKeys);
   1096         assertEquals("5 key fix 4 R0 [1]", -3, params.getColumnPos(0));
   1097         assertEquals("5 key fix 4 R0 [2]", -2, params.getColumnPos(1));
   1098         assertEquals("5 key fix 4 R0 [3]", -1, params.getColumnPos(2));
   1099         assertEquals("5 key fix 4 R0 <4>", 0, params.getColumnPos(3));
   1100         assertEquals("5 key fix 4 R0 [5]", 0, params.getColumnPos(4));
   1101         assertEquals("5 key fix 4 R0 adjust", 0, params.mTopRowAdjustment);
   1102         assertEquals("5 key fix 4 R0 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1103     }
   1104 
   1105     //             [5] ___|
   1106     // [1] [2] [3] <4> ___|
   1107     public void testLayout5KeyFix4R1() {
   1108         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R1);
   1109         assertEquals("5 key fix 4 R1 columns", 4, params.mNumColumns);
   1110         assertEquals("5 key fix 4 R1 rows", 2, params.mNumRows);
   1111         assertEquals("5 key fix 4 R1 left", 3, params.mLeftKeys);
   1112         assertEquals("5 key fix 4 R1 right", 1, params.mRightKeys);
   1113         assertEquals("5 key fix 4 R1 [1]", -3, params.getColumnPos(0));
   1114         assertEquals("5 key fix 4 R1 [2]", -2, params.getColumnPos(1));
   1115         assertEquals("5 key fix 4 R1 [3]", -1, params.getColumnPos(2));
   1116         assertEquals("5 key fix 4 R1 [4]", 0, params.getColumnPos(3));
   1117         assertEquals("5 key fix 4 R1 [5]", 0, params.getColumnPos(4));
   1118         assertEquals("5 key fix 4 R1 adjust", 0, params.mTopRowAdjustment);
   1119         assertEquals("5 key fix 4 R1 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1120     }
   1121 
   1122     //         [5]     ___|
   1123     // [1] [2] <3> [4] ___|
   1124     public void testLayout5KeyFix4R2() {
   1125         MoreKeysKeyboardParams params = createParams(5, 4, XPOS_R2);
   1126         assertEquals("5 key fix 4 R2 columns", 4, params.mNumColumns);
   1127         assertEquals("5 key fix 4 R2 rows", 2, params.mNumRows);
   1128         assertEquals("5 key fix 4 R2 left", 2, params.mLeftKeys);
   1129         assertEquals("5 key fix 4 R2 right", 2, params.mRightKeys);
   1130         assertEquals("5 key fix 4 R2 [1]", -2, params.getColumnPos(0));
   1131         assertEquals("5 key fix 4 R2 [2]", -1, params.getColumnPos(1));
   1132         assertEquals("5 key fix 4 R2 <3>", 0, params.getColumnPos(2));
   1133         assertEquals("5 key fix 4 R2 [4]", 1, params.getColumnPos(3));
   1134         assertEquals("5 key fix 4 R2 [5]", 0, params.getColumnPos(4));
   1135         assertEquals("5 key fix 4 R2 adjust", 0, params.mTopRowAdjustment);
   1136         assertEquals("5 key fix 4 R2 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1137     }
   1138 
   1139     //   [5] [6]
   1140     // [1] <2> [3] [4]
   1141     public void testLayout6KeyFix4M0() {
   1142         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_M0);
   1143         assertEquals("6 key fix 4 M0 columns", 4, params.mNumColumns);
   1144         assertEquals("6 key fix 4 M0 rows", 2, params.mNumRows);
   1145         assertEquals("6 key fix 4 M0 left", 1, params.mLeftKeys);
   1146         assertEquals("6 key fix 4 M0 right", 3, params.mRightKeys);
   1147         assertEquals("6 key fix 4 M0 [1]", -1, params.getColumnPos(0));
   1148         assertEquals("6 key fix 4 M0 <2>", 0, params.getColumnPos(1));
   1149         assertEquals("6 key fix 4 M0 [3]", 1, params.getColumnPos(2));
   1150         assertEquals("6 key fix 4 M0 [4]", 2, params.getColumnPos(3));
   1151         assertEquals("6 key fix 4 M0 [5]", 0, params.getColumnPos(4));
   1152         assertEquals("6 key fix 4 M0 [6]", 1, params.getColumnPos(5));
   1153         assertEquals("6 key fix 4 M0 adjust", -1, params.mTopRowAdjustment);
   1154         assertEquals("6 key fix 4 M0 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1155     }
   1156 
   1157     // |[5] [6]
   1158     // |<1> [2] [3] [4]
   1159     public void testLayout6KeyFix4L0() {
   1160         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L0);
   1161         assertEquals("6 key fix 4 L0 columns", 4, params.mNumColumns);
   1162         assertEquals("6 key fix 4 L0 rows", 2, params.mNumRows);
   1163         assertEquals("6 key fix 4 L0 left", 0, params.mLeftKeys);
   1164         assertEquals("6 key fix 4 L0 right", 4, params.mRightKeys);
   1165         assertEquals("6 key fix 4 L0 <1>", 0, params.getColumnPos(0));
   1166         assertEquals("6 key fix 4 L0 [2]", 1, params.getColumnPos(1));
   1167         assertEquals("6 key fix 4 L0 [3]", 2, params.getColumnPos(2));
   1168         assertEquals("6 key fix 4 L0 [4]", 3, params.getColumnPos(3));
   1169         assertEquals("6 key fix 4 L0 [5]", 0, params.getColumnPos(4));
   1170         assertEquals("6 key fix 4 L0 [6]", 1, params.getColumnPos(5));
   1171         assertEquals("6 key fix 4 L0 adjust", 0, params.mTopRowAdjustment);
   1172         assertEquals("6 key fix 4 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1173     }
   1174 
   1175     // |___ [5] [6]
   1176     // |___ <1> [2] [3] [4]
   1177     public void testLayout6KeyFix4L1() {
   1178         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L1);
   1179         assertEquals("6 key fix 4 L1 columns", 4, params.mNumColumns);
   1180         assertEquals("6 key fix 4 L1 rows", 2, params.mNumRows);
   1181         assertEquals("6 key fix 4 L1 left", 0, params.mLeftKeys);
   1182         assertEquals("6 key fix 4 L1 right", 4, params.mRightKeys);
   1183         assertEquals("6 key fix 4 L1 <1>", 0, params.getColumnPos(0));
   1184         assertEquals("6 key fix 4 L1 [2]", 1, params.getColumnPos(1));
   1185         assertEquals("6 key fix 4 L1 [3]", 2, params.getColumnPos(2));
   1186         assertEquals("6 key fix 4 L1 [4]", 3, params.getColumnPos(3));
   1187         assertEquals("6 key fix 4 L1 [5]", 0, params.getColumnPos(4));
   1188         assertEquals("6 key fix 4 L1 [6]", 1, params.getColumnPos(5));
   1189         assertEquals("6 key fix 4 L1 adjust", 0, params.mTopRowAdjustment);
   1190         assertEquals("6 key fix 4 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1191     }
   1192 
   1193     // |___   [5] [6]
   1194     // |___ [1] <2> [3] [4]
   1195     public void testLayout6KeyFix4L2() {
   1196         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_L2);
   1197         assertEquals("6 key fix 4 L2 columns", 4, params.mNumColumns);
   1198         assertEquals("6 key fix 4 L2 rows", 2, params.mNumRows);
   1199         assertEquals("6 key fix 4 L2 left", 1, params.mLeftKeys);
   1200         assertEquals("6 key fix 4 L2 right", 3, params.mRightKeys);
   1201         assertEquals("6 key fix 4 L2 [1]", -1, params.getColumnPos(0));
   1202         assertEquals("6 key fix 4 L2 <2>", 0, params.getColumnPos(1));
   1203         assertEquals("6 key fix 4 L2 [3]", 1, params.getColumnPos(2));
   1204         assertEquals("6 key fix 4 L2 [4]", 2, params.getColumnPos(3));
   1205         assertEquals("6 key fix 4 L2 [5]", 0, params.getColumnPos(4));
   1206         assertEquals("6 key fix 4 L2 [6]", 1, params.getColumnPos(5));
   1207         assertEquals("6 key fix 4 L2 adjust", -1, params.mTopRowAdjustment);
   1208         assertEquals("6 key fix 4 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1209     }
   1210 
   1211     //         [5] [6]|
   1212     // [1] [2] [3] <4>|
   1213     public void testLayout6KeyFix4R0() {
   1214         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R0);
   1215         assertEquals("6 key fix 4 R0 columns", 4, params.mNumColumns);
   1216         assertEquals("6 key fix 4 R0 rows", 2, params.mNumRows);
   1217         assertEquals("6 key fix 4 R0 left", 3, params.mLeftKeys);
   1218         assertEquals("6 key fix 4 R0 right", 1, params.mRightKeys);
   1219         assertEquals("6 key fix 4 R0 [1]", -3, params.getColumnPos(0));
   1220         assertEquals("6 key fix 4 R0 [2]", -2, params.getColumnPos(1));
   1221         assertEquals("6 key fix 4 R0 [3]", -1, params.getColumnPos(2));
   1222         assertEquals("6 key fix 4 R0 <4>", 0, params.getColumnPos(3));
   1223         assertEquals("6 key fix 4 R0 [5]", -1, params.getColumnPos(4));
   1224         assertEquals("6 key fix 4 R0 [6]", 0, params.getColumnPos(5));
   1225         assertEquals("6 key fix 4 R0 adjust", 0, params.mTopRowAdjustment);
   1226         assertEquals("6 key fix 4 R0 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1227     }
   1228 
   1229     //         [5] [6] ___|
   1230     // [1] [2] [3] <4> ___|
   1231     public void testLayout6KeyFix4R1() {
   1232         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R1);
   1233         assertEquals("6 key fix 4 R1 columns", 4, params.mNumColumns);
   1234         assertEquals("6 key fix 4 R1 rows", 2, params.mNumRows);
   1235         assertEquals("6 key fix 4 R1 left", 3, params.mLeftKeys);
   1236         assertEquals("6 key fix 4 R1 right", 1, params.mRightKeys);
   1237         assertEquals("6 key fix 4 R1 [1]", -3, params.getColumnPos(0));
   1238         assertEquals("6 key fix 4 R1 [2]", -2, params.getColumnPos(1));
   1239         assertEquals("6 key fix 4 R1 [3]", -1, params.getColumnPos(2));
   1240         assertEquals("6 key fix 4 R1 [4]", 0, params.getColumnPos(3));
   1241         assertEquals("6 key fix 4 R1 [5]", -1, params.getColumnPos(4));
   1242         assertEquals("6 key fix 4 R1 [6]", 0, params.getColumnPos(5));
   1243         assertEquals("6 key fix 4 R1 adjust", 0, params.mTopRowAdjustment);
   1244         assertEquals("6 key fix 4 R1 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1245     }
   1246 
   1247     //       [5] [6]   ___|
   1248     // [1] [2] <3> [4] ___|
   1249     public void testLayout6KeyFix4R2() {
   1250         MoreKeysKeyboardParams params = createParams(6, 4, XPOS_R2);
   1251         assertEquals("6 key fix 4 R2 columns", 4, params.mNumColumns);
   1252         assertEquals("6 key fix 4 R2 rows", 2, params.mNumRows);
   1253         assertEquals("6 key fix 4 R2 left", 2, params.mLeftKeys);
   1254         assertEquals("6 key fix 4 R2 right", 2, params.mRightKeys);
   1255         assertEquals("6 key fix 4 R2 [1]", -2, params.getColumnPos(0));
   1256         assertEquals("6 key fix 4 R2 [2]", -1, params.getColumnPos(1));
   1257         assertEquals("6 key fix 4 R2 <3>", 0, params.getColumnPos(2));
   1258         assertEquals("6 key fix 4 R2 [4]", 1, params.getColumnPos(3));
   1259         assertEquals("6 key fix 4 R2 [5]", 0, params.getColumnPos(4));
   1260         assertEquals("6 key fix 4 R2 [6]", 1, params.getColumnPos(5));
   1261         assertEquals("6 key fix 4 R2 adjust", -1, params.mTopRowAdjustment);
   1262         assertEquals("6 key fix 4 R2 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1263     }
   1264 
   1265     // [5] [6] [7]
   1266     // [1] <2> [3] [4]
   1267     public void testLayout7KeyFix4M0() {
   1268         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_M0);
   1269         assertEquals("7 key fix 4 M0 columns", 4, params.mNumColumns);
   1270         assertEquals("7 key fix 4 M0 rows", 2, params.mNumRows);
   1271         assertEquals("7 key fix 4 M0 left", 1, params.mLeftKeys);
   1272         assertEquals("7 key fix 4 M0 right", 3, params.mRightKeys);
   1273         assertEquals("7 key fix 4 M0 [1]", -1, params.getColumnPos(0));
   1274         assertEquals("7 key fix 4 M0 <2>", 0, params.getColumnPos(1));
   1275         assertEquals("7 key fix 4 M0 [3]", 1, params.getColumnPos(2));
   1276         assertEquals("7 key fix 4 M0 [4]", 2, params.getColumnPos(3));
   1277         assertEquals("7 key fix 4 M0 [5]", -1, params.getColumnPos(4));
   1278         assertEquals("7 key fix 4 M0 [6]", 0, params.getColumnPos(5));
   1279         assertEquals("7 key fix 4 M0 [7]", 1, params.getColumnPos(6));
   1280         assertEquals("7 key fix 4 M0 adjust", 0, params.mTopRowAdjustment);
   1281         assertEquals("7 key fix 4 M0 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1282     }
   1283 
   1284     // |[5] [6] [7]
   1285     // |<1> [2] [3] [4]
   1286     public void testLayout7KeyFix4L0() {
   1287         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_L0);
   1288         assertEquals("7 key fix 4 L0 columns", 4, params.mNumColumns);
   1289         assertEquals("7 key fix 4 L0 rows", 2, params.mNumRows);
   1290         assertEquals("7 key fix 4 L0 left", 0, params.mLeftKeys);
   1291         assertEquals("7 key fix 4 L0 right", 4, params.mRightKeys);
   1292         assertEquals("7 key fix 4 L0 <1>", 0, params.getColumnPos(0));
   1293         assertEquals("7 key fix 4 L0 [2]", 1, params.getColumnPos(1));
   1294         assertEquals("7 key fix 4 L0 [3]", 2, params.getColumnPos(2));
   1295         assertEquals("7 key fix 4 L0 [4]", 3, params.getColumnPos(3));
   1296         assertEquals("7 key fix 4 L0 [5]", 0, params.getColumnPos(4));
   1297         assertEquals("7 key fix 4 L0 [6]", 1, params.getColumnPos(5));
   1298         assertEquals("7 key fix 4 L0 [7]", 2, params.getColumnPos(6));
   1299         assertEquals("7 key fix 4 L0 adjust", 0, params.mTopRowAdjustment);
   1300         assertEquals("7 key fix 4 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1301     }
   1302 
   1303     // |___ [5] [6] [7]
   1304     // |___ <1> [2] [3] [4]
   1305     public void testLayout7KeyFix4L1() {
   1306         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_L1);
   1307         assertEquals("7 key fix 4 L1 columns", 4, params.mNumColumns);
   1308         assertEquals("7 key fix 4 L1 rows", 2, params.mNumRows);
   1309         assertEquals("7 key fix 4 L1 left", 0, params.mLeftKeys);
   1310         assertEquals("7 key fix 4 L1 right", 4, params.mRightKeys);
   1311         assertEquals("7 key fix 4 L1 <1>", 0, params.getColumnPos(0));
   1312         assertEquals("7 key fix 4 L1 [2]", 1, params.getColumnPos(1));
   1313         assertEquals("7 key fix 4 L1 [3]", 2, params.getColumnPos(2));
   1314         assertEquals("7 key fix 4 L1 [4]", 3, params.getColumnPos(3));
   1315         assertEquals("7 key fix 4 L1 [5]", 0, params.getColumnPos(4));
   1316         assertEquals("7 key fix 4 L1 [6]", 1, params.getColumnPos(5));
   1317         assertEquals("7 key fix 4 l1 [7]", 2, params.getColumnPos(6));
   1318         assertEquals("7 key fix 4 L1 adjust", 0, params.mTopRowAdjustment);
   1319         assertEquals("7 key fix 4 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1320     }
   1321 
   1322     // |___ [5] [6] [7]
   1323     // |___ [1] <2> [3] [4]
   1324     public void testLayout7KeyFix4L2() {
   1325         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_L2);
   1326         assertEquals("7 key fix 4 L2 columns", 4, params.mNumColumns);
   1327         assertEquals("7 key fix 4 L2 rows", 2, params.mNumRows);
   1328         assertEquals("7 key fix 4 L2 left", 1, params.mLeftKeys);
   1329         assertEquals("7 key fix 4 L2 right", 3, params.mRightKeys);
   1330         assertEquals("7 key fix 4 L2 [1]", -1, params.getColumnPos(0));
   1331         assertEquals("7 key fix 4 L2 <2>", 0, params.getColumnPos(1));
   1332         assertEquals("7 key fix 4 L2 [3]", 1, params.getColumnPos(2));
   1333         assertEquals("7 key fix 4 L2 [4]", 2, params.getColumnPos(3));
   1334         assertEquals("7 key fix 4 L2 [5]", -1, params.getColumnPos(4));
   1335         assertEquals("7 key fix 4 L2 [6]", 0, params.getColumnPos(5));
   1336         assertEquals("7 key fix 4 L2 [7]", 1, params.getColumnPos(6));
   1337         assertEquals("7 key fix 4 L2 adjust", 0, params.mTopRowAdjustment);
   1338         assertEquals("7 key fix 4 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1339     }
   1340 
   1341     //     [5] [6] [7]|
   1342     // [1] [2] [3] <4>|
   1343     public void testLayout7KeyFix4R0() {
   1344         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_R0);
   1345         assertEquals("7 key fix 4 R0 columns", 4, params.mNumColumns);
   1346         assertEquals("7 key fix 4 R0 rows", 2, params.mNumRows);
   1347         assertEquals("7 key fix 4 R0 left", 3, params.mLeftKeys);
   1348         assertEquals("7 key fix 4 R0 right", 1, params.mRightKeys);
   1349         assertEquals("7 key fix 4 R0 [1]", -3, params.getColumnPos(0));
   1350         assertEquals("7 key fix 4 R0 [2]", -2, params.getColumnPos(1));
   1351         assertEquals("7 key fix 4 R0 [3]", -1, params.getColumnPos(2));
   1352         assertEquals("7 key fix 4 R0 <4>", 0, params.getColumnPos(3));
   1353         assertEquals("7 key fix 4 R0 [5]", -2, params.getColumnPos(4));
   1354         assertEquals("7 key fix 4 R0 [6]", -1, params.getColumnPos(5));
   1355         assertEquals("7 key fix 4 R0 [7]", 0, params.getColumnPos(6));
   1356         assertEquals("7 key fix 4 R0 adjust", 0, params.mTopRowAdjustment);
   1357         assertEquals("7 key fix 4 R0 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1358     }
   1359 
   1360     //     [5] [6] [7] ___|
   1361     // [1] [2] [3] <4> ___|
   1362     public void testLayout7KeyFix4R1() {
   1363         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_R1);
   1364         assertEquals("7 key fix 4 R1 columns", 4, params.mNumColumns);
   1365         assertEquals("7 key fix 4 R1 rows", 2, params.mNumRows);
   1366         assertEquals("7 key fix 4 R1 left", 3, params.mLeftKeys);
   1367         assertEquals("7 key fix 4 R1 right", 1, params.mRightKeys);
   1368         assertEquals("7 key fix 4 R1 [1]", -3, params.getColumnPos(0));
   1369         assertEquals("7 key fix 4 R1 [2]", -2, params.getColumnPos(1));
   1370         assertEquals("7 key fix 4 R1 [3]", -1, params.getColumnPos(2));
   1371         assertEquals("7 key fix 4 R1 <4>", 0, params.getColumnPos(3));
   1372         assertEquals("7 key fix 4 R1 [5]", -2, params.getColumnPos(4));
   1373         assertEquals("7 key fix 4 R1 [6]", -1, params.getColumnPos(5));
   1374         assertEquals("7 key fix 4 R1 [7]", 0, params.getColumnPos(6));
   1375         assertEquals("7 key fix 4 R1 adjust", 0, params.mTopRowAdjustment);
   1376         assertEquals("7 key fix 4 R1 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1377     }
   1378 
   1379     //     [5] [6] [7] ___|
   1380     // [1] [2] <3> [4] ___|
   1381     public void testLayout7KeyFix4R2() {
   1382         MoreKeysKeyboardParams params = createParams(7, 4, XPOS_R2);
   1383         assertEquals("7 key fix 4 R2 columns", 4, params.mNumColumns);
   1384         assertEquals("7 key fix 4 R2 rows", 2, params.mNumRows);
   1385         assertEquals("7 key fix 4 R2 left", 2, params.mLeftKeys);
   1386         assertEquals("7 key fix 4 R2 right", 2, params.mRightKeys);
   1387         assertEquals("7 key fix 4 R2 [1]", -2, params.getColumnPos(0));
   1388         assertEquals("7 key fix 4 R2 [2]", -1, params.getColumnPos(1));
   1389         assertEquals("7 key fix 4 R2 <3>", 0, params.getColumnPos(2));
   1390         assertEquals("7 key fix 4 R2 [4]", 1, params.getColumnPos(3));
   1391         assertEquals("7 key fix 4 R2 [5]", -1, params.getColumnPos(4));
   1392         assertEquals("7 key fix 4 R2 [6]", 0, params.getColumnPos(5));
   1393         assertEquals("7 key fix 4 R2 [7]", 1, params.getColumnPos(6));
   1394         assertEquals("7 key fix 4 R2 adjust", 0, params.mTopRowAdjustment);
   1395         assertEquals("7 key fix 4 R2 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1396     }
   1397 
   1398     // [5] [6] [7] [8]
   1399     // [1] <2> [3] [4]
   1400     public void testLayout8KeyFix4M0() {
   1401         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_M0);
   1402         assertEquals("8 key fix 4 M0 columns", 4, params.mNumColumns);
   1403         assertEquals("8 key fix 4 M0 rows", 2, params.mNumRows);
   1404         assertEquals("8 key fix 4 M0 left", 1, params.mLeftKeys);
   1405         assertEquals("8 key fix 4 M0 right", 3, params.mRightKeys);
   1406         assertEquals("8 key fix 4 M0 [1]", -1, params.getColumnPos(0));
   1407         assertEquals("8 key fix 4 M0 <2>", 0, params.getColumnPos(1));
   1408         assertEquals("8 key fix 4 M0 [3]", 1, params.getColumnPos(2));
   1409         assertEquals("8 key fix 4 M0 [4]", 2, params.getColumnPos(3));
   1410         assertEquals("8 key fix 4 M0 [5]", -1, params.getColumnPos(4));
   1411         assertEquals("8 key fix 4 M0 [6]", 0, params.getColumnPos(5));
   1412         assertEquals("8 key fix 4 M0 [7]", 1, params.getColumnPos(6));
   1413         assertEquals("8 key fix 4 M0 [8]", 2, params.getColumnPos(7));
   1414         assertEquals("8 key fix 4 M0 adjust", 0, params.mTopRowAdjustment);
   1415         assertEquals("8 key fix 4 M0 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1416     }
   1417 
   1418     // |[5] [6] [7] [8]
   1419     // |<1> [2] [3] [4]
   1420     public void testLayout8KeyFix4L0() {
   1421         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_L0);
   1422         assertEquals("8 key fix 4 L0 columns", 4, params.mNumColumns);
   1423         assertEquals("8 key fix 4 L0 rows", 2, params.mNumRows);
   1424         assertEquals("8 key fix 4 L0 left", 0, params.mLeftKeys);
   1425         assertEquals("8 key fix 4 L0 right", 4, params.mRightKeys);
   1426         assertEquals("8 key fix 4 L0 <1>", 0, params.getColumnPos(0));
   1427         assertEquals("8 key fix 4 L0 [2]", 1, params.getColumnPos(1));
   1428         assertEquals("8 key fix 4 L0 [3]", 2, params.getColumnPos(2));
   1429         assertEquals("8 key fix 4 L0 [4]", 3, params.getColumnPos(3));
   1430         assertEquals("8 key fix 4 L0 [5]", 0, params.getColumnPos(4));
   1431         assertEquals("8 key fix 4 L0 [6]", 1, params.getColumnPos(5));
   1432         assertEquals("8 key fix 4 L0 [7]", 2, params.getColumnPos(6));
   1433         assertEquals("8 key fix 4 L0 [8]", 3, params.getColumnPos(7));
   1434         assertEquals("8 key fix 4 L0 adjust", 0, params.mTopRowAdjustment);
   1435         assertEquals("8 key fix 4 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1436     }
   1437 
   1438     // |___ [5] [6] [7] [8]
   1439     // |___ <1> [2] [3] [4]
   1440     public void testLayout8KeyFix4L1() {
   1441         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_L1);
   1442         assertEquals("8 key fix 4 L1 columns", 4, params.mNumColumns);
   1443         assertEquals("8 key fix 4 L1 rows", 2, params.mNumRows);
   1444         assertEquals("8 key fix 4 L1 left", 0, params.mLeftKeys);
   1445         assertEquals("8 key fix 4 L1 right", 4, params.mRightKeys);
   1446         assertEquals("8 key fix 4 L1 <1>", 0, params.getColumnPos(0));
   1447         assertEquals("8 key fix 4 L1 [2]", 1, params.getColumnPos(1));
   1448         assertEquals("8 key fix 4 L1 [3]", 2, params.getColumnPos(2));
   1449         assertEquals("8 key fix 4 L1 [4]", 3, params.getColumnPos(3));
   1450         assertEquals("8 key fix 4 L1 [5]", 0, params.getColumnPos(4));
   1451         assertEquals("8 key fix 4 L1 [6]", 1, params.getColumnPos(5));
   1452         assertEquals("8 key fix 4 L1 [7]", 2, params.getColumnPos(6));
   1453         assertEquals("8 key fix 4 L1 [8]", 3, params.getColumnPos(7));
   1454         assertEquals("8 key fix 4 L1 adjust", 0, params.mTopRowAdjustment);
   1455         assertEquals("8 key fix 4 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1456     }
   1457 
   1458     // |___ [5] [6] [7] [8]
   1459     // |___ [1] <2> [3] [4]
   1460     public void testLayout8KeyFix4L2() {
   1461         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_L2);
   1462         assertEquals("8 key fix 4 L2 columns", 4, params.mNumColumns);
   1463         assertEquals("8 key fix 4 L2 rows", 2, params.mNumRows);
   1464         assertEquals("8 key fix 4 L2 left", 1, params.mLeftKeys);
   1465         assertEquals("8 key fix 4 L2 right", 3, params.mRightKeys);
   1466         assertEquals("8 key fix 4 L2 [1]", -1, params.getColumnPos(0));
   1467         assertEquals("8 key fix 4 L2 <2>", 0, params.getColumnPos(1));
   1468         assertEquals("8 key fix 4 L2 [3]", 1, params.getColumnPos(2));
   1469         assertEquals("8 key fix 4 L2 [4]", 2, params.getColumnPos(3));
   1470         assertEquals("8 key fix 4 L2 [5]", -1, params.getColumnPos(4));
   1471         assertEquals("8 key fix 4 L2 [6]", 0, params.getColumnPos(5));
   1472         assertEquals("8 key fix 4 L2 [7]", 1, params.getColumnPos(6));
   1473         assertEquals("8 key fix 4 L2 [8]", 2, params.getColumnPos(7));
   1474         assertEquals("8 key fix 4 L2 adjust", 0, params.mTopRowAdjustment);
   1475         assertEquals("8 key fix 4 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1476     }
   1477 
   1478     // [5] [6] [7] [8]|
   1479     // [1] [2] [3] <4>|
   1480     public void testLayout8KeyFix4R0() {
   1481         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_R0);
   1482         assertEquals("8 key fix 4 R0 columns", 4, params.mNumColumns);
   1483         assertEquals("8 key fix 4 R0 rows", 2, params.mNumRows);
   1484         assertEquals("8 key fix 4 R0 left", 3, params.mLeftKeys);
   1485         assertEquals("8 key fix 4 R0 right", 1, params.mRightKeys);
   1486         assertEquals("8 key fix 4 R0 [1]", -3, params.getColumnPos(0));
   1487         assertEquals("8 key fix 4 R0 [2]", -2, params.getColumnPos(1));
   1488         assertEquals("8 key fix 4 R0 [3]", -1, params.getColumnPos(2));
   1489         assertEquals("8 key fix 4 R0 <4>", 0, params.getColumnPos(3));
   1490         assertEquals("8 key fix 4 R0 [5]", -3, params.getColumnPos(4));
   1491         assertEquals("8 key fix 4 R0 [6]", -2, params.getColumnPos(5));
   1492         assertEquals("8 key fix 4 R0 [7]", -1, params.getColumnPos(6));
   1493         assertEquals("8 key fix 4 R0 [8]", 0, params.getColumnPos(7));
   1494         assertEquals("8 key fix 4 R0 adjust", 0, params.mTopRowAdjustment);
   1495         assertEquals("8 key fix 4 R0 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1496     }
   1497 
   1498     // [5] [6] [7] [8] ___|
   1499     // [1] [2] [3] <4> ___|
   1500     public void testLayout8KeyFix4R1() {
   1501         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_R1);
   1502         assertEquals("8 key fix 4 R1 columns", 4, params.mNumColumns);
   1503         assertEquals("8 key fix 4 R1 rows", 2, params.mNumRows);
   1504         assertEquals("8 key fix 4 R1 left", 3, params.mLeftKeys);
   1505         assertEquals("8 key fix 4 R1 right", 1, params.mRightKeys);
   1506         assertEquals("8 key fix 4 R1 [1]", -3, params.getColumnPos(0));
   1507         assertEquals("8 key fix 4 R1 [2]", -2, params.getColumnPos(1));
   1508         assertEquals("8 key fix 4 R1 [3]", -1, params.getColumnPos(2));
   1509         assertEquals("8 key fix 4 R1 <4>", 0, params.getColumnPos(3));
   1510         assertEquals("8 key fix 4 R1 [5]", -3, params.getColumnPos(4));
   1511         assertEquals("8 key fix 4 R1 [6]", -2, params.getColumnPos(5));
   1512         assertEquals("8 key fix 4 R1 [7]", -1, params.getColumnPos(6));
   1513         assertEquals("8 key fix 4 R1 [8]", 0, params.getColumnPos(7));
   1514         assertEquals("8 key fix 4 R1 adjust", 0, params.mTopRowAdjustment);
   1515         assertEquals("8 key fix 4 R1 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1516     }
   1517 
   1518     // [5] [6] [7] [8] ___|
   1519     // [1] [2] <3> [4] ___|
   1520     public void testLayout8KeyFix4R2() {
   1521         MoreKeysKeyboardParams params = createParams(8, 4, XPOS_R2);
   1522         assertEquals("8 key fix 4 R2 columns", 4, params.mNumColumns);
   1523         assertEquals("8 key fix 4 R2 rows", 2, params.mNumRows);
   1524         assertEquals("8 key fix 4 R2 left", 2, params.mLeftKeys);
   1525         assertEquals("8 key fix 4 R2 right", 2, params.mRightKeys);
   1526         assertEquals("8 key fix 4 R2 [1]", -2, params.getColumnPos(0));
   1527         assertEquals("8 key fix 4 R2 [2]", -1, params.getColumnPos(1));
   1528         assertEquals("8 key fix 4 R2 <3>", 0, params.getColumnPos(2));
   1529         assertEquals("8 key fix 4 R2 [4]", 1, params.getColumnPos(3));
   1530         assertEquals("8 key fix 4 R2 [5]", -2, params.getColumnPos(4));
   1531         assertEquals("8 key fix 4 R2 [6]", -1, params.getColumnPos(5));
   1532         assertEquals("8 key fix 4 R2 [7]", 0, params.getColumnPos(6));
   1533         assertEquals("8 key fix 4 R2 [8]", 1, params.getColumnPos(7));
   1534         assertEquals("8 key fix 4 R2 adjust", 0, params.mTopRowAdjustment);
   1535         assertEquals("8 key fix 4 R2 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1536     }
   1537 
   1538      // [1] [2] <3> [4] [5]
   1539     public void testLayout5KeyFix5M0() {
   1540         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_M0);
   1541         assertEquals("5 key fix 5 columns", 5, params.mNumColumns);
   1542         assertEquals("5 key fix 5 rows", 1, params.mNumRows);
   1543         assertEquals("5 key fix 5 left", 2, params.mLeftKeys);
   1544         assertEquals("5 key fix 5 right", 3, params.mRightKeys);
   1545         assertEquals("5 key fix 5 [1]", -2, params.getColumnPos(0));
   1546         assertEquals("5 key fix 5 [2]", -1, params.getColumnPos(1));
   1547         assertEquals("5 key fix 5 <3>", 0, params.getColumnPos(2));
   1548         assertEquals("5 key fix 5 [4]", 1, params.getColumnPos(3));
   1549         assertEquals("5 key fix 5 [5]", 2, params.getColumnPos(4));
   1550         assertEquals("5 key fix 5 adjust", 0, params.mTopRowAdjustment);
   1551         assertEquals("5 key fix 5 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1552     }
   1553 
   1554     // |<1> [2] [3] [4] [5]
   1555     public void testLayout5KeyFix5L0() {
   1556         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L0);
   1557         assertEquals("5 key fix 5 L0 columns", 5, params.mNumColumns);
   1558         assertEquals("5 key fix 5 L0 rows", 1, params.mNumRows);
   1559         assertEquals("5 key fix 5 L0 left", 0, params.mLeftKeys);
   1560         assertEquals("5 key fix 5 L0 right", 5, params.mRightKeys);
   1561         assertEquals("5 key fix 5 L0 <1>", 0, params.getColumnPos(0));
   1562         assertEquals("5 key fix 5 L0 [2]", 1, params.getColumnPos(1));
   1563         assertEquals("5 key fix 5 L0 [3]", 2, params.getColumnPos(2));
   1564         assertEquals("5 key fix 5 L0 [4]", 3, params.getColumnPos(3));
   1565         assertEquals("5 key fix 5 L0 [5]", 4, params.getColumnPos(4));
   1566         assertEquals("5 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
   1567         assertEquals("5 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1568     }
   1569 
   1570     // |___ <1> [2] [3] [4] [5]
   1571     public void testLayout5KeyFix5L1() {
   1572         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L1);
   1573         assertEquals("5 key fix 5 L1 columns", 5, params.mNumColumns);
   1574         assertEquals("5 key fix 5 L1 rows", 1, params.mNumRows);
   1575         assertEquals("5 key fix 5 L1 left", 0, params.mLeftKeys);
   1576         assertEquals("5 key fix 5 L1 right", 5, params.mRightKeys);
   1577         assertEquals("5 key fix 5 L1 <1>", 0, params.getColumnPos(0));
   1578         assertEquals("5 key fix 5 L1 [2]", 1, params.getColumnPos(1));
   1579         assertEquals("5 key fix 5 L1 [3]", 2, params.getColumnPos(2));
   1580         assertEquals("5 key fix 5 L1 [4]", 3, params.getColumnPos(3));
   1581         assertEquals("5 key fix 5 L1 [5]", 4, params.getColumnPos(4));
   1582         assertEquals("5 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
   1583         assertEquals("5 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1584     }
   1585 
   1586     // |___ [1] <2> [3] [4] [5]
   1587     public void testLayout5KeyFix5L2() {
   1588         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_L2);
   1589         assertEquals("5 key fix 5 L2 columns", 5, params.mNumColumns);
   1590         assertEquals("5 key fix 5 L2 rows", 1, params.mNumRows);
   1591         assertEquals("5 key fix 5 L2 left", 1, params.mLeftKeys);
   1592         assertEquals("5 key fix 5 L2 right", 4, params.mRightKeys);
   1593         assertEquals("5 key fix 5 L2 [1]", -1, params.getColumnPos(0));
   1594         assertEquals("5 key fix 5 L2 <2>", 0, params.getColumnPos(1));
   1595         assertEquals("5 key fix 5 L2 [3]", 1, params.getColumnPos(2));
   1596         assertEquals("5 key fix 5 L2 [4]", 2, params.getColumnPos(3));
   1597         assertEquals("5 key fix 5 L2 [5]", 3, params.getColumnPos(4));
   1598         assertEquals("5 key fix 5 L2 adjust", 0, params.mTopRowAdjustment);
   1599         assertEquals("5 key fix 5 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1600     }
   1601 
   1602     // [1] [2] [3] [4] <5>|
   1603     public void testLayout5KeyFix5R0() {
   1604         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R0);
   1605         assertEquals("5 key fix 5 R0 columns", 5, params.mNumColumns);
   1606         assertEquals("5 key fix 5 R0 rows", 1, params.mNumRows);
   1607         assertEquals("5 key fix 5 R0 left", 4, params.mLeftKeys);
   1608         assertEquals("5 key fix 5 R0 right", 1, params.mRightKeys);
   1609         assertEquals("5 key fix 5 R0 [1]", -4, params.getColumnPos(0));
   1610         assertEquals("5 key fix 5 R0 [2]", -3, params.getColumnPos(1));
   1611         assertEquals("5 key fix 5 R0 [3]", -2, params.getColumnPos(2));
   1612         assertEquals("5 key fix 5 R0 [4]", -1, params.getColumnPos(3));
   1613         assertEquals("5 key fix 5 R0 <5>", 0, params.getColumnPos(4));
   1614         assertEquals("5 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
   1615         assertEquals("5 key fix 5 R0 default", WIDTH * 4, params.getDefaultKeyCoordX());
   1616     }
   1617 
   1618     // [1] [2] [3] [4] <5> ___|
   1619     public void testLayout5KeyFix5R1() {
   1620         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R1);
   1621         assertEquals("5 key fix 5 R1 columns", 5, params.mNumColumns);
   1622         assertEquals("5 key fix 5 R1 rows", 1, params.mNumRows);
   1623         assertEquals("5 key fix 5 R1 left", 4, params.mLeftKeys);
   1624         assertEquals("5 key fix 5 R1 right", 1, params.mRightKeys);
   1625         assertEquals("5 key fix 5 R1 [1]", -4, params.getColumnPos(0));
   1626         assertEquals("5 key fix 5 R1 [2]", -3, params.getColumnPos(1));
   1627         assertEquals("5 key fix 5 R1 [3]", -2, params.getColumnPos(2));
   1628         assertEquals("5 key fix 5 R1 [4]", -1, params.getColumnPos(3));
   1629         assertEquals("5 key fix 5 R1 <5>", 0, params.getColumnPos(4));
   1630         assertEquals("5 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
   1631         assertEquals("5 key fix 5 R1 default", WIDTH * 4, params.getDefaultKeyCoordX());
   1632     }
   1633 
   1634     // [1] [2] [3] <4> [5] ___|
   1635     public void testLayout5KeyFix5R2() {
   1636         MoreKeysKeyboardParams params = createParams(5, 5, XPOS_R2);
   1637         assertEquals("5 key fix 5 R2 columns", 5, params.mNumColumns);
   1638         assertEquals("5 key fix 5 R2 rows", 1, params.mNumRows);
   1639         assertEquals("5 key fix 5 R2 left", 3, params.mLeftKeys);
   1640         assertEquals("5 key fix 5 R2 right", 2, params.mRightKeys);
   1641         assertEquals("5 key fix 5 R2 [1]", -3, params.getColumnPos(0));
   1642         assertEquals("5 key fix 5 R2 [2]", -2, params.getColumnPos(1));
   1643         assertEquals("5 key fix 5 R2 [3]", -1, params.getColumnPos(2));
   1644         assertEquals("5 key fix 5 R2 <4>", 0, params.getColumnPos(3));
   1645         assertEquals("5 key fix 5 R2 [5]", 1, params.getColumnPos(4));
   1646         assertEquals("5 key fix 5 R2 adjust", 0, params.mTopRowAdjustment);
   1647         assertEquals("5 key fix 5 R2 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1648     }
   1649 
   1650     //         [6]
   1651     // [1] [2] <3> [4] [5]
   1652     public void testLayout6KeyFix5M0() {
   1653         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_M0);
   1654         assertEquals("6 key fix 5 columns", 5, params.mNumColumns);
   1655         assertEquals("6 key fix 5 rows", 2, params.mNumRows);
   1656         assertEquals("6 key fix 5 left", 2, params.mLeftKeys);
   1657         assertEquals("6 key fix 5 right", 3, params.mRightKeys);
   1658         assertEquals("6 key fix 5 [1]", -2, params.getColumnPos(0));
   1659         assertEquals("6 key fix 5 [2]", -1, params.getColumnPos(1));
   1660         assertEquals("6 key fix 5 <3>", 0, params.getColumnPos(2));
   1661         assertEquals("6 key fix 5 [4]", 1, params.getColumnPos(3));
   1662         assertEquals("6 key fix 5 [5]", 2, params.getColumnPos(4));
   1663         assertEquals("6 key fix 5 [6]", 0, params.getColumnPos(5));
   1664         assertEquals("6 key fix 5 adjust", 0, params.mTopRowAdjustment);
   1665         assertEquals("6 key fix 5 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1666     }
   1667 
   1668     // |[6]
   1669     // |<1> [2] [3] [4] [5]
   1670     public void testLayout6KeyFix5L0() {
   1671         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L0);
   1672         assertEquals("6 key fix 5 L0 columns", 5, params.mNumColumns);
   1673         assertEquals("6 key fix 5 L0 rows", 2, params.mNumRows);
   1674         assertEquals("6 key fix 5 L0 left", 0, params.mLeftKeys);
   1675         assertEquals("6 key fix 5 L0 right", 5, params.mRightKeys);
   1676         assertEquals("6 key fix 5 L0 <1>", 0, params.getColumnPos(0));
   1677         assertEquals("6 key fix 5 L0 [2]", 1, params.getColumnPos(1));
   1678         assertEquals("6 key fix 5 L0 [3]", 2, params.getColumnPos(2));
   1679         assertEquals("6 key fix 5 L0 [4]", 3, params.getColumnPos(3));
   1680         assertEquals("6 key fix 5 L0 [5]", 4, params.getColumnPos(4));
   1681         assertEquals("6 key fix 5 L0 [6]", 0, params.getColumnPos(5));
   1682         assertEquals("6 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
   1683         assertEquals("6 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1684     }
   1685 
   1686     // |___ [6]
   1687     // |___ <1> [2] [3] [4] [5]
   1688     public void testLayout6KeyFix5L1() {
   1689         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L1);
   1690         assertEquals("6 key fix 5 L1 columns", 5, params.mNumColumns);
   1691         assertEquals("6 key fix 5 L1 rows", 2, params.mNumRows);
   1692         assertEquals("6 key fix 5 L1 left", 0, params.mLeftKeys);
   1693         assertEquals("6 key fix 5 L1 right", 5, params.mRightKeys);
   1694         assertEquals("6 key fix 5 L1 <1>", 0, params.getColumnPos(0));
   1695         assertEquals("6 key fix 5 L1 [2]", 1, params.getColumnPos(1));
   1696         assertEquals("6 key fix 5 L1 [3]", 2, params.getColumnPos(2));
   1697         assertEquals("6 key fix 5 L1 [4]", 3, params.getColumnPos(3));
   1698         assertEquals("6 key fix 5 L1 [5]", 4, params.getColumnPos(4));
   1699         assertEquals("6 key fix 5 L1 [6]", 0, params.getColumnPos(5));
   1700         assertEquals("6 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
   1701         assertEquals("6 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1702     }
   1703 
   1704     // |___     [6]
   1705     // |___ [1] <2> [3] [4] [5]
   1706     public void testLayout6KeyFix5L2() {
   1707         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_L2);
   1708         assertEquals("6 key fix 5 L2 columns", 5, params.mNumColumns);
   1709         assertEquals("6 key fix 5 L2 rows", 2, params.mNumRows);
   1710         assertEquals("6 key fix 5 L2 left", 1, params.mLeftKeys);
   1711         assertEquals("6 key fix 5 L2 right", 4, params.mRightKeys);
   1712         assertEquals("6 key fix 5 L2 [1]", -1, params.getColumnPos(0));
   1713         assertEquals("6 key fix 5 L2 <2>", 0, params.getColumnPos(1));
   1714         assertEquals("6 key fix 5 L2 [3]", 1, params.getColumnPos(2));
   1715         assertEquals("6 key fix 5 L2 [4]", 2, params.getColumnPos(3));
   1716         assertEquals("6 key fix 5 L2 [5]", 3, params.getColumnPos(4));
   1717         assertEquals("6 key fix 5 L2 [6]", 0, params.getColumnPos(5));
   1718         assertEquals("6 key fix 5 L2 adjust", 0, params.mTopRowAdjustment);
   1719         assertEquals("6 key fix 5 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1720     }
   1721 
   1722     //                 [6]|
   1723     // [1] [2] [3] [4] <5>|
   1724     public void testLayout6KeyFix5R0() {
   1725         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R0);
   1726         assertEquals("6 key fix 5 R0 columns", 5, params.mNumColumns);
   1727         assertEquals("6 key fix 5 R0 rows", 2, params.mNumRows);
   1728         assertEquals("6 key fix 5 R0 left", 4, params.mLeftKeys);
   1729         assertEquals("6 key fix 5 R0 right", 1, params.mRightKeys);
   1730         assertEquals("6 key fix 5 R0 [1]", -4, params.getColumnPos(0));
   1731         assertEquals("6 key fix 5 R0 [2]", -3, params.getColumnPos(1));
   1732         assertEquals("6 key fix 5 R0 [3]", -2, params.getColumnPos(2));
   1733         assertEquals("6 key fix 5 R0 [4]", -1, params.getColumnPos(3));
   1734         assertEquals("6 key fix 5 R0 <5>", 0, params.getColumnPos(4));
   1735         assertEquals("6 key fix 5 R0 [6]", 0, params.getColumnPos(5));
   1736         assertEquals("6 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
   1737         assertEquals("6 key fix 5 R0 default", WIDTH * 4, params.getDefaultKeyCoordX());
   1738     }
   1739 
   1740     //                 [6] ___|
   1741     // [1] [2] [3] [4] <5> ___|
   1742     public void testLayout6KeyFix5R1() {
   1743         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R1);
   1744         assertEquals("6 key fix 5 R1 columns", 5, params.mNumColumns);
   1745         assertEquals("6 key fix 5 R1 rows", 2, params.mNumRows);
   1746         assertEquals("6 key fix 5 R1 left", 4, params.mLeftKeys);
   1747         assertEquals("6 key fix 5 R1 right", 1, params.mRightKeys);
   1748         assertEquals("6 key fix 5 R1 [1]", -4, params.getColumnPos(0));
   1749         assertEquals("6 key fix 5 R1 [2]", -3, params.getColumnPos(1));
   1750         assertEquals("6 key fix 5 R1 [3]", -2, params.getColumnPos(2));
   1751         assertEquals("6 key fix 5 R1 [4]", -1, params.getColumnPos(3));
   1752         assertEquals("6 key fix 5 R1 <5>", 0, params.getColumnPos(4));
   1753         assertEquals("6 key fix 5 R1 [6]", 0, params.getColumnPos(5));
   1754         assertEquals("6 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
   1755         assertEquals("6 key fix 5 R1 default", WIDTH * 4, params.getDefaultKeyCoordX());
   1756     }
   1757 
   1758     //             [6]     ___|
   1759     // [1] [2] [3] <4> [5] ___|
   1760     public void testLayout6KeyFix5R2() {
   1761         MoreKeysKeyboardParams params = createParams(6, 5, XPOS_R2);
   1762         assertEquals("6 key fix 5 R2 columns", 5, params.mNumColumns);
   1763         assertEquals("6 key fix 5 R2 rows", 2, params.mNumRows);
   1764         assertEquals("6 key fix 5 R2 left", 3, params.mLeftKeys);
   1765         assertEquals("6 key fix 5 R2 right", 2, params.mRightKeys);
   1766         assertEquals("6 key fix 5 R2 [1]", -3, params.getColumnPos(0));
   1767         assertEquals("6 key fix 5 R2 [2]", -2, params.getColumnPos(1));
   1768         assertEquals("6 key fix 5 R2 [3]", -1, params.getColumnPos(2));
   1769         assertEquals("6 key fix 5 R2 <4>", 0, params.getColumnPos(3));
   1770         assertEquals("6 key fix 5 R2 [5]", 1, params.getColumnPos(4));
   1771         assertEquals("6 key fix 5 R2 [6]", 0, params.getColumnPos(5));
   1772         assertEquals("6 key fix 5 R2 adjust", 0, params.mTopRowAdjustment);
   1773         assertEquals("6 key fix 5 R2 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1774     }
   1775 
   1776     //       [6] [7]
   1777     // [1] [2] <3> [4] [5]
   1778     public void testLayout7KeyFix5M0() {
   1779         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_M0);
   1780         assertEquals("7 key fix 5 columns", 5, params.mNumColumns);
   1781         assertEquals("7 key fix 5 rows", 2, params.mNumRows);
   1782         assertEquals("7 key fix 5 left", 2, params.mLeftKeys);
   1783         assertEquals("7 key fix 5 right", 3, params.mRightKeys);
   1784         assertEquals("7 key fix 5 [1]", -2, params.getColumnPos(0));
   1785         assertEquals("7 key fix 5 [2]", -1, params.getColumnPos(1));
   1786         assertEquals("7 key fix 5 <3>", 0, params.getColumnPos(2));
   1787         assertEquals("7 key fix 5 [4]", 1, params.getColumnPos(3));
   1788         assertEquals("7 key fix 5 [5]", 2, params.getColumnPos(4));
   1789         assertEquals("7 key fix 5 [6]", 0, params.getColumnPos(5));
   1790         assertEquals("7 key fix 5 [7]", 1, params.getColumnPos(6));
   1791         assertEquals("7 key fix 5 adjust", -1, params.mTopRowAdjustment);
   1792         assertEquals("7 key fix 5 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1793     }
   1794 
   1795     // |[6] [7]
   1796     // |<1> [2] [3] [4] [5]
   1797     public void testLayout7KeyFix5L0() {
   1798         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L0);
   1799         assertEquals("7 key fix 5 L0 columns", 5, params.mNumColumns);
   1800         assertEquals("7 key fix 5 L0 rows", 2, params.mNumRows);
   1801         assertEquals("7 key fix 5 L0 left", 0, params.mLeftKeys);
   1802         assertEquals("7 key fix 5 L0 right", 5, params.mRightKeys);
   1803         assertEquals("7 key fix 5 L0 <1>", 0, params.getColumnPos(0));
   1804         assertEquals("7 key fix 5 L0 [2]", 1, params.getColumnPos(1));
   1805         assertEquals("7 key fix 5 L0 [3]", 2, params.getColumnPos(2));
   1806         assertEquals("7 key fix 5 L0 [4]", 3, params.getColumnPos(3));
   1807         assertEquals("7 key fix 5 L0 [5]", 4, params.getColumnPos(4));
   1808         assertEquals("7 key fix 5 L0 [6]", 0, params.getColumnPos(5));
   1809         assertEquals("7 key fix 5 L0 [7]", 1, params.getColumnPos(6));
   1810         assertEquals("7 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
   1811         assertEquals("7 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1812     }
   1813 
   1814     // |___ [6] [7]
   1815     // |___ <1> [2] [3] [4] [5]
   1816     public void testLayout7KeyFix5L1() {
   1817         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L1);
   1818         assertEquals("7 key fix 5 L1 columns", 5, params.mNumColumns);
   1819         assertEquals("7 key fix 5 L1 rows", 2, params.mNumRows);
   1820         assertEquals("7 key fix 5 L1 left", 0, params.mLeftKeys);
   1821         assertEquals("7 key fix 5 L1 right", 5, params.mRightKeys);
   1822         assertEquals("7 key fix 5 L1 <1>", 0, params.getColumnPos(0));
   1823         assertEquals("7 key fix 5 L1 [2]", 1, params.getColumnPos(1));
   1824         assertEquals("7 key fix 5 L1 [3]", 2, params.getColumnPos(2));
   1825         assertEquals("7 key fix 5 L1 [4]", 3, params.getColumnPos(3));
   1826         assertEquals("7 key fix 5 L1 [5]", 4, params.getColumnPos(4));
   1827         assertEquals("7 key fix 5 L1 [6]", 0, params.getColumnPos(5));
   1828         assertEquals("7 key fix 5 L1 [7]", 1, params.getColumnPos(6));
   1829         assertEquals("7 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
   1830         assertEquals("7 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1831     }
   1832 
   1833     // |___   [6] [7]
   1834     // |___ [1] <2> [3] [4] [5]
   1835     public void testLayout7KeyFix5L2() {
   1836         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_L2);
   1837         assertEquals("7 key fix 5 L2 columns", 5, params.mNumColumns);
   1838         assertEquals("7 key fix 5 L2 rows", 2, params.mNumRows);
   1839         assertEquals("7 key fix 5 L2 left", 1, params.mLeftKeys);
   1840         assertEquals("7 key fix 5 L2 right", 4, params.mRightKeys);
   1841         assertEquals("7 key fix 5 L2 [1]", -1, params.getColumnPos(0));
   1842         assertEquals("7 key fix 5 L2 <2>", 0, params.getColumnPos(1));
   1843         assertEquals("7 key fix 5 L2 [3]", 1, params.getColumnPos(2));
   1844         assertEquals("7 key fix 5 L2 [4]", 2, params.getColumnPos(3));
   1845         assertEquals("7 key fix 5 L2 [5]", 3, params.getColumnPos(4));
   1846         assertEquals("7 key fix 5 L2 [6]", 0, params.getColumnPos(5));
   1847         assertEquals("7 key fix 5 L2 [7]", 1, params.getColumnPos(6));
   1848         assertEquals("7 key fix 5 L2 adjust", -1, params.mTopRowAdjustment);
   1849         assertEquals("7 key fix 5 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1850     }
   1851 
   1852     //             [6] [7]|
   1853     // [1] [2] [3] [4] <5>|
   1854     public void testLayout7KeyFix5R0() {
   1855         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R0);
   1856         assertEquals("7 key fix 5 R0 columns", 5, params.mNumColumns);
   1857         assertEquals("7 key fix 5 R0 rows", 2, params.mNumRows);
   1858         assertEquals("7 key fix 5 R0 left", 4, params.mLeftKeys);
   1859         assertEquals("7 key fix 5 R0 right", 1, params.mRightKeys);
   1860         assertEquals("7 key fix 5 R0 [1]", -4, params.getColumnPos(0));
   1861         assertEquals("7 key fix 5 R0 [2]", -3, params.getColumnPos(1));
   1862         assertEquals("7 key fix 5 R0 [3]", -2, params.getColumnPos(2));
   1863         assertEquals("7 key fix 5 R0 [4]", -1, params.getColumnPos(3));
   1864         assertEquals("7 key fix 5 R0 <5>", 0, params.getColumnPos(4));
   1865         assertEquals("7 key fix 5 R0 [6]", -1, params.getColumnPos(5));
   1866         assertEquals("7 key fix 5 R0 [7]", 0, params.getColumnPos(6));
   1867         assertEquals("7 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
   1868         assertEquals("7 key fix 5 R0 default", WIDTH * 4, params.getDefaultKeyCoordX());
   1869     }
   1870 
   1871     //             [6] [7] ___|
   1872     // [1] [2] [3] [4] <5> ___|
   1873     public void testLayout7KeyFix5R1() {
   1874         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R1);
   1875         assertEquals("7 key fix 5 R1 columns", 5, params.mNumColumns);
   1876         assertEquals("7 key fix 5 R1 rows", 2, params.mNumRows);
   1877         assertEquals("7 key fix 5 R1 left", 4, params.mLeftKeys);
   1878         assertEquals("7 key fix 5 R1 right", 1, params.mRightKeys);
   1879         assertEquals("7 key fix 5 R1 [1]", -4, params.getColumnPos(0));
   1880         assertEquals("7 key fix 5 R1 [2]", -3, params.getColumnPos(1));
   1881         assertEquals("7 key fix 5 R1 [3]", -2, params.getColumnPos(2));
   1882         assertEquals("7 key fix 5 R1 [4]", -1, params.getColumnPos(3));
   1883         assertEquals("7 key fix 5 R1 <5>", 0, params.getColumnPos(4));
   1884         assertEquals("7 key fix 5 R1 [6]", -1, params.getColumnPos(5));
   1885         assertEquals("7 key fix 5 R1 [7]", 0, params.getColumnPos(6));
   1886         assertEquals("7 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
   1887         assertEquals("7 key fix 5 R1 default", WIDTH * 4, params.getDefaultKeyCoordX());
   1888     }
   1889 
   1890     //           [6] [7]   ___|
   1891     // [1] [2] [3] <4> [5] ___|
   1892     public void testLayout7KeyFix5R2() {
   1893         MoreKeysKeyboardParams params = createParams(7, 5, XPOS_R2);
   1894         assertEquals("7 key fix 5 R2 columns",5, params.mNumColumns);
   1895         assertEquals("7 key fix 5 R2 rows", 2, params.mNumRows);
   1896         assertEquals("7 key fix 5 R2 left", 3, params.mLeftKeys);
   1897         assertEquals("7 key fix 5 R2 right", 2, params.mRightKeys);
   1898         assertEquals("7 key fix 5 R2 [1]", -3, params.getColumnPos(0));
   1899         assertEquals("7 key fix 5 R2 [2]", -2, params.getColumnPos(1));
   1900         assertEquals("7 key fix 5 R2 [3]", -1, params.getColumnPos(2));
   1901         assertEquals("7 key fix 5 R2 <4>", 0, params.getColumnPos(3));
   1902         assertEquals("7 key fix 5 R2 [5]", 1, params.getColumnPos(4));
   1903         assertEquals("7 key fix 5 R2 [6]", 0, params.getColumnPos(5));
   1904         assertEquals("7 key fix 5 R2 [7]", 1, params.getColumnPos(6));
   1905         assertEquals("7 key fix 5 R2 adjust", -1, params.mTopRowAdjustment);
   1906         assertEquals("7 key fix 5 R2 default", WIDTH * 3, params.getDefaultKeyCoordX());
   1907     }
   1908 
   1909     //     [6] [7] [8]
   1910     // [1] [2] <3> [4] [5]
   1911     public void testLayout8KeyFix5M0() {
   1912         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_M0);
   1913         assertEquals("8 key fix 5 M0 columns", 5, params.mNumColumns);
   1914         assertEquals("8 key fix 5 M0 rows", 2, params.mNumRows);
   1915         assertEquals("8 key fix 5 M0 left", 2, params.mLeftKeys);
   1916         assertEquals("8 key fix 5 M0 right", 3, params.mRightKeys);
   1917         assertEquals("8 key fix 5 M0 [1]", -2, params.getColumnPos(0));
   1918         assertEquals("8 key fix 5 M0 [2]", -1, params.getColumnPos(1));
   1919         assertEquals("8 key fix 5 M0 <3>", 0, params.getColumnPos(2));
   1920         assertEquals("8 key fix 5 M0 [4]", 1, params.getColumnPos(3));
   1921         assertEquals("8 key fix 5 M0 [5]", 2, params.getColumnPos(4));
   1922         assertEquals("8 key fix 5 M0 [6]", -1, params.getColumnPos(5));
   1923         assertEquals("8 key fix 5 M0 [7]", 0, params.getColumnPos(6));
   1924         assertEquals("8 key fix 5 M0 [8]", 1, params.getColumnPos(7));
   1925         assertEquals("8 key fix 5 M0 adjust", 0, params.mTopRowAdjustment);
   1926         assertEquals("8 key fix 5 M0 default", WIDTH * 2, params.getDefaultKeyCoordX());
   1927     }
   1928 
   1929     // |[6] [7] [8]
   1930     // |<1> [2] [3] [4] [5]
   1931     public void testLayout8KeyFix5L0() {
   1932         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L0);
   1933         assertEquals("8 key fix 5 L0 columns", 5, params.mNumColumns);
   1934         assertEquals("8 key fix 5 L0 rows", 2, params.mNumRows);
   1935         assertEquals("8 key fix 5 L0 left", 0, params.mLeftKeys);
   1936         assertEquals("8 key fix 5 L0 right", 5, params.mRightKeys);
   1937         assertEquals("8 key fix 5 L0 <1>", 0, params.getColumnPos(0));
   1938         assertEquals("8 key fix 5 L0 [2]", 1, params.getColumnPos(1));
   1939         assertEquals("8 key fix 5 L0 [3]", 2, params.getColumnPos(2));
   1940         assertEquals("8 key fix 5 L0 [4]", 3, params.getColumnPos(3));
   1941         assertEquals("8 key fix 5 L0 [5]", 4, params.getColumnPos(4));
   1942         assertEquals("8 key fix 5 L0 [6]", 0, params.getColumnPos(5));
   1943         assertEquals("8 key fix 5 L0 [7]", 1, params.getColumnPos(6));
   1944         assertEquals("8 key fix 5 L0 [8]", 2, params.getColumnPos(7));
   1945         assertEquals("8 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
   1946         assertEquals("8 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1947     }
   1948 
   1949     // |___ [6] [7] [8]
   1950     // |___ <1> [2] [3] [4] [5]
   1951     public void testLayout8KeyFix5L1() {
   1952         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L1);
   1953         assertEquals("8 key fix 5 L1 columns", 5, params.mNumColumns);
   1954         assertEquals("8 key fix 5 L1 rows", 2, params.mNumRows);
   1955         assertEquals("8 key fix 5 L1 left", 0, params.mLeftKeys);
   1956         assertEquals("8 key fix 5 L1 right", 5, params.mRightKeys);
   1957         assertEquals("8 key fix 5 L1 <1>", 0, params.getColumnPos(0));
   1958         assertEquals("8 key fix 5 L1 [2]", 1, params.getColumnPos(1));
   1959         assertEquals("8 key fix 5 L1 [3]", 2, params.getColumnPos(2));
   1960         assertEquals("8 key fix 5 L1 [4]", 3, params.getColumnPos(3));
   1961         assertEquals("8 key fix 5 L1 [5]", 4, params.getColumnPos(4));
   1962         assertEquals("8 key fix 5 L1 [6]", 0, params.getColumnPos(5));
   1963         assertEquals("8 key fix 5 L1 [7]", 1, params.getColumnPos(6));
   1964         assertEquals("8 key fix 5 L1 [8]", 2, params.getColumnPos(7));
   1965         assertEquals("8 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
   1966         assertEquals("8 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   1967     }
   1968 
   1969     // |___ [6] [7] [8]
   1970     // |___ [1] <2> [3] [4] [5]
   1971     public void testLayout8KeyFix5L2() {
   1972         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_L2);
   1973         assertEquals("8 key fix 5 L2 columns", 5, params.mNumColumns);
   1974         assertEquals("8 key fix 5 L2 rows", 2, params.mNumRows);
   1975         assertEquals("8 key fix 5 L2 left", 1, params.mLeftKeys);
   1976         assertEquals("8 key fix 5 L2 right", 4, params.mRightKeys);
   1977         assertEquals("8 key fix 5 L2 [1]", -1, params.getColumnPos(0));
   1978         assertEquals("8 key fix 5 L2 <2>", 0, params.getColumnPos(1));
   1979         assertEquals("8 key fix 5 L2 [3]", 1, params.getColumnPos(2));
   1980         assertEquals("8 key fix 5 L2 [4]", 2, params.getColumnPos(3));
   1981         assertEquals("8 key fix 5 L2 [5]", 3, params.getColumnPos(4));
   1982         assertEquals("8 key fix 5 L2 [6]", -1, params.getColumnPos(5));
   1983         assertEquals("8 key fix 5 L2 [7]", 0, params.getColumnPos(6));
   1984         assertEquals("8 key fix 5 L2 [8]", 1, params.getColumnPos(7));
   1985         assertEquals("8 key fix 5 L2 adjust", 0, params.mTopRowAdjustment);
   1986         assertEquals("8 key fix 5 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   1987     }
   1988 
   1989     //         [6] [7] [8]|
   1990     // [1] [2] [3] [4] <5>|
   1991     public void testLayout8KeyFix5R0() {
   1992         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R0);
   1993         assertEquals("8 key fix 5 R0 columns", 5, params.mNumColumns);
   1994         assertEquals("8 key fix 5 R0 rows", 2, params.mNumRows);
   1995         assertEquals("8 key fix 5 R0 left", 4, params.mLeftKeys);
   1996         assertEquals("8 key fix 5 R0 right", 1, params.mRightKeys);
   1997         assertEquals("8 key fix 5 R0 [1]", -4, params.getColumnPos(0));
   1998         assertEquals("8 key fix 5 R0 [2]", -3, params.getColumnPos(1));
   1999         assertEquals("8 key fix 5 R0 [3]", -2, params.getColumnPos(2));
   2000         assertEquals("8 key fix 5 R0 [4]", -1, params.getColumnPos(3));
   2001         assertEquals("8 key fix 5 R0 <5>", 0, params.getColumnPos(4));
   2002         assertEquals("8 key fix 5 R0 [6]", -2, params.getColumnPos(5));
   2003         assertEquals("8 key fix 5 R0 [7]", -1, params.getColumnPos(6));
   2004         assertEquals("8 key fix 5 R0 [8]", 0, params.getColumnPos(7));
   2005         assertEquals("8 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
   2006         assertEquals("8 key fix 5 R0 default", WIDTH * 4, params.getDefaultKeyCoordX());
   2007     }
   2008 
   2009     //         [6] [7] [8] ___|
   2010     // [1] [2] [3] [4] <5> ___|
   2011     public void testLayout8KeyFix5R1() {
   2012         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R1);
   2013         assertEquals("8 key fix 5 R1 columns", 5, params.mNumColumns);
   2014         assertEquals("8 key fix 5 R1 rows", 2, params.mNumRows);
   2015         assertEquals("8 key fix 5 R1 left", 4, params.mLeftKeys);
   2016         assertEquals("8 key fix 5 R1 right", 1, params.mRightKeys);
   2017         assertEquals("8 key fix 5 R1 [1]", -4, params.getColumnPos(0));
   2018         assertEquals("8 key fix 5 R1 [2]", -3, params.getColumnPos(1));
   2019         assertEquals("8 key fix 5 R1 [3]", -2, params.getColumnPos(2));
   2020         assertEquals("8 key fix 5 R1 [4]", -1, params.getColumnPos(3));
   2021         assertEquals("8 key fix 5 R1 <5>", 0, params.getColumnPos(4));
   2022         assertEquals("8 key fix 5 R1 [6]", -2, params.getColumnPos(5));
   2023         assertEquals("8 key fix 5 R1 [7]", -1, params.getColumnPos(6));
   2024         assertEquals("8 key fix 5 R1 [8]", 0, params.getColumnPos(7));
   2025         assertEquals("8 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
   2026         assertEquals("8 key fix 5 R1 default", WIDTH * 4, params.getDefaultKeyCoordX());
   2027     }
   2028 
   2029     //         [6] [7] [8] ___|
   2030     // [1] [2] [3] <4> [5] ___|
   2031     public void testLayout8KeyFix5R2() {
   2032         MoreKeysKeyboardParams params = createParams(8, 5, XPOS_R2);
   2033         assertEquals("8 key fix 5 R2 columns", 5, params.mNumColumns);
   2034         assertEquals("8 key fix 5 R2 rows", 2, params.mNumRows);
   2035         assertEquals("8 key fix 5 R2 left", 3, params.mLeftKeys);
   2036         assertEquals("8 key fix 5 R2 right", 2, params.mRightKeys);
   2037         assertEquals("8 key fix 5 R2 [1]", -3, params.getColumnPos(0));
   2038         assertEquals("8 key fix 5 R2 [2]", -2, params.getColumnPos(1));
   2039         assertEquals("8 key fix 5 R2 [3]", -1, params.getColumnPos(2));
   2040         assertEquals("8 key fix 5 R2 <4>", 0, params.getColumnPos(3));
   2041         assertEquals("8 key fix 5 R2 [5]", 1, params.getColumnPos(4));
   2042         assertEquals("8 key fix 5 R2 [6]", -1, params.getColumnPos(5));
   2043         assertEquals("8 key fix 5 R2 [7]", 0, params.getColumnPos(6));
   2044         assertEquals("8 key fix 5 R2 [8]", 1, params.getColumnPos(7));
   2045         assertEquals("8 key fix 5 R2 adjust", 0, params.mTopRowAdjustment);
   2046         assertEquals("8 key fix 5 R2 default", WIDTH * 3, params.getDefaultKeyCoordX());
   2047     }
   2048 
   2049     //   [6] [7] [8] [9]
   2050     // [1] [2] <3> [4] [5]
   2051     public void testLayout9KeyFix5M0() {
   2052         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_M0);
   2053         assertEquals("9 key fix 5 M0 columns", 5, params.mNumColumns);
   2054         assertEquals("9 key fix 5 M0 rows", 2, params.mNumRows);
   2055         assertEquals("9 key fix 5 M0 left", 2, params.mLeftKeys);
   2056         assertEquals("9 key fix 5 M0 right", 3, params.mRightKeys);
   2057         assertEquals("9 key fix 5 M0 [1]", -2, params.getColumnPos(0));
   2058         assertEquals("9 key fix 5 M0 [2]", -1, params.getColumnPos(1));
   2059         assertEquals("9 key fix 5 M0 <3>", 0, params.getColumnPos(2));
   2060         assertEquals("9 key fix 5 M0 [4]", 1, params.getColumnPos(3));
   2061         assertEquals("9 key fix 5 M0 [5]", 2, params.getColumnPos(4));
   2062         assertEquals("9 key fix 5 M0 [6]", -1, params.getColumnPos(5));
   2063         assertEquals("9 key fix 5 M0 [7]", 0, params.getColumnPos(6));
   2064         assertEquals("9 key fix 5 M0 [8]", 1, params.getColumnPos(7));
   2065         assertEquals("9 key fix 5 M0 [9]", 2, params.getColumnPos(8));
   2066         assertEquals("9 key fix 5 M0 adjust", -1, params.mTopRowAdjustment);
   2067         assertEquals("9 key fix 5 M0 default", WIDTH * 2, params.getDefaultKeyCoordX());
   2068     }
   2069 
   2070     // |[6] [7] [8] [9]
   2071     // |<1> [2] [3] [4] [5]
   2072     public void testLayout9KeyFix5L0() {
   2073         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L0);
   2074         assertEquals("9 key fix 5 L0 columns", 5, params.mNumColumns);
   2075         assertEquals("9 key fix 5 L0 rows", 2, params.mNumRows);
   2076         assertEquals("9 key fix 5 L0 left", 0, params.mLeftKeys);
   2077         assertEquals("9 key fix 5 L0 right", 5, params.mRightKeys);
   2078         assertEquals("9 key fix 5 L0 <1>", 0, params.getColumnPos(0));
   2079         assertEquals("9 key fix 5 L0 [2]", 1, params.getColumnPos(1));
   2080         assertEquals("9 key fix 5 L0 [3]", 2, params.getColumnPos(2));
   2081         assertEquals("9 key fix 5 L0 [4]", 3, params.getColumnPos(3));
   2082         assertEquals("9 key fix 5 L0 [5]", 4, params.getColumnPos(4));
   2083         assertEquals("9 key fix 5 L0 [6]", 0, params.getColumnPos(5));
   2084         assertEquals("9 key fix 5 L0 [7]", 1, params.getColumnPos(6));
   2085         assertEquals("9 key fix 5 L0 [8]", 2, params.getColumnPos(7));
   2086         assertEquals("9 key fix 5 L0 [9]", 3, params.getColumnPos(8));
   2087         assertEquals("9 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
   2088         assertEquals("9 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   2089     }
   2090 
   2091     // |___ [6] [7] [8] [9]
   2092     // |___ <1> [2] [3] [4] [5]
   2093     public void testLayout9KeyFix5L1() {
   2094         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L1);
   2095         assertEquals("9 key fix 5 L1 columns", 5, params.mNumColumns);
   2096         assertEquals("9 key fix 5 L1 rows", 2, params.mNumRows);
   2097         assertEquals("9 key fix 5 L1 left", 0, params.mLeftKeys);
   2098         assertEquals("9 key fix 5 L1 right", 5, params.mRightKeys);
   2099         assertEquals("9 key fix 5 L1 <1>", 0, params.getColumnPos(0));
   2100         assertEquals("9 key fix 5 L1 [2]", 1, params.getColumnPos(1));
   2101         assertEquals("9 key fix 5 L1 [3]", 2, params.getColumnPos(2));
   2102         assertEquals("9 key fix 5 L1 [4]", 3, params.getColumnPos(3));
   2103         assertEquals("9 key fix 5 L1 [5]", 4, params.getColumnPos(4));
   2104         assertEquals("9 key fix 5 L1 [6]", 0, params.getColumnPos(5));
   2105         assertEquals("9 key fix 5 L1 [7]", 1, params.getColumnPos(6));
   2106         assertEquals("9 key fix 5 L1 [8]", 2, params.getColumnPos(7));
   2107         assertEquals("9 key fix 5 L1 [9]", 3, params.getColumnPos(8));
   2108         assertEquals("9 key fix 5 L1 adjust",0, params.mTopRowAdjustment);
   2109         assertEquals("9 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   2110     }
   2111 
   2112     // |___   [6] [7] [8] [9]
   2113     // |___ [1] <2> [3] [4] [5]
   2114     public void testLayout9KeyFix5L2() {
   2115         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_L2);
   2116         assertEquals("9 key fix 5 L2 columns", 5, params.mNumColumns);
   2117         assertEquals("9 key fix 5 L2 rows", 2, params.mNumRows);
   2118         assertEquals("9 key fix 5 L2 left", 1, params.mLeftKeys);
   2119         assertEquals("9 key fix 5 L2 right", 4, params.mRightKeys);
   2120         assertEquals("9 key fix 5 L2 [1]", -1, params.getColumnPos(0));
   2121         assertEquals("9 key fix 5 L2 <2>", 0, params.getColumnPos(1));
   2122         assertEquals("9 key fix 5 L2 [3]", 1, params.getColumnPos(2));
   2123         assertEquals("9 key fix 5 L2 [4]", 2, params.getColumnPos(3));
   2124         assertEquals("9 key fix 5 L2 [5]", 3, params.getColumnPos(4));
   2125         assertEquals("9 key fix 5 L2 [6]", 0, params.getColumnPos(5));
   2126         assertEquals("9 key fix 5 L2 [7]", 1, params.getColumnPos(6));
   2127         assertEquals("9 key fix 5 L2 [8]", 2, params.getColumnPos(7));
   2128         assertEquals("9 key fix 5 L2 [9]", 3, params.getColumnPos(8));
   2129         assertEquals("9 key fix 5 L2 adjust", -1, params.mTopRowAdjustment);
   2130         assertEquals("9 key fix 5 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   2131     }
   2132 
   2133     //     [6] [7] [8] [9]|
   2134     // [1] [2] [3] [4] <5>|
   2135     public void testLayout9KeyFix5R0() {
   2136         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R0);
   2137         assertEquals("9 key fix 5 R0 columns", 5, params.mNumColumns);
   2138         assertEquals("9 key fix 5 R0 rows", 2, params.mNumRows);
   2139         assertEquals("9 key fix 5 R0 left", 4, params.mLeftKeys);
   2140         assertEquals("9 key fix 5 R0 right", 1, params.mRightKeys);
   2141         assertEquals("9 key fix 5 R0 [1]", -4, params.getColumnPos(0));
   2142         assertEquals("9 key fix 5 R0 [2]", -3, params.getColumnPos(1));
   2143         assertEquals("9 key fix 5 R0 [3]", -2, params.getColumnPos(2));
   2144         assertEquals("9 key fix 5 R0 [4]", -1, params.getColumnPos(3));
   2145         assertEquals("9 key fix 5 R0 <5>", 0, params.getColumnPos(4));
   2146         assertEquals("9 key fix 5 R0 [6]", -3, params.getColumnPos(5));
   2147         assertEquals("9 key fix 5 R0 [7]", -2, params.getColumnPos(6));
   2148         assertEquals("9 key fix 5 R0 [8]", -1, params.getColumnPos(7));
   2149         assertEquals("9 key fix 5 R0 [9]", 0, params.getColumnPos(8));
   2150         assertEquals("9 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
   2151         assertEquals("9 key fix 5 R0 default", WIDTH * 4, params.getDefaultKeyCoordX());
   2152     }
   2153 
   2154     //     [6] [7] [8] [9] ___|
   2155     // [1] [2] [3] [4] <5> ___|
   2156     public void testLayout9KeyFix5R1() {
   2157         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R1);
   2158         assertEquals("9 key fix 5 R1 columns", 5, params.mNumColumns);
   2159         assertEquals("9 key fix 5 R1 rows", 2, params.mNumRows);
   2160         assertEquals("9 key fix 5 R1 left", 4, params.mLeftKeys);
   2161         assertEquals("9 key fix 5 R1 right", 1, params.mRightKeys);
   2162         assertEquals("9 key fix 5 R1 [1]", -4, params.getColumnPos(0));
   2163         assertEquals("9 key fix 5 R1 [2]", -3, params.getColumnPos(1));
   2164         assertEquals("9 key fix 5 R1 [3]", -2, params.getColumnPos(2));
   2165         assertEquals("9 key fix 5 R1 [4]", -1, params.getColumnPos(3));
   2166         assertEquals("9 key fix 5 R1 <5>", 0, params.getColumnPos(4));
   2167         assertEquals("9 key fix 5 R1 [6]", -3, params.getColumnPos(5));
   2168         assertEquals("9 key fix 5 R1 [7]", -2, params.getColumnPos(6));
   2169         assertEquals("9 key fix 5 R1 [8]", -1, params.getColumnPos(7));
   2170         assertEquals("9 key fix 5 R1 [9]", 0, params.getColumnPos(8));
   2171         assertEquals("9 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
   2172         assertEquals("9 key fix 5 R1 default", WIDTH * 4, params.getDefaultKeyCoordX());
   2173     }
   2174 
   2175     //   [6] [7] [8] [9]  ___|
   2176     // [1] [2] [3] <4> [5] ___|
   2177     public void testLayout9KeyFix5R2() {
   2178         MoreKeysKeyboardParams params = createParams(9, 5, XPOS_R2);
   2179         assertEquals("9 key fix 5 R2 columns", 5, params.mNumColumns);
   2180         assertEquals("9 key fix 5 R2 rows", 2, params.mNumRows);
   2181         assertEquals("9 key fix 5 R2 left", 3, params.mLeftKeys);
   2182         assertEquals("9 key fix 5 R2 right", 2, params.mRightKeys);
   2183         assertEquals("9 key fix 5 R2 [1]", -3, params.getColumnPos(0));
   2184         assertEquals("9 key fix 5 R2 [2]", -2, params.getColumnPos(1));
   2185         assertEquals("9 key fix 5 R2 [3]", -1, params.getColumnPos(2));
   2186         assertEquals("9 key fix 5 R2 <4>", 0, params.getColumnPos(3));
   2187         assertEquals("9 key fix 5 R2 [5]", 1, params.getColumnPos(4));
   2188         assertEquals("9 key fix 5 R2 [6]", -2, params.getColumnPos(5));
   2189         assertEquals("9 key fix 5 R2 [7]", -1, params.getColumnPos(6));
   2190         assertEquals("9 key fix 5 R2 [8]", 0, params.getColumnPos(7));
   2191         assertEquals("9 key fix 5 R2 [9]", 1, params.getColumnPos(8));
   2192         assertEquals("9 key fix 5 R2 adjust", -1, params.mTopRowAdjustment);
   2193         assertEquals("9 key fix 5 R2 default", WIDTH * 3, params.getDefaultKeyCoordX());
   2194     }
   2195 
   2196     // [6] [7] [8] [9] [A]
   2197     // [1] [2] <3> [4] [5]
   2198     public void testLayout10KeyFix5M0() {
   2199         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_M0);
   2200         assertEquals("10 key fix 5 M0 columns", 5, params.mNumColumns);
   2201         assertEquals("10 key fix 5 M0 rows", 2, params.mNumRows);
   2202         assertEquals("10 key fix 5 M0 left", 2, params.mLeftKeys);
   2203         assertEquals("10 key fix 5 M0 right", 3, params.mRightKeys);
   2204         assertEquals("10 key fix 5 M0 [1]", -2, params.getColumnPos(0));
   2205         assertEquals("10 key fix 5 M0 [2]", -1, params.getColumnPos(1));
   2206         assertEquals("10 key fix 5 M0 <3>", 0, params.getColumnPos(2));
   2207         assertEquals("10 key fix 5 M0 [4]", 1, params.getColumnPos(3));
   2208         assertEquals("10 key fix 5 M0 [5]", 2, params.getColumnPos(4));
   2209         assertEquals("10 key fix 5 M0 [6]", -2, params.getColumnPos(5));
   2210         assertEquals("10 key fix 5 M0 [7]", -1, params.getColumnPos(6));
   2211         assertEquals("10 key fix 5 M0 [8]", 0, params.getColumnPos(7));
   2212         assertEquals("10 key fix 5 M0 [9]", 1, params.getColumnPos(8));
   2213         assertEquals("10 key fix 5 M0 [A]", 2, params.getColumnPos(9));
   2214         assertEquals("10 key fix 5 M0 adjust", 0, params.mTopRowAdjustment);
   2215         assertEquals("10 key fix 5 M0 default", WIDTH * 2, params.getDefaultKeyCoordX());
   2216     }
   2217 
   2218     // |[6] [7] [8] [9] [A]
   2219     // |<1> [2] [3] [4] [5]
   2220     public void testLayout10KeyFix5L0() {
   2221         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L0);
   2222         assertEquals("10 key fix 5 L0 columns", 5, params.mNumColumns);
   2223         assertEquals("10 key fix 5 L0 rows", 2, params.mNumRows);
   2224         assertEquals("10 key fix 5 L0 left", 0, params.mLeftKeys);
   2225         assertEquals("10 key fix 5 L0 right", 5, params.mRightKeys);
   2226         assertEquals("10 key fix 5 L0 <1>", 0, params.getColumnPos(0));
   2227         assertEquals("10 key fix 5 L0 [2]", 1, params.getColumnPos(1));
   2228         assertEquals("10 key fix 5 L0 [3]", 2, params.getColumnPos(2));
   2229         assertEquals("10 key fix 5 L0 [4]", 3, params.getColumnPos(3));
   2230         assertEquals("10 key fix 5 L0 [5]", 4, params.getColumnPos(4));
   2231         assertEquals("10 key fix 5 L0 [6]", 0, params.getColumnPos(5));
   2232         assertEquals("10 key fix 5 L0 [7]", 1, params.getColumnPos(6));
   2233         assertEquals("10 key fix 5 L0 [8]", 2, params.getColumnPos(7));
   2234         assertEquals("10 key fix 5 L0 [9]", 3, params.getColumnPos(8));
   2235         assertEquals("10 key fix 5 L0 [A]", 4, params.getColumnPos(9));
   2236         assertEquals("10 key fix 5 L0 adjust", 0, params.mTopRowAdjustment);
   2237         assertEquals("10 key fix 5 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   2238     }
   2239 
   2240     // |___ [6] [7] [8] [9] [A]
   2241     // |___ <1> [2] [3] [4] [5]
   2242     public void testLayout10KeyFix5L1() {
   2243         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L1);
   2244         assertEquals("10 key fix 5 L1 columns", 5, params.mNumColumns);
   2245         assertEquals("10 key fix 5 L1 rows", 2, params.mNumRows);
   2246         assertEquals("10 key fix 5 L1 left", 0, params.mLeftKeys);
   2247         assertEquals("10 key fix 5 L1 right", 5, params.mRightKeys);
   2248         assertEquals("10 key fix 5 L1 <1>", 0, params.getColumnPos(0));
   2249         assertEquals("10 key fix 5 L1 [2]", 1, params.getColumnPos(1));
   2250         assertEquals("10 key fix 5 L1 [3]", 2, params.getColumnPos(2));
   2251         assertEquals("10 key fix 5 L1 [4]", 3, params.getColumnPos(3));
   2252         assertEquals("10 key fix 5 L1 [5]", 4, params.getColumnPos(4));
   2253         assertEquals("10 key fix 5 L1 [6]", 0, params.getColumnPos(5));
   2254         assertEquals("10 key fix 5 L1 [7]", 1, params.getColumnPos(6));
   2255         assertEquals("10 key fix 5 L1 [8]", 2, params.getColumnPos(7));
   2256         assertEquals("10 key fix 5 L1 [9]", 3, params.getColumnPos(8));
   2257         assertEquals("10 key fix 5 L1 [A]", 4, params.getColumnPos(9));
   2258         assertEquals("10 key fix 5 L1 adjust", 0, params.mTopRowAdjustment);
   2259         assertEquals("10 key fix 5 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   2260     }
   2261 
   2262     // |___ [6] [7] [8] [9] [A]
   2263     // |___ [1] <2> [3] [4] [5]
   2264     public void testLayout10KeyFix5L2() {
   2265         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_L2);
   2266         assertEquals("10 key fix 5 L2 columns", 5, params.mNumColumns);
   2267         assertEquals("10 key fix 5 L2 rows", 2, params.mNumRows);
   2268         assertEquals("10 key fix 5 L2 left", 1, params.mLeftKeys);
   2269         assertEquals("10 key fix 5 L2 right", 4, params.mRightKeys);
   2270         assertEquals("10 key fix 5 L2 [1]", -1, params.getColumnPos(0));
   2271         assertEquals("10 key fix 5 L2 <2>", 0, params.getColumnPos(1));
   2272         assertEquals("10 key fix 5 L2 [3]", 1, params.getColumnPos(2));
   2273         assertEquals("10 key fix 5 L2 [4]", 2, params.getColumnPos(3));
   2274         assertEquals("10 key fix 5 L2 [5]", 3, params.getColumnPos(4));
   2275         assertEquals("10 key fix 5 L2 [6]", -1, params.getColumnPos(5));
   2276         assertEquals("10 key fix 5 L2 [7]", 0, params.getColumnPos(6));
   2277         assertEquals("10 key fix 5 L2 [8]", 1, params.getColumnPos(7));
   2278         assertEquals("10 key fix 5 L2 [9]", 2, params.getColumnPos(8));
   2279         assertEquals("10 key fix 5 L2 [A]", 3, params.getColumnPos(9));
   2280         assertEquals("10 key fix 5 L2 adjust", 0, params.mTopRowAdjustment);
   2281         assertEquals("10 key fix 5 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   2282     }
   2283 
   2284     // [6] [7] [8] [9] [A]|
   2285     // [1] [2] [3] [4] <5>|
   2286     public void testLayout10KeyFix5R0() {
   2287         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R0);
   2288         assertEquals("10 key fix 5 R0 columns", 5, params.mNumColumns);
   2289         assertEquals("10 key fix 5 R0 rows", 2, params.mNumRows);
   2290         assertEquals("10 key fix 5 R0 left", 4, params.mLeftKeys);
   2291         assertEquals("10 key fix 5 R0 right", 1, params.mRightKeys);
   2292         assertEquals("10 key fix 5 R0 [1]", -4, params.getColumnPos(0));
   2293         assertEquals("10 key fix 5 R0 [2]", -3, params.getColumnPos(1));
   2294         assertEquals("10 key fix 5 R0 [3]", -2, params.getColumnPos(2));
   2295         assertEquals("10 key fix 5 R0 [4]", -1, params.getColumnPos(3));
   2296         assertEquals("10 key fix 5 R0 <5>", 0, params.getColumnPos(4));
   2297         assertEquals("10 key fix 5 R0 [6]", -4, params.getColumnPos(5));
   2298         assertEquals("10 key fix 5 R0 [7]", -3, params.getColumnPos(6));
   2299         assertEquals("10 key fix 5 R0 [8]", -2, params.getColumnPos(7));
   2300         assertEquals("10 key fix 5 R0 [9]", -1, params.getColumnPos(8));
   2301         assertEquals("10 key fix 5 R0 [A]", 0, params.getColumnPos(9));
   2302         assertEquals("10 key fix 5 R0 adjust", 0, params.mTopRowAdjustment);
   2303         assertEquals("10 key fix 5 R0 default", WIDTH * 4, params.getDefaultKeyCoordX());
   2304     }
   2305 
   2306     // [6] [7] [8] [9] [A] ___|
   2307     // [1] [2] [3] [4] <5> ___|
   2308     public void testLayout10KeyFix5R1() {
   2309         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R1);
   2310         assertEquals("10 key fix 5 R1 columns", 5, params.mNumColumns);
   2311         assertEquals("10 key fix 5 R1 rows", 2, params.mNumRows);
   2312         assertEquals("10 key fix 5 R1 left", 4, params.mLeftKeys);
   2313         assertEquals("10 key fix 5 R1 right", 1, params.mRightKeys);
   2314         assertEquals("10 key fix 5 R1 [1]", -4, params.getColumnPos(0));
   2315         assertEquals("10 key fix 5 R1 [2]", -3, params.getColumnPos(1));
   2316         assertEquals("10 key fix 5 R1 [3]", -2, params.getColumnPos(2));
   2317         assertEquals("10 key fix 5 R1 [4]", -1, params.getColumnPos(3));
   2318         assertEquals("10 key fix 5 R1 <5>", 0, params.getColumnPos(4));
   2319         assertEquals("10 key fix 5 R1 [6]", -4, params.getColumnPos(5));
   2320         assertEquals("10 key fix 5 R1 [7]", -3, params.getColumnPos(6));
   2321         assertEquals("10 key fix 5 R1 [8]", -2, params.getColumnPos(7));
   2322         assertEquals("10 key fix 5 R1 [9]", -1, params.getColumnPos(8));
   2323         assertEquals("10 key fix 5 R1 [A]", 0, params.getColumnPos(9));
   2324         assertEquals("10 key fix 5 R1 adjust", 0, params.mTopRowAdjustment);
   2325         assertEquals("10 key fix 5 R1 default", WIDTH * 4, params.getDefaultKeyCoordX());
   2326     }
   2327 
   2328     // [6] [7] [8] [9] [A] ___|
   2329     // [1] [2] [3] <4> [5] ___|
   2330     public void testLayout10KeyFix5R2() {
   2331         MoreKeysKeyboardParams params = createParams(10, 5, XPOS_R2);
   2332         assertEquals("10 key fix 5 R2 columns", 5, params.mNumColumns);
   2333         assertEquals("10 key fix 5 R2 rows", 2, params.mNumRows);
   2334         assertEquals("10 key fix 5 R2 left", 3, params.mLeftKeys);
   2335         assertEquals("10 key fix 5 R2 right", 2, params.mRightKeys);
   2336         assertEquals("10 key fix 5 R2 [1]", -3, params.getColumnPos(0));
   2337         assertEquals("10 key fix 5 R2 [2]", -2, params.getColumnPos(1));
   2338         assertEquals("10 key fix 5 R2 [3]", -1, params.getColumnPos(2));
   2339         assertEquals("10 key fix 5 R2 <4>", 0, params.getColumnPos(3));
   2340         assertEquals("10 key fix 5 R2 [5]", 1, params.getColumnPos(4));
   2341         assertEquals("10 key fix 5 R2 [6]", -3, params.getColumnPos(5));
   2342         assertEquals("10 key fix 5 R2 [7]", -2, params.getColumnPos(6));
   2343         assertEquals("10 key fix 5 R2 [8]", -1, params.getColumnPos(7));
   2344         assertEquals("10 key fix 5 R2 [9]", 0, params.getColumnPos(8));
   2345         assertEquals("10 key fix 5 R2 [A]", 1, params.getColumnPos(9));
   2346         assertEquals("10 key fix 5 R2 adjust", 0, params.mTopRowAdjustment);
   2347         assertEquals("10 key fix 5 R2 default", WIDTH * 3, params.getDefaultKeyCoordX());
   2348     }
   2349 
   2350     //         [B]
   2351     // [6] [7] [8] [9] [A]
   2352     // [1] [2] <3> [4] [5]
   2353     public void testLayout11KeyFix5M0() {
   2354         MoreKeysKeyboardParams params = createParams(11, 5, XPOS_M0);
   2355         assertEquals("11 key fix 5 M0 columns", 5, params.mNumColumns);
   2356         assertEquals("11 key fix 5 M0 rows", 3, params.mNumRows);
   2357         assertEquals("11 key fix 5 M0 left", 2, params.mLeftKeys);
   2358         assertEquals("11 key fix 5 M0 right", 3, params.mRightKeys);
   2359         assertEquals("11 key fix 5 M0 [1]", -2, params.getColumnPos(0));
   2360         assertEquals("11 key fix 5 M0 [2]", -1, params.getColumnPos(1));
   2361         assertEquals("11 key fix 5 M0 <3>", 0, params.getColumnPos(2));
   2362         assertEquals("11 key fix 5 M0 [4]", 1, params.getColumnPos(3));
   2363         assertEquals("11 key fix 5 M0 [5]", 2, params.getColumnPos(4));
   2364         assertEquals("11 key fix 5 M0 [6]", -2, params.getColumnPos(5));
   2365         assertEquals("11 key fix 5 M0 [7]", -1, params.getColumnPos(6));
   2366         assertEquals("11 key fix 5 M0 [8]", 0, params.getColumnPos(7));
   2367         assertEquals("11 key fix 5 M0 [9]", 1, params.getColumnPos(8));
   2368         assertEquals("11 key fix 5 M0 [A]", 2, params.getColumnPos(9));
   2369         assertEquals("11 key fix 5 M0 [B]", 0, params.getColumnPos(10));
   2370         assertEquals("11 key fix 5 M0 adjust", 0, params.mTopRowAdjustment);
   2371         assertEquals("11 key fix 5 M0 default", WIDTH * 2, params.getDefaultKeyCoordX());
   2372     }
   2373 
   2374     //       [B] [C]
   2375     // [6] [7] [8] [9] [A]
   2376     // [1] [2] <3> [4] [5]
   2377     public void testLayout12KeyFix5M0() {
   2378         MoreKeysKeyboardParams params = createParams(12, 5, XPOS_M0);
   2379         assertEquals("12 key fix 5 M0 columns", 5, params.mNumColumns);
   2380         assertEquals("12 key fix 5 M0 rows", 3, params.mNumRows);
   2381         assertEquals("12 key fix 5 M0 left", 2, params.mLeftKeys);
   2382         assertEquals("12 key fix 5 M0 right", 3, params.mRightKeys);
   2383         assertEquals("12 key fix 5 M0 [1]", -2, params.getColumnPos(0));
   2384         assertEquals("12 key fix 5 M0 [2]", -1, params.getColumnPos(1));
   2385         assertEquals("12 key fix 5 M0 <3>", 0, params.getColumnPos(2));
   2386         assertEquals("12 key fix 5 M0 [4]", 1, params.getColumnPos(3));
   2387         assertEquals("12 key fix 5 M0 [5]", 2, params.getColumnPos(4));
   2388         assertEquals("12 key fix 5 M0 [6]", -2, params.getColumnPos(5));
   2389         assertEquals("12 key fix 5 M0 [7]", -1, params.getColumnPos(6));
   2390         assertEquals("12 key fix 5 M0 [8]", 0, params.getColumnPos(7));
   2391         assertEquals("12 key fix 5 M0 [9]", 1, params.getColumnPos(8));
   2392         assertEquals("12 key fix 5 M0 [A]", 2, params.getColumnPos(9));
   2393         assertEquals("12 key fix 5 M0 [B]", 0, params.getColumnPos(10));
   2394         assertEquals("12 key fix 5 M0 [C]", 1, params.getColumnPos(11));
   2395         assertEquals("12 key fix 5 M0 adjust", -1, params.mTopRowAdjustment);
   2396         assertEquals("12 key fix 5 M0 default", WIDTH * 2, params.getDefaultKeyCoordX());
   2397     }
   2398 
   2399     //     [B] [C] [D]
   2400     // [6] [7] [8] [9] [A]
   2401     // [1] [2] <3> [4] [5]
   2402     public void testLayout13KeyFix5M0() {
   2403         MoreKeysKeyboardParams params = createParams(13, 5, XPOS_M0);
   2404         assertEquals("13 key fix 5 M0 columns", 5, params.mNumColumns);
   2405         assertEquals("13 key fix 5 M0 rows", 3, params.mNumRows);
   2406         assertEquals("13 key fix 5 M0 left", 2, params.mLeftKeys);
   2407         assertEquals("13 key fix 5 M0 right", 3, params.mRightKeys);
   2408         assertEquals("13 key fix 5 M0 [1]", -2, params.getColumnPos(0));
   2409         assertEquals("13 key fix 5 M0 [2]", -1, params.getColumnPos(1));
   2410         assertEquals("13 key fix 5 M0 <3>", 0, params.getColumnPos(2));
   2411         assertEquals("13 key fix 5 M0 [4]", 1, params.getColumnPos(3));
   2412         assertEquals("13 key fix 5 M0 [5]", 2, params.getColumnPos(4));
   2413         assertEquals("13 key fix 5 M0 [6]", -2, params.getColumnPos(5));
   2414         assertEquals("13 key fix 5 M0 [7]", -1, params.getColumnPos(6));
   2415         assertEquals("13 key fix 5 M0 [8]", 0, params.getColumnPos(7));
   2416         assertEquals("13 key fix 5 M0 [9]", 1, params.getColumnPos(8));
   2417         assertEquals("13 key fix 5 M0 [A]", 2, params.getColumnPos(9));
   2418         assertEquals("13 key fix 5 M0 [B]", -1, params.getColumnPos(10));
   2419         assertEquals("13 key fix 5 M0 [C]", 0, params.getColumnPos(11));
   2420         assertEquals("13 key fix 5 M0 [D]", 1, params.getColumnPos(12));
   2421         assertEquals("13 key fix 5 M0 adjust", 0, params.mTopRowAdjustment);
   2422         assertEquals("13 key fix 5 M0 default", WIDTH * 2, params.getDefaultKeyCoordX());
   2423     }
   2424 
   2425     //   [B] [C] [D] [E]
   2426     // [6] [7] [8] [9] [A]
   2427     // [1] [2] <3> [4] [5]
   2428     public void testLayout14KeyFix5M0() {
   2429         MoreKeysKeyboardParams params = createParams(14, 5, XPOS_M0);
   2430         assertEquals("14 key fix 5 M0 columns", 5, params.mNumColumns);
   2431         assertEquals("14 key fix 5 M0 rows", 3, params.mNumRows);
   2432         assertEquals("14 key fix 5 M0 left", 2, params.mLeftKeys);
   2433         assertEquals("14 key fix 5 M0 right", 3, params.mRightKeys);
   2434         assertEquals("14 key fix 5 M0 [1]", -2, params.getColumnPos(0));
   2435         assertEquals("14 key fix 5 M0 [2]", -1, params.getColumnPos(1));
   2436         assertEquals("14 key fix 5 M0 <3>", 0, params.getColumnPos(2));
   2437         assertEquals("14 key fix 5 M0 [4]", 1, params.getColumnPos(3));
   2438         assertEquals("14 key fix 5 M0 [5]", 2, params.getColumnPos(4));
   2439         assertEquals("14 key fix 5 M0 [6]", -2, params.getColumnPos(5));
   2440         assertEquals("14 key fix 5 M0 [7]", -1, params.getColumnPos(6));
   2441         assertEquals("14 key fix 5 M0 [8]", 0, params.getColumnPos(7));
   2442         assertEquals("14 key fix 5 M0 [9]", 1, params.getColumnPos(8));
   2443         assertEquals("14 key fix 5 M0 [A]", 2, params.getColumnPos(9));
   2444         assertEquals("14 key fix 5 M0 [B]", -1, params.getColumnPos(10));
   2445         assertEquals("14 key fix 5 M0 [C]", 0, params.getColumnPos(11));
   2446         assertEquals("14 key fix 5 M0 [D]", 1, params.getColumnPos(12));
   2447         assertEquals("14 key fix 5 M0 [E]", 2, params.getColumnPos(13));
   2448         assertEquals("14 key fix 5 M0 adjust", -1, params.mTopRowAdjustment);
   2449         assertEquals("14 key fix 5 M0 default", WIDTH * 2, params.getDefaultKeyCoordX());
   2450     }
   2451 
   2452     // |<1> [2] [3] [4] [5] [6] [7]
   2453     public void testLayout7KeyFix7L0() {
   2454         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L0);
   2455         assertEquals("7 key fix 7 L0 columns", 7, params.mNumColumns);
   2456         assertEquals("7 key fix 7 L0 rows", 1, params.mNumRows);
   2457         assertEquals("7 key fix 7 L0 left", 0, params.mLeftKeys);
   2458         assertEquals("7 key fix 7 L0 right", 7, params.mRightKeys);
   2459         assertEquals("7 key fix 7 L0 <1>", 0, params.getColumnPos(0));
   2460         assertEquals("7 key fix 7 L0 [2]", 1, params.getColumnPos(1));
   2461         assertEquals("7 key fix 7 L0 [3]", 2, params.getColumnPos(2));
   2462         assertEquals("7 key fix 7 L0 [4]", 3, params.getColumnPos(3));
   2463         assertEquals("7 key fix 7 L0 [5]", 4, params.getColumnPos(4));
   2464         assertEquals("7 key fix 7 L0 [6]", 5, params.getColumnPos(5));
   2465         assertEquals("7 key fix 7 L0 [7]", 6, params.getColumnPos(6));
   2466         assertEquals("7 key fix 7 L0 adjust", 0, params.mTopRowAdjustment);
   2467         assertEquals("7 key fix 7 L0 default", WIDTH * 0, params.getDefaultKeyCoordX());
   2468     }
   2469 
   2470     // |___ <1> [2] [3] [4] [5] [6] [7]
   2471     public void testLayout7KeyFix7L1() {
   2472         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L1);
   2473         assertEquals("7 key fix 7 L1 columns", 7, params.mNumColumns);
   2474         assertEquals("7 key fix 7 L1 rows", 1, params.mNumRows);
   2475         assertEquals("7 key fix 7 L1 left", 0, params.mLeftKeys);
   2476         assertEquals("7 key fix 7 L1 right", 7, params.mRightKeys);
   2477         assertEquals("7 key fix 7 L1 <1>", 0, params.getColumnPos(0));
   2478         assertEquals("7 key fix 7 L1 [2]", 1, params.getColumnPos(1));
   2479         assertEquals("7 key fix 7 L1 [3]", 2, params.getColumnPos(2));
   2480         assertEquals("7 key fix 7 L1 [4]", 3, params.getColumnPos(3));
   2481         assertEquals("7 key fix 7 L1 [5]", 4, params.getColumnPos(4));
   2482         assertEquals("7 key fix 7 L1 [6]", 5, params.getColumnPos(5));
   2483         assertEquals("7 key fix 7 L1 [7]", 6, params.getColumnPos(6));
   2484         assertEquals("7 key fix 7 L1 adjust", 0, params.mTopRowAdjustment);
   2485         assertEquals("7 key fix 7 L1 default", WIDTH * 0, params.getDefaultKeyCoordX());
   2486     }
   2487 
   2488     // |___ [1] <2> [3] [4] [5] [6] [7]
   2489     public void testLayout7KeyFix7L2() {
   2490         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L2);
   2491         assertEquals("7 key fix 7 L2 columns", 7, params.mNumColumns);
   2492         assertEquals("7 key fix 7 L2 rows", 1, params.mNumRows);
   2493         assertEquals("7 key fix 7 L2 left", 1, params.mLeftKeys);
   2494         assertEquals("7 key fix 7 L2 right", 6, params.mRightKeys);
   2495         assertEquals("7 key fix 7 L2 [1]", -1, params.getColumnPos(0));
   2496         assertEquals("7 key fix 7 L2 <2>", 0, params.getColumnPos(1));
   2497         assertEquals("7 key fix 7 L2 [3]", 1, params.getColumnPos(2));
   2498         assertEquals("7 key fix 7 L2 [4]", 2, params.getColumnPos(3));
   2499         assertEquals("7 key fix 7 L2 [5]", 3, params.getColumnPos(4));
   2500         assertEquals("7 key fix 7 L2 [6]", 4, params.getColumnPos(5));
   2501         assertEquals("7 key fix 7 L2 [7]", 5, params.getColumnPos(6));
   2502         assertEquals("7 key fix 7 L2 adjust", 0, params.mTopRowAdjustment);
   2503         assertEquals("7 key fix 7 L2 default", WIDTH * 1, params.getDefaultKeyCoordX());
   2504     }
   2505 
   2506     // |___ [1] [2] <3> [4] [5] [6] [7]
   2507     public void testLayout7KeyFix7L3() {
   2508         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_L3);
   2509         assertEquals("7 key fix 7 L3 columns", 7, params.mNumColumns);
   2510         assertEquals("7 key fix 7 L3 rows", 1, params.mNumRows);
   2511         assertEquals("7 key fix 7 L3 left", 2, params.mLeftKeys);
   2512         assertEquals("7 key fix 7 L3 right", 5, params.mRightKeys);
   2513         assertEquals("7 key fix 7 L3 [1]", -2, params.getColumnPos(0));
   2514         assertEquals("7 key fix 7 L3 [2]", -1, params.getColumnPos(1));
   2515         assertEquals("7 key fix 7 L3 <3>", 0, params.getColumnPos(2));
   2516         assertEquals("7 key fix 7 L3 [4]", 1, params.getColumnPos(3));
   2517         assertEquals("7 key fix 7 L3 [5]", 2, params.getColumnPos(4));
   2518         assertEquals("7 key fix 7 L3 [6]", 3, params.getColumnPos(5));
   2519         assertEquals("7 key fix 7 L3 [7]", 4, params.getColumnPos(6));
   2520         assertEquals("7 key fix 7 L3 adjust", 0, params.mTopRowAdjustment);
   2521         assertEquals("7 key fix 7 L3 default", WIDTH * 2, params.getDefaultKeyCoordX());
   2522     }
   2523 
   2524     // |___ [1] [2] [3] <4> [5] [6] [7] ___ ___|
   2525     public void testLayout7KeyFix7M0() {
   2526         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_M0);
   2527         assertEquals("7 key fix 7 M0 columns", 7, params.mNumColumns);
   2528         assertEquals("7 key fix 7 M0 rows", 1, params.mNumRows);
   2529         assertEquals("7 key fix 7 M0 left", 3, params.mLeftKeys);
   2530         assertEquals("7 key fix 7 M0 right", 4, params.mRightKeys);
   2531         assertEquals("7 key fix 7 M0 [1]", -3, params.getColumnPos(0));
   2532         assertEquals("7 key fix 7 M0 [2]", -2, params.getColumnPos(1));
   2533         assertEquals("7 key fix 7 M0 [3]", -1, params.getColumnPos(2));
   2534         assertEquals("7 key fix 7 M0 <4>", 0, params.getColumnPos(3));
   2535         assertEquals("7 key fix 7 M0 [5]", 1, params.getColumnPos(4));
   2536         assertEquals("7 key fix 7 M0 [6]", 2, params.getColumnPos(5));
   2537         assertEquals("7 key fix 7 M0 [7]", 3, params.getColumnPos(6));
   2538         assertEquals("7 key fix 7 M0 adjust", 0, params.mTopRowAdjustment);
   2539         assertEquals("7 key fix 7 M0 default", WIDTH * 3, params.getDefaultKeyCoordX());
   2540     }
   2541 
   2542     // |___ ___ [1] [2] [3] <4> [5] [6] [7] ___|
   2543     public void testLayout7KeyFix7M1() {
   2544         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_M1);
   2545         assertEquals("7 key fix 7 M1 columns", 7, params.mNumColumns);
   2546         assertEquals("7 key fix 7 M1 rows", 1, params.mNumRows);
   2547         assertEquals("7 key fix 7 M1 left", 3, params.mLeftKeys);
   2548         assertEquals("7 key fix 7 M1 right", 4, params.mRightKeys);
   2549         assertEquals("7 key fix 7 M1 [1]", -3, params.getColumnPos(0));
   2550         assertEquals("7 key fix 7 M1 [2]", -2, params.getColumnPos(1));
   2551         assertEquals("7 key fix 7 M1 [3]", -1, params.getColumnPos(2));
   2552         assertEquals("7 key fix 7 M1 <4>", 0, params.getColumnPos(3));
   2553         assertEquals("7 key fix 7 M1 [5]", 1, params.getColumnPos(4));
   2554         assertEquals("7 key fix 7 M1 [6]", 2, params.getColumnPos(5));
   2555         assertEquals("7 key fix 7 M1 [7]", 3, params.getColumnPos(6));
   2556         assertEquals("7 key fix 7 M1 adjust", 0, params.mTopRowAdjustment);
   2557         assertEquals("7 key fix 7 M1 default", WIDTH * 3, params.getDefaultKeyCoordX());
   2558     }
   2559 
   2560     // [1] [2] [3] [4] <5> [6] [7] ___|
   2561     public void testLayout7KeyFix7R3() {
   2562         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R3);
   2563         assertEquals("7 key fix 7 R3 columns", 7, params.mNumColumns);
   2564         assertEquals("7 key fix 7 R3 rows", 1, params.mNumRows);
   2565         assertEquals("7 key fix 7 R3 left", 4, params.mLeftKeys);
   2566         assertEquals("7 key fix 7 R3 right", 3, params.mRightKeys);
   2567         assertEquals("7 key fix 7 R3 [1]", -4, params.getColumnPos(0));
   2568         assertEquals("7 key fix 7 R3 [2]", -3, params.getColumnPos(1));
   2569         assertEquals("7 key fix 7 R3 [3]", -2, params.getColumnPos(2));
   2570         assertEquals("7 key fix 7 R3 [4]", -1, params.getColumnPos(3));
   2571         assertEquals("7 key fix 7 R3 <5>", 0, params.getColumnPos(4));
   2572         assertEquals("7 key fix 7 R3 [6]", 1, params.getColumnPos(5));
   2573         assertEquals("7 key fix 7 R3 [7]", 2, params.getColumnPos(6));
   2574         assertEquals("7 key fix 7 R3 adjust", 0, params.mTopRowAdjustment);
   2575         assertEquals("7 key fix 7 R3 default", WIDTH * 4, params.getDefaultKeyCoordX());
   2576     }
   2577 
   2578     // [1] [2] [3] [4] [5] <6> [7] ___|
   2579     public void testLayout7KeyFix7R2() {
   2580         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R2);
   2581         assertEquals("7 key fix 7 R2 columns", 7, params.mNumColumns);
   2582         assertEquals("7 key fix 7 R2 rows", 1, params.mNumRows);
   2583         assertEquals("7 key fix 7 R2 left", 5, params.mLeftKeys);
   2584         assertEquals("7 key fix 7 R2 right", 2, params.mRightKeys);
   2585         assertEquals("7 key fix 7 R2 [1]", -5, params.getColumnPos(0));
   2586         assertEquals("7 key fix 7 R2 [2]", -4, params.getColumnPos(1));
   2587         assertEquals("7 key fix 7 R2 [3]", -3, params.getColumnPos(2));
   2588         assertEquals("7 key fix 7 R2 [4]", -2, params.getColumnPos(3));
   2589         assertEquals("7 key fix 7 R2 [5]", -1, params.getColumnPos(4));
   2590         assertEquals("7 key fix 7 R2 <6>", 0, params.getColumnPos(5));
   2591         assertEquals("7 key fix 7 R2 [7]", 1, params.getColumnPos(6));
   2592         assertEquals("7 key fix 7 R2 adjust", 0, params.mTopRowAdjustment);
   2593         assertEquals("7 key fix 7 R2 default", WIDTH * 5, params.getDefaultKeyCoordX());
   2594     }
   2595 
   2596     // [1] [2] [3] [4] [5] [6] <7> ___|
   2597     public void testLayout7KeyFix7R1() {
   2598         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R1);
   2599         assertEquals("7 key fix 7 R1 columns", 7, params.mNumColumns);
   2600         assertEquals("7 key fix 7 R1 rows", 1, params.mNumRows);
   2601         assertEquals("7 key fix 7 R1 left", 6, params.mLeftKeys);
   2602         assertEquals("7 key fix 7 R1 right", 1, params.mRightKeys);
   2603         assertEquals("7 key fix 7 R1 [1]", -6, params.getColumnPos(0));
   2604         assertEquals("7 key fix 7 R1 [2]", -5, params.getColumnPos(1));
   2605         assertEquals("7 key fix 7 R1 [3]", -4, params.getColumnPos(2));
   2606         assertEquals("7 key fix 7 R1 [4]", -3, params.getColumnPos(3));
   2607         assertEquals("7 key fix 7 R1 [5]", -2, params.getColumnPos(4));
   2608         assertEquals("7 key fix 7 R1 [6]", -1, params.getColumnPos(5));
   2609         assertEquals("7 key fix 7 R1 <7>", 0, params.getColumnPos(6));
   2610         assertEquals("7 key fix 7 R1 adjust", 0, params.mTopRowAdjustment);
   2611         assertEquals("7 key fix 7 R1 default", WIDTH * 6, params.getDefaultKeyCoordX());
   2612     }
   2613 
   2614     // [1] [2] [3] [4] [5] [6] <7>|
   2615     public void testLayout7KeyFix7R0() {
   2616         MoreKeysKeyboardParams params = createParams(7, 7, XPOS_R0);
   2617         assertEquals("7 key fix 7 R0 columns", 7, params.mNumColumns);
   2618         assertEquals("7 key fix 7 R0 rows", 1, params.mNumRows);
   2619         assertEquals("7 key fix 7 R0 left", 6, params.mLeftKeys);
   2620         assertEquals("7 key fix 7 R0 right", 1, params.mRightKeys);
   2621         assertEquals("7 key fix 7 R0 [1]", -6, params.getColumnPos(0));
   2622         assertEquals("7 key fix 7 R0 [2]", -5, params.getColumnPos(1));
   2623         assertEquals("7 key fix 7 R0 [3]", -4, params.getColumnPos(2));
   2624         assertEquals("7 key fix 7 R0 [4]", -3, params.getColumnPos(3));
   2625         assertEquals("7 key fix 7 R0 [5]", -2, params.getColumnPos(4));
   2626         assertEquals("7 key fix 7 R0 [6]", -1, params.getColumnPos(5));
   2627         assertEquals("7 key fix 7 R0 <7>", 0, params.getColumnPos(6));
   2628         assertEquals("7 key fix 7 R0 adjust", 0, params.mTopRowAdjustment);
   2629         assertEquals("7 key fix 7 R0 default", WIDTH * 6, params.getDefaultKeyCoordX());
   2630     }
   2631 }
   2632