Statistics
| Revision:

root / trunk / libraries / libIverUtiles / src-test / com / iver / utiles / search / TestBinarySearchUsingFirstCharacters.java @ 11452

History | View | Annotate | Download (44.2 KB)

1
package com.iver.utiles.search;
2

    
3
import java.text.Collator;
4
import java.util.ArrayList;
5
import java.util.Collections;
6
import java.util.Comparator;
7
import java.util.List;
8
import java.util.Locale;
9
import java.util.Vector;
10

    
11
import com.iver.utiles.CompareLists;
12
import com.iver.utiles.StringComparator;
13

    
14
import junit.framework.TestCase;
15

    
16
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
17
 *
18
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
19
 *
20
 * This program is free software; you can redistribute it and/or
21
 * modify it under the terms of the GNU General Public License
22
 * as published by the Free Software Foundation; either version 2
23
 * of the License, or (at your option) any later version.
24
 *
25
 * This program is distributed in the hope that it will be useful,
26
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
28
 * GNU General Public License for more details.
29
 *
30
 * You should have received a copy of the GNU General Public License
31
 * along with this program; if not, write to the Free Software
32
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
33
 *
34
 * For more information, contact:
35
 *
36
 *  Generalitat Valenciana
37
 *   Conselleria d'Infraestructures i Transport
38
 *   Av. Blasco Ib??ez, 50
39
 *   46010 VALENCIA
40
 *   SPAIN
41
 *
42
 *      +34 963862235
43
 *   gvsig@gva.es
44
 *      www.gvsig.gva.es
45
 *
46
 *    or
47
 *
48
 *   IVER T.I. S.A
49
 *   Salamanca 50
50
 *   46005 Valencia
51
 *   Spain
52
 *
53
 *   +34 963163400
54
 *   dac@iver.es
55
 */
56

    
57
/**
58
 * Tests the static methods of BinarySearchUsingFirstCharacters
59
 * 
60
 * @author Pablo Piqueras Bartolom? (p_queras@hotmail.com)
61
 */
62
public class TestBinarySearchUsingFirstCharacters extends TestCase {
63
        private static String text;
64
        private static Vector v1;
65
        private static Vector v2;
66
        private static List list;
67
        private static List results;
68
        private static StringComparator stringComparator;
69
//        private static StringComparatorForItems stringComparatorForItems;
70
        
71
        /*
72
         *  (non-Javadoc)
73
         * @see junit.framework.TestCase#setUp()
74
         */
75
        protected void setUp() throws Exception {
76
                super.setUp();
77

    
78
                // Initialize the text
79
                text = "";
80
                
81
                // Initialize the StringComparator
82
                stringComparator = new StringComparator();
83

    
84
                // Initialize the StringComparatorForItems
85
//                stringComparatorForItems = new StringComparatorForItems();
86

    
87
                // Initialize the vector of Items (for test methods without the parameter Comparator)
88
                v1 = new Vector();
89
                v1.add(new Item("extWMS"));
90
                v1.add(new Item("libUI"));
91
                v1.add(new Item("extWMS"));
92
                v1.add(new Item("libRemoteServices"));
93
                v1.add(new Item("extWFS2"));
94
                v1.add(new Item("libNomenclatorIGN"));
95
                v1.add(new Item("libNomenclatorIGN_GUI"));
96
                v1.add(new Item("libIverUtiles"));
97
                v1.add(new Item("extWFS2"));
98
                v1.add(new Item("EXTWFS2"));
99
                v1.add(new Item("extWFS2"));
100
                v1.add(new Item("libGDBMS"));
101
                v1.add(new Item("libInternationalization"));
102
                v1.add(new Item("libFMap"));
103
                v1.add(new Item("6"));
104
                v1.add(new Item("4"));
105
                v1.add(new Item("3"));
106
                v1.add(new Item("5"));
107
                v1.add(new Item("2"));
108
                v1.add(new Item("1"));
109
                v1.add(new Item("extWFS2"));
110
                v1.add(new Item("libExceptions"));
111
                v1.add(new Item("libDriverManager"));
112
                v1.add(new Item("libCq CMS for java"));
113
                v1.add(new Item("libCorePlugin"));
114
                v1.add(new Item("extWFS2"));
115
                v1.add(new Item("extAddIDEELayers"));
116
                v1.add(new Item("extAlertCClient"));
117
                v1.add(new Item("extCAD"));
118
                v1.add(new Item("extWFS2"));
119
                v1.add(new Item("?and?"));
120
                v1.add(new Item("?and?"));
121
                v1.add(new Item("extJDBC"));
122
                v1.add(new Item("extMyPlugin"));
123
                v1.add(new Item("extRasterTools"));
124
                v1.add(new Item("extScripting"));
125
                v1.add(new Item("extWCS"));
126
                v1.add(new Item("extWFS2"));
127
                v1.add(new Item("extwfs2"));
128
                v1.add(new Item("extWMS"));
129
                v1.add(new Item("extWMS"));
130
                v1.add(new Item("extWCS"));
131
                v1.add(new Item("7"));
132
                v1.add(new Item("9"));
133
                v1.add(new Item("8"));
134
                v1.add(new Item("0"));
135
                v1.add(new Item("EXTWCS"));
136
                v1.add(new Item("?and?"));
137
                v1.add(new Item("extensi?n"));
138
                v1.add(new Item("?AND?"));
139
                v1.add(new Item("_fwAndami"));
140
                v1.add(new Item("abcdefghijklmn?opqrstuvwxyz"));
141
                v1.add(new Item("?"));
142
                v1.add(new Item("appgvSIG"));
143
                v1.add(new Item("la casa"));
144
                v1.add(new Item("la monta?a"));
145
                v1.add(new Item("la colina"));
146
                v1.add(new Item("las abejas"));
147
                v1.add(new Item("las nutrias"));
148
                v1.add(new Item("las ballenas"));
149
                v1.add(new Item("lasa?a"));
150
                v1.add(new Item("Vector"));
151
                v1.add(new Item("?e"));
152

    
153
                // Initialize the vector of Strings (for test methods with the parameter Comparator)
154
                v2 = new Vector();
155
                v2.add("extWMS");
156
                v2.add("libUI");
157
                v2.add("extWMS");
158
                v2.add("libRemoteServices");
159
                v2.add("extWFS2");
160
                v2.add("libNomenclatorIGN");
161
                v2.add("libNomenclatorIGN_GUI");
162
                v2.add("libIverUtiles");
163
                v2.add("extWFS2");
164
                v2.add("EXTWFS2");
165
                v2.add("extWFS2");
166
                v2.add("libGDBMS");
167
                v2.add("libInternationalization");
168
                v2.add("libFMap");
169
                v2.add("6");
170
                v2.add("4");
171
                v2.add("3");
172
                v2.add("5");
173
                v2.add("2");
174
                v2.add("1");
175
                v2.add("extWFS2");
176
                v2.add("libExceptions");
177
                v2.add("libDriverManager");
178
                v2.add("libCq CMS for java");
179
                v2.add("libCorePlugin");
180
                v2.add("extWFS2");
181
                v2.add("extAddIDEELayers");
182
                v2.add("extAlertCClient");
183
                v2.add("extCAD");
184
                v2.add("extWFS2");
185
                v2.add("?and?");
186
                v2.add("?and?");
187
                v2.add("extJDBC");
188
                v2.add("extMyPlugin");
189
                v2.add("extRasterTools");
190
                v2.add("extScripting");
191
                v2.add("extWCS");
192
                v2.add("extWFS2");
193
                v2.add("extwfs2");
194
                v2.add("extWMS");
195
                v2.add("extWMS");
196
                v2.add("extWCS");
197
                v2.add("7");
198
                v2.add("9");
199
                v2.add("8");
200
                v2.add("0");
201
                v2.add("EXTWCS");
202
                v2.add("?and?");
203
                v2.add("extensi?n");
204
                v2.add("?AND?");
205
                v2.add("_fwAndami");
206
                v2.add("abcdefghijklmn?opqrstuvwxyz");
207
                v2.add("?");
208
                v2.add("appgvSIG");
209
                v2.add("la casa");
210
                v2.add("la monta?a");
211
                v2.add("la colina");
212
                v2.add("las abejas");
213
                v2.add("las nutrias");
214
                v2.add("las ballenas");
215
                v2.add("lasa?a");
216
                v2.add("Vector");
217
                v2.add("?e");
218
                
219
                // Sort items of the two vectors
220
                Collator collator = Collator.getInstance(new Locale("es_ES"));
221
//                stringComparatorForItems.setLocaleRules(stringComparatorForItems.new LocaleRules(true, collator));
222
//                Collections.sort(v1.subList(0, v1.size()), stringComparatorForItems);
223
                
224
                // The algorithm of sort is the default used by Java (that makes some subsets: one for numbers, one for words that starts in big letters,
225
                //   another that stats in small letters, another with 'special' characters, etc)
226
                Collections.sort(v1.subList(0, v1.size())); 
227
                
228
                stringComparator.setLocaleRules(stringComparator.new LocaleRules(true, collator));
229
                Collections.sort(v2.subList(0, v2.size()), stringComparator);
230
        }
231

    
232
        /*
233
         *  (non-Javadoc)
234
         * @see junit.framework.TestCase#tearDown()
235
         */
236
        protected void tearDown() throws Exception {
237
                super.tearDown();
238
        }
239
        
240
        ///// TEST OPERATION: doSearchConsideringCaseSensitive(String, Vector) /////
241
        
242
        /**
243
         * A test
244
         */
245
        public void test1() {
246
                try {
247
                        text = "";
248
//                        stringComparator.setCaseSensitive(true);
249
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
250
                        
251
                        // List of results
252
                        results = v1.subList(0, v1.size());
253
                        
254
                        System.out.println("Test 1:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
255
                        
256
                        if (CompareLists.compare(list, results)) {
257
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
258
                        } else {
259
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
260
                                fail();
261
                        }
262
                } catch (Exception e) {
263
                        e.printStackTrace();
264
                }
265
        }
266
        
267
        /**
268
         * A test
269
         */
270
        public void test2() {
271
                try {
272
                        text = "ext";
273
//                        stringComparator.setCaseSensitive(true);
274
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive("ext", v1);
275
                        
276
                        // List of results
277
                        results = new ArrayList();
278
                        results.add(new Item("extAddIDEELayers"));
279
                        results.add(new Item("extAlertCClient"));
280
                        results.add(new Item("extCAD"));
281
                        results.add(new Item("extJDBC"));
282
                        results.add(new Item("extMyPlugin"));
283
                        results.add(new Item("extRasterTools"));
284
                        results.add(new Item("extScripting"));
285
                        results.add(new Item("extWCS"));
286
                        results.add(new Item("extWCS"));
287
                        results.add(new Item("extWFS2"));
288
                        results.add(new Item("extWFS2"));
289
                        results.add(new Item("extWFS2"));
290
                        results.add(new Item("extWFS2"));
291
                        results.add(new Item("extWFS2"));
292
                        results.add(new Item("extWFS2"));
293
                        results.add(new Item("extWFS2"));
294
                        results.add(new Item("extWMS"));
295
                        results.add(new Item("extWMS"));
296
                        results.add(new Item("extWMS"));
297
                        results.add(new Item("extWMS"));
298
                        results.add(new Item("extensi?n"));
299
                        results.add(new Item("extwfs2"));
300

    
301
                        System.out.println("\nTest 2:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
302
                        
303
                        if (CompareLists.compare(list, results)) {
304
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
305
                        } else {
306
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
307
                                fail();
308
                        }
309
                } catch (Exception e) {
310
                        e.printStackTrace();
311
                }
312
        }
313

    
314
        /**
315
         * A test
316
         */
317
        public void test3() {
318
                try {
319
                        text = "libUI";
320
//                        stringComparator.setCaseSensitive(true);
321
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
322
                        
323
                        // List of results
324
                        results = new ArrayList();
325
                        results.add(new Item("libUI"));
326
                        
327
                        System.out.println("\nTest 3:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
328
                        
329
                        if (CompareLists.compare(list, results)) {
330
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
331
                        } else {
332
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
333
                                fail();
334
                        }
335
                } catch (Exception e) {
336
                        e.printStackTrace();
337
                }
338
        }
339
        
340
        /**
341
         * A test
342
         */
343
        public void test4() {
344
                try {
345
                        text = "extWFS2";
346
//                        stringComparator.setCaseSensitive(true);
347
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
348
                        
349
                        // List 4 of results
350
                        results = new ArrayList();
351
                        results.add(new Item("extWFS2"));
352
                        results.add(new Item("extWFS2"));
353
                        results.add(new Item("extWFS2"));
354
                        results.add(new Item("extWFS2"));
355
                        results.add(new Item("extWFS2"));
356
                        results.add(new Item("extWFS2"));
357
                        results.add(new Item("extWFS2"));                
358
                        
359
                        System.out.println("\nTest 4:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
360
                        
361
                        if (CompareLists.compare(list, results)) {
362
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
363
                        } else {
364
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
365
                                fail();
366
                        }
367
                } catch (Exception e) {
368
                        e.printStackTrace();
369
                }
370
        }
371
        
372
        /**
373
         * A test
374
         */
375
        public void test5() {
376
                try {
377
                        text = "extWFS2a";
378
//                        stringComparator.setCaseSensitive(true);
379
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
380
                        
381
                        // List of results (without elements)
382
                        results = null;
383
                        
384
                        System.out.println("\nTest 5:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
385
                        
386
                        if (CompareLists.compare(list, results)) {
387
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
388
                        } else {
389
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
390
                                fail();
391
                        }
392
                } catch (Exception e) {
393
                        e.printStackTrace();
394
                }
395
        }
396
        
397
        /**
398
         * A test
399
         */
400
        public void test6() {
401
                try {
402
                        text = "?and?";
403
//                        stringComparator.setCaseSensitive(true);
404
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
405
                        
406
                        // List of results
407
                        results = new ArrayList();
408
                        results.add(new Item("?and?"));
409
                        
410
                        System.out.println("\nTest 6:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
411
                        
412
                        if (CompareLists.compare(list, results)) {
413
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
414
                        } else {
415
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
416
                                fail();
417
                        }
418
                } catch (Exception e) {
419
                        e.printStackTrace();
420
                }
421
        }
422
        
423
        /**
424
         * A test
425
         */
426
        public void test7() {
427
                try {
428
                        text = "?AND?";
429
//                        stringComparator.setCaseSensitive(true);
430
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
431
                        
432
                        // List of results
433
                        results = new ArrayList();
434
                        results.add(new Item("?AND?"));
435
                        
436
                        System.out.println("\nTest 7:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
437
                        
438
                        if (CompareLists.compare(list, results)) {
439
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
440
                        } else {
441
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
442
                                fail();
443
                        }
444
                } catch (Exception e) {
445
                        e.printStackTrace();
446
                }
447
        }
448
        
449
        /**
450
         * A test
451
         */
452
        public void test8() {
453
                try {
454
                        text = "la ";
455
//                        stringComparator.setCaseSensitive(true);
456
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
457
        
458
                        // List of results
459
                        results = new ArrayList();
460
                        results.add(new Item("la casa"));
461
                        results.add(new Item("la colina"));
462
                        results.add(new Item("la monta?a"));
463
                        
464
                        System.out.println("\nTest 8:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
465
                        
466
                        if (CompareLists.compare(list, results)) {
467
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
468
                        } else {
469
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
470
                                fail();
471
                        }
472
                } catch (Exception e) {
473
                        e.printStackTrace();
474
                }
475
        }
476
        
477
        /**
478
         * A test
479
         */
480
        public void test9() {
481
                try {
482
                        text = "livUI";
483
//                        stringComparator.setCaseSensitive(true);
484
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
485
                        
486
                        // List of results (without elements)
487
                        results = null;
488
                        
489
                        System.out.println("\nTest 9:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
490
                        
491
                        if (CompareLists.compare(list, results)) {
492
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
493
                        } else {
494
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
495
                                fail();
496
                        }
497
                } catch (Exception e) {
498
                        e.printStackTrace();
499
                }
500
        }
501
        
502
        /**
503
         * A test
504
         */
505
        public void test10() {
506
                try {
507
                        text = "?";
508
//                        stringComparator.setCaseSensitive(true);
509
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
510
                        
511
                        // List of results (without elements)
512
                        results = new ArrayList();
513
                        results.add(new Item("?"));
514
                        
515
                        System.out.println("\nTest 10:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
516
                        
517
                        if (CompareLists.compare(list, results)) {
518
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
519
                        } else {
520
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
521
                                fail();
522
                        }
523
                } catch (Exception e) {
524
                        e.printStackTrace();
525
                }
526
        }
527
        ///// END TEST OPERATION: doSearchConsideringCaseSensitive(String, Vector) /////
528
        
529
        ///// TEST OPERATION: doSearchWithoutConsideringCaseSensitive(String, Vector) /////
530
        
531
        /**
532
         * A test
533
         */
534
        public void test11() {
535
                try {
536
                        text = "";
537
//                        stringComparator.setCaseSensitive(false);
538
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
539
                        
540
                        // List of results
541
                        results = v1.subList(0, v1.size());
542
                                
543
                        System.out.println("\nTest 11:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
544
                                
545
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
546
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
547
                        } else {
548
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
549
                                fail();
550
                        }
551
                } catch (Exception e) {
552
                        e.printStackTrace();
553
                }
554
        }
555
        
556
        /**
557
         * A test
558
         */
559
        public void test12() {
560
                try {
561
                        text = "ext";
562
//                        stringComparator.setCaseSensitive(false);
563
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
564
                        
565
                        // List of results
566
                        results = new ArrayList();
567
                        results.add(new Item("extAddIDEELayers"));
568
                        results.add(new Item("extAlertCClient"));
569
                        results.add(new Item("extCAD"));
570
                        results.add(new Item("extJDBC"));
571
                        results.add(new Item("extMyPlugin"));
572
                        results.add(new Item("extRasterTools"));
573
                        results.add(new Item("extScripting"));
574
                        results.add(new Item("extWCS"));
575
                        results.add(new Item("extWCS"));
576
                        results.add(new Item("extWFS2"));
577
                        results.add(new Item("extWFS2"));
578
                        results.add(new Item("extWFS2"));
579
                        results.add(new Item("extWFS2"));
580
                        results.add(new Item("extWFS2"));
581
                        results.add(new Item("extWFS2"));
582
                        results.add(new Item("extWFS2"));
583
                        results.add(new Item("extWMS"));
584
                        results.add(new Item("extWMS"));
585
                        results.add(new Item("extWMS"));
586
                        results.add(new Item("extWMS"));
587
                        results.add(new Item("extensi?n"));
588
                        results.add(new Item("extwfs2"));
589
                                                        
590
                        System.out.println("Test 12:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
591
                                
592
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
593
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
594
                        } else {
595
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
596
                                fail();
597
                        }
598
                } catch (Exception e) {
599
                        e.printStackTrace();
600
                }
601
        }
602
        
603
        /**
604
         * A test
605
         */
606
        public void test13() {
607
                try {
608
                        text = "libUI";
609
//                        stringComparator.setCaseSensitive(false);
610
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
611

    
612
                        // List of results
613
                        results = new ArrayList();
614
                        results.add(new Item("libUI"));
615
                                        
616
                        System.out.println("Test 13:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
617
                                
618
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
619
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
620
                        } else {
621
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
622
                                fail();
623
                        }
624
                } catch (Exception e) {
625
                        e.printStackTrace();
626
                }
627
        }
628
        
629
        /**
630
         * A test
631
         */
632
        public void test14() {
633
                try {
634
                        text = "extWFS2";
635
//                        stringComparator.setCaseSensitive(false);
636
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
637
                        
638
                        // List of results
639
                        results = new ArrayList();
640
                        results.add(new Item("extWFS2"));
641
                        results.add(new Item("extWFS2"));
642
                        results.add(new Item("extWFS2"));
643
                        results.add(new Item("extWFS2"));
644
                        results.add(new Item("extWFS2"));
645
                        results.add(new Item("extWFS2"));
646
                        results.add(new Item("extWFS2"));
647

    
648
                        System.out.println("Test 14:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
649
                                
650
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
651
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
652
                        } else {
653
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
654
                                fail();
655
                        }
656
                } catch (Exception e) {
657
                        e.printStackTrace();
658
                }
659
        }
660
        
661
        /**
662
         * A test
663
         */
664
        public void test15() {
665
                try {
666
                        text = "extWFS2a";
667
//                        stringComparator.setCaseSensitive(false);
668
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
669
                        
670
                        // List of results (without elements)
671
                        results = null;
672
                                                        
673
                        System.out.println("Test 15:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
674
                                
675
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
676
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
677
                        } else {
678
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
679
                                fail();
680
                        }
681
                } catch (Exception e) {
682
                        e.printStackTrace();
683
                }
684
        }
685
        
686
        /**
687
         * A test
688
         */
689
        public void test16() {
690
                try {
691
                        text = "?";
692
//                        stringComparator.setCaseSensitive(false);
693
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
694
                        
695
                        // List of results
696
                        results = new ArrayList();
697
                        results.add(new Item("?e"));
698
                        results.add(new Item("?"));
699
                                        
700
                        System.out.println("Test 16:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
701
                                
702
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
703
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
704
                        } else {
705
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
706
                                fail();
707
                        }
708
                } catch (Exception e) {
709
                        e.printStackTrace();
710
                }
711
        }
712
        
713
        /**
714
         * A test
715
         */
716
        public void test17() {
717
                try {
718
                        text = "La ";
719
//                        stringComparator.setCaseSensitive(false);
720
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
721
                        
722
                        // List of results
723
                        results = new ArrayList();
724
                        results.add(new Item("la casa"));
725
                        results.add(new Item("la colina"));
726
                        results.add(new Item("la monta?a"));
727

    
728
                        System.out.println("Test 17:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
729
                                
730
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
731
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
732
                        } else {
733
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
734
                                fail();
735
                        }
736
                } catch (Exception e) {
737
                        e.printStackTrace();
738
                }
739
        }
740
        
741
        /**
742
         * A test
743
         */
744
        public void test18() {
745
                try {
746
                        text = "livUI";
747
//                        stringComparator.setCaseSensitive(false);
748
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
749
                        
750
                        // List of results
751
                        results = null;
752

    
753
                        System.out.println("Test 18:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
754
                                
755
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
756
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
757
                        } else {
758
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
759
                                fail();
760
                        }
761
                } catch (Exception e) {
762
                        e.printStackTrace();
763
                }
764
        }
765
        ///// END TEST OPERATION: doSearchWithoutConsideringCaseSensitive(String, Vector) /////
766
        
767
        ///// TEST OPERATION: doSearchConsideringCaseSensitive(String, Vector, Comparator) /////
768
        /**
769
         * A test
770
         */
771
        public void test21() {
772
                try {
773
                        text = "";
774
                        stringComparator.setCaseSensitive(true);
775
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
776
                        
777
                        // List of results
778
                        results = v2.subList(0, v2.size());
779

    
780
                        System.out.println("Test 21:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
781
                        
782
                        if (CompareLists.compare(list, results, stringComparator)) {
783
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
784
                        } else {
785
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
786
                                fail();
787
                        }
788
                } catch (Exception e) {
789
                        e.printStackTrace();
790
                }
791
        }
792
        
793
        /**
794
         * A test
795
         */
796
        public void test22() {
797
                try {
798
                        text = "ext";
799
                        stringComparator.setCaseSensitive(true);
800
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
801
                        
802
                        // List of results
803
                        results = new ArrayList();
804
                        results.add("extAddIDEELayers");
805
                        results.add("extAlertCClient");
806
                        results.add("extCAD");
807
                        results.add("extensi?n");
808
                        results.add("extJDBC");
809
                        results.add("extMyPlugin");
810
                        results.add("extRasterTools");
811
                        results.add("extScripting");
812
                        results.add("extWCS");
813
                        results.add("extWCS");
814
                        results.add("extwfs2");
815
                        results.add("extWFS2");
816
                        results.add("extWFS2");
817
                        results.add("extWFS2");
818
                        results.add("extWFS2");
819
                        results.add("extWFS2");
820
                        results.add("extWFS2");
821
                        results.add("extWFS2");
822
                        results.add("extWMS");
823
                        results.add("extWMS");
824
                        results.add("extWMS");
825
                        results.add("extWMS");
826

    
827
                                                
828
                        System.out.println("\nTest 22:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
829
                        
830
                        if (CompareLists.compare(list, results, stringComparator)) {
831
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
832
                        } else {
833
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
834
                                fail();
835
                        }
836
                } catch (Exception e) {
837
                        e.printStackTrace();
838
                }
839
        }
840

    
841
        /**
842
         * A test
843
         */
844
        public void test23() {
845
                try {
846
                        text = "libUI";
847
                        stringComparator.setCaseSensitive(true);
848
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
849
                        
850
                        // List of results
851
                        results = new ArrayList();
852
                        results.add("libUI");
853
                                                
854
                        System.out.println("\nTest 23:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
855
                        
856
                        if (CompareLists.compare(list, results, stringComparator)) {
857
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
858
                        } else {
859
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
860
                                fail();
861
                        }
862
                } catch (Exception e) {
863
                        e.printStackTrace();
864
                }
865
        }
866
        
867
        /**
868
         * A test
869
         */
870
        public void test24() {
871
                try {
872
                        text = "extWFS2";
873
                        stringComparator.setCaseSensitive(true);
874
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
875
                        
876
                        // List 4 of results
877
                        results = new ArrayList();
878
                        results.add("extWFS2");
879
                        results.add("extWFS2");
880
                        results.add("extWFS2");
881
                        results.add("extWFS2");
882
                        results.add("extWFS2");
883
                        results.add("extWFS2");
884
                        results.add("extWFS2");                
885
                                                
886
                        System.out.println("\nTest 24:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
887
                        
888
                        if (CompareLists.compare(list, results, stringComparator)) {
889
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
890
                        } else {
891
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
892
                                fail();
893
                        }
894
                } catch (Exception e) {
895
                        e.printStackTrace();
896
                }
897
        }
898
        
899
        /**
900
         * A test
901
         */
902
        public void test25() {
903
                try {
904
                        text = "extWFS2a";
905
                        stringComparator.setCaseSensitive(true);
906
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
907
                        
908
                        // List of results (without elements)
909
                        results = null;
910
                                                
911
                        System.out.println("\nTest 25:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
912
                        
913
                        if (CompareLists.compare(list, results, stringComparator)) {
914
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
915
                        } else {
916
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
917
                                fail();
918
                        }
919
                } catch (Exception e) {
920
                        e.printStackTrace();
921
                }
922
        }
923
        
924
        /**
925
         * A test
926
         */
927
        public void test26() {
928
                try {
929
                        text = "?and?";
930
                        stringComparator.setCaseSensitive(true);
931
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
932
                        
933
                        // List of results
934
                        results = new ArrayList();
935
                        results.add("?and?");
936
                                                
937
                        System.out.println("\nTest 26:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
938
                        
939
                        if (CompareLists.compare(list, results, stringComparator)) {
940
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
941
                        } else {
942
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
943
                                fail();
944
                        }
945
                } catch (Exception e) {
946
                        e.printStackTrace();
947
                }
948
        }
949
        
950
        /**
951
         * A test
952
         */
953
        public void test27() {
954
                try {
955
                        text = "?AND?";
956
                        stringComparator.setCaseSensitive(true);
957
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
958
                        
959
                        // List of results
960
                        results = new ArrayList();
961
                        results.add("?AND?");
962
                                                
963
                        System.out.println("\nTest 27:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
964
                        
965
                        if (CompareLists.compare(list, results, stringComparator)) {
966
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
967
                        } else {
968
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
969
                                fail();
970
                        }
971
                } catch (Exception e) {
972
                        e.printStackTrace();
973
                }
974
        }
975
        
976
        /**
977
         * A test
978
         */
979
        public void test28() {
980
                try {
981
                        text = "la ";
982
                        stringComparator.setCaseSensitive(true);
983
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
984
                        
985
                        // List of results
986
                        results = new ArrayList();
987
                        results.add("la casa");
988
                        results.add("la colina");
989
                        results.add("la monta?a");
990

    
991
                        System.out.println("\nTest 28:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
992
                        
993
                        if (CompareLists.compare(list, results, stringComparator)) {
994
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
995
                        } else {
996
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
997
                                fail();
998
                        }
999
                } catch (Exception e) {
1000
                        e.printStackTrace();
1001
                }
1002
        }
1003
        
1004
        /**
1005
         * A test
1006
         */
1007
        public void test29() {
1008
                try {
1009
                        text = "livUI";
1010
                        stringComparator.setCaseSensitive(true);
1011
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
1012
                        
1013
                        // List of results (without elements)
1014
                        results = null;
1015
                                                
1016
                        System.out.println("\nTest 29:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1017
                        
1018
                        if (CompareLists.compare(list, results, stringComparator)) {
1019
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1020
                        } else {
1021
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1022
                                fail();
1023
                        }
1024
                 } catch (Exception e) {
1025
                        e.printStackTrace();
1026
                }
1027
        }
1028
        
1029
        /**
1030
         * A test
1031
         */
1032
        public void test30() {
1033
                try {
1034
                        text = "?";
1035
                        stringComparator.setCaseSensitive(true);
1036
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
1037
                        
1038
                        // List of results (without elements)
1039
                        results = new ArrayList();
1040
                        results.add("?");
1041
                                                
1042
                        System.out.println("\nTest 29:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1043
                        
1044
                        if (CompareLists.compare(list, results, stringComparator)) {
1045
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1046
                        } else {
1047
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1048
                                fail();
1049
                        }
1050
                 } catch (Exception e) {
1051
                        e.printStackTrace();
1052
                }
1053
        }
1054
        ///// END TEST OPERATION: doSearchConsideringCaseSensitive(String, Vector, Comparator) /////
1055

    
1056
        ///// TEST OPERATION: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) /////
1057
        
1058
        /**
1059
         * A test
1060
         */
1061
        public void test31() {
1062
                try {
1063
                        text = "";
1064
                        stringComparator.setCaseSensitive(false);
1065
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1066
                        
1067
                        // List of results
1068
                        results = v2.subList(0, v2.size());
1069

    
1070
                        System.out.println("\nTest 31:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1071
                        
1072
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1073
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1074
                        } else {
1075
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1076
                                fail();
1077
                        }
1078
                } catch (Exception e) {
1079
                        e.printStackTrace();
1080
                }
1081
        }
1082
        
1083
        /**
1084
         * A test
1085
         */
1086
        public void test32() {
1087
                try {
1088
                        text = "ext";                
1089
                        stringComparator.setCaseSensitive(false);
1090
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1091
                
1092
                        // List of results
1093
                        results = new ArrayList();
1094
                        results.add("extAddIDEELayers");
1095
                        results.add("extAlertCClient");
1096
                        results.add("extCAD");
1097
                        results.add("extensi?n");
1098
                        results.add("extJDBC");
1099
                        results.add("extMyPlugin");
1100
                        results.add("extRasterTools");
1101
                        results.add("extScripting");
1102
                        results.add("extWCS");
1103
                        results.add("extWCS");
1104
                        results.add("EXTWCS");
1105
                        results.add("extwfs2");
1106
                        results.add("extWFS2");
1107
                        results.add("extWFS2");
1108
                        results.add("extWFS2");
1109
                        results.add("extWFS2");
1110
                        results.add("extWFS2");
1111
                        results.add("extWFS2");
1112
                        results.add("extWFS2");
1113
                        results.add("EXTWFS2");
1114
                        results.add("extWMS");
1115
                        results.add("extWMS");
1116
                        results.add("extWMS");
1117
                        results.add("extWMS");
1118
                                                        
1119
                        System.out.println("Test 32:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1120
                                
1121
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1122
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1123
                        } else {
1124
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1125
                                fail();
1126
                        }
1127
                } catch (Exception e) {
1128
                        e.printStackTrace();
1129
                }
1130
        }
1131
        
1132
        /**
1133
         * A test
1134
         */
1135
        public void test33() {
1136
                try {
1137
                        text = "LIBui";                
1138
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1139
                                
1140
                        // List of results
1141
                        results = new ArrayList();
1142
                        results.add("libUI");
1143
                        
1144
                        System.out.println("Test 33:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1145
                                
1146
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1147
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1148
                        } else {
1149
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1150
                                fail();
1151
                        }
1152
                } catch (Exception e) {
1153
                        e.printStackTrace();
1154
                }
1155
        }
1156
        
1157
        /**
1158
         * A test
1159
         */
1160
        public void test34() {
1161
                try {
1162
                        text = "extWFS2";                
1163
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1164
                        
1165
                        // List of results
1166
                        results = new ArrayList();
1167
                        results.add("extwfs2");
1168
                        results.add("extWFS2");
1169
                        results.add("extWFS2");
1170
                        results.add("extWFS2");
1171
                        results.add("extWFS2");
1172
                        results.add("extWFS2");
1173
                        results.add("extWFS2");
1174
                        results.add("extWFS2");
1175
                        results.add("EXTWFS2");
1176

    
1177
                        System.out.println("Test 34:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1178
                                
1179
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1180
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1181
                        } else {
1182
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1183
                                fail();
1184
                        }
1185
                } catch (Exception e) {
1186
                        e.printStackTrace();
1187
                }
1188
        }
1189
        
1190
        /**
1191
         * A test
1192
         */
1193
        public void test35() {
1194
                try {
1195
                        text = "extWFS2a";                
1196
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1197
                        
1198
                        // List of results (without elements)
1199
                        results = null;
1200
                                                        
1201
                        System.out.println("Test 35:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1202
                                
1203
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1204
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1205
                        } else {
1206
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1207
                                fail();
1208
                        }
1209
                } catch (Exception e) {
1210
                        e.printStackTrace();
1211
                }
1212
        }
1213
        
1214
        /**
1215
         * A test
1216
         */
1217
        public void test36() {
1218
                try {
1219
                        text = "?aNd?";                
1220
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1221
                        
1222
                        // List of results
1223
                        results = new ArrayList();
1224
                        results.add("?and?");
1225
                        results.add("?and?");
1226
                        results.add("?and?");
1227
                        results.add("?AND?");
1228
                                        
1229
                        System.out.println("Test 36:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1230
                                
1231
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1232
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1233
                        } else {
1234
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1235
                                fail();
1236
                        }
1237
                } catch (Exception e) {
1238
                        e.printStackTrace();
1239
                }
1240
        }
1241
        
1242
        /**
1243
         * A test
1244
         */
1245
        public void test37() {
1246
                try {
1247
                        text = "La ";                
1248
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1249
                        
1250
                        // List of results
1251
                        results = new ArrayList();
1252
                        results.add("la casa");
1253
                        results.add("la colina");
1254
                        results.add("la monta?a");
1255

    
1256
                        System.out.println("Test 37:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1257
                                
1258
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1259
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1260
                        } else {
1261
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1262
                                fail();
1263
                        }
1264
                } catch (Exception e) {
1265
                        e.printStackTrace();
1266
                }
1267
        }
1268
        
1269
        /**
1270
         * A test
1271
         */
1272
        public void test38() {
1273
                try {
1274
                        text = "livUI";                
1275
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1276
                        
1277
                        // List of results
1278
                        results = null;
1279

    
1280
                        System.out.println("Test 38:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1281
                                
1282
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1283
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1284
                        } else {
1285
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1286
                                fail();
1287
                        }
1288
                } catch (Exception e) {
1289
                        e.printStackTrace();
1290
                }
1291
        }
1292
        
1293
        /**
1294
         * A test
1295
         */
1296
        public void test39() {
1297
                try {
1298
                        text = "?";                
1299
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1300
                        
1301
                        // List of results
1302
                        results = new ArrayList();
1303
                        results.add("?");
1304
                        results.add("?e");
1305

    
1306
                        System.out.println("Test 38:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1307
                                
1308
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1309
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1310
                        } else {
1311
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1312
                                fail();
1313
                        }
1314
                } catch (Exception e) {
1315
                        e.printStackTrace();
1316
                }
1317
        }        
1318
        
1319
        ///// END TEST OPERATION: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) /////
1320

    
1321
        ///// AUXILIAR CLASS THAT REPRESENTS AN ITEM WITH AN STRING VALUE AND IMPLEMENTING THE COMPARABLE INTERFACE /////
1322
        
1323
        /**
1324
         * This class is used for represent an item, with an string value, and implementing the interface Comparable for allow searches.
1325
         * 
1326
         * @author Pablo Piqueras Bartolom? (p_queras@hotmail.com)
1327
         */
1328
        private static class Item implements Comparable {
1329
                String value;
1330

    
1331
                /**
1332
                 * Default contructor with 1 parameter
1333
                 * 
1334
                 * @param v1 Text value
1335
                 */
1336
                public Item (String v) {
1337
                        value = v;
1338
                }
1339
                
1340
                /*
1341
                 * (non-Javadoc)
1342
                 * @see java.lang.Object#toString()
1343
                 */
1344
                public String toString() {
1345
                        return value;
1346
                }
1347

    
1348
                /*
1349
                 *  (non-Javadoc)
1350
                 * @see java.lang.Comparable#compareTo(java.lang.Object)
1351
                 */
1352
                public int compareTo(Object o) {
1353
                        if (!(o instanceof Item))
1354
                                throw new ClassCastException("Se esperaba un objeto de tipo Item.");
1355

    
1356
                        return this.value.compareTo(o.toString());
1357
                }
1358
        }
1359
        
1360
        ///// AUXILIAR CLASS THAT REPRESENTS AN ITEM WITH AN STRING VALUE AND IMPLEMENTING THE COMPARABLE INTERFACE /////
1361
        
1362
    ///// END AUXILIAR CLASS THAT HAS A METHOD FOR COMPARE TWO ITEMS /////
1363

    
1364
        /**
1365
         * Compares two items (with String value) alphabetically
1366
         *
1367
         * @author Pablo Piqueras Bartolom?
1368
         */
1369
        public class StringComparatorForItems implements Comparator {
1370
                private boolean caseSensitive = true;
1371
                private LocaleRules localeRules = null;
1372

    
1373
            /**
1374
             * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
1375
             */
1376
            public int compare(Object o1, Object o2) {
1377
                String s1 = ((Item) o1).toString();
1378
                String s2 = ((Item) o2).toString();
1379

    
1380
                // If localeRules is null -> use the default rules
1381
                if (localeRules == null) {
1382
                        if (caseSensitive) {
1383
                                return s1.compareTo(s2);
1384
                        }
1385
                        else {
1386
                                return s1.compareToIgnoreCase(s2);
1387
                        }
1388
                }
1389
                else {
1390
                        if (localeRules.isUseLocaleRules()) {
1391
                                Collator collator = localeRules.getCollator();
1392
                                
1393
                                if (caseSensitive) {
1394
                                        return collator.compare(s1, s2);
1395
                                }
1396
                                else {
1397
                                        return collator.compare(s1.toLowerCase(), s2.toLowerCase());
1398
                                }
1399
                        }
1400
                        else {
1401
                            if (caseSensitive) {
1402
                                    return s1.compareTo(s2);
1403
                            }
1404
                            else {
1405
                                    return s1.compareToIgnoreCase(s2);
1406
                            }
1407
                        }
1408
                }
1409
            }
1410

    
1411
            /**
1412
             * Returns if the comparator is sensitive to small and big letters
1413
             *
1414
             * @return
1415
             */
1416
            public boolean isCaseSensitive() {
1417
                return caseSensitive;
1418
            }
1419

    
1420
            /**
1421
             * Establece la sensibilidad del comparador a las mayusculas y minusculas
1422
             *
1423
             * @param b
1424
             */
1425
            public void setCaseSensitive(boolean b) {
1426
                caseSensitive = b;
1427
            }
1428
            
1429
            /**
1430
             * Gets an object with the information for use the locale rules in comparation between strings. <br>
1431
             * <ul>
1432
             * <li>A boolean value -> if want or not use the locale rules</li>
1433
             * <li>A reference to the locale rules</li>
1434
             * </ul>
1435
             * 
1436
             * @return @see LocaleRules
1437
             */
1438
            public LocaleRules getLocaleRules() {
1439
                    return localeRules;
1440
            }    
1441
            /**
1442
             * Sets an object with the information for use the locale rules in comparation between strings. <br>
1443
             * <ul>
1444
             * <li>A boolean value -> if want or not use the locale rules</li>
1445
             * <li>A reference to the locale rules</li>
1446
             * </ul>
1447
             * 
1448
             * @param @see LocaleRules
1449
             */
1450
            public void setLocaleRules(LocaleRules locRules) {
1451
                    localeRules = locRules;
1452
            }
1453
            
1454
            /**
1455
             * Represents the information needed by <i>StringComparator</i> for use or not locale-sensitive String comparison-rules in the <b><i>compare</i></b> method
1456
             * 
1457
             * @author Pablo Piqueras Bartolom?
1458
             */
1459
            public class LocaleRules {
1460
                     private boolean useLocaleRules;
1461
                     private Collator _collator;
1462
                     
1463
                     /**
1464
                      * Default constructor without parameters
1465
                      */
1466
                     public LocaleRules() {
1467
                             useLocaleRules = false;
1468
                             _collator = null;
1469
                     }
1470
                     
1471
                     /**
1472
                      * Default constructor with two parameters
1473
                      * 
1474
                      * @param b Use locale rules
1475
                      * @param collator A reference to an object configurated for locale-sensitive String comparison
1476
                      */
1477
                     public LocaleRules(boolean b, Collator collator) {
1478
                             useLocaleRules = b;
1479
                             _collator = collator;
1480
                     }
1481
                     
1482
                         /**
1483
                          * Gets the value of the inner attribute <i>_collator</i>
1484
                          * 
1485
                          * @return Returns A reference to an object configurated for locale-sensitive String comparison
1486
                          */
1487
                         public Collator getCollator() {
1488
                                 return _collator;
1489
                         }
1490

    
1491
                         /**
1492
                          * Sets a value to the inner attribute <i>_collator</i>
1493
                          * 
1494
                          * @param collator A reference to an object configurated for locale-sensitive String comparison
1495
                          */
1496
                         public void setCollator(Collator collator) {
1497
                                 this._collator = collator;
1498
                         }
1499

    
1500
                        /**
1501
                         * Gets the value of the inner attribute <i>useLocaleRules</i>
1502
                         * 
1503
                         * @return Returns the useLocaleRules.
1504
                         */
1505
                        public boolean isUseLocaleRules() {
1506
                                return useLocaleRules;
1507
                        }
1508

    
1509
                        /**
1510
                         * Sets a value to the inner attribute <i>useLocaleRules</i>
1511
                         * 
1512
                         * @param useLocaleRules The useLocaleRules to set.
1513
                         */
1514
                        public void setUseLocaleRules(boolean useLocaleRules) {
1515
                                this.useLocaleRules = useLocaleRules;
1516
                        }
1517
            }
1518
        }
1519
        ///// END AUXILIAR CLASS THAT HAS A METHOD FOR COMPARE TWO ITEMS /////
1520
}