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