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