Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.utils / src / test / java / org / gvsig / utils / search / TestBinarySearchUsingFirstCharacters.java @ 40561

History | View | Annotate | Download (48.8 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.utils.search;
25

    
26
import java.text.Collator;
27
import java.util.ArrayList;
28
import java.util.Collections;
29
import java.util.Comparator;
30
import java.util.List;
31
import java.util.Locale;
32
import java.util.Vector;
33

    
34
import org.gvsig.utils.CompareLists;
35
import org.gvsig.utils.StringComparator;
36
import org.gvsig.utils.search.BinarySearchUsingFirstCharacters;
37

    
38

    
39
import junit.framework.TestCase;
40

    
41
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
42
 *
43
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
44
 *
45
 * This program is free software; you can redistribute it and/or
46
 * modify it under the terms of the GNU General Public License
47
 * as published by the Free Software Foundation; either version 2
48
 * of the License, or (at your option) any later version.
49
 *
50
 * This program is distributed in the hope that it will be useful,
51
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
52
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
53
 * GNU General Public License for more details.
54
 *
55
 * You should have received a copy of the GNU General Public License
56
 * along with this program; if not, write to the Free Software
57
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
58
 *
59
 * For more information, contact:
60
 *
61
 *  Generalitat Valenciana
62
 *   Conselleria d'Infraestructures i Transport
63
 *   Av. Blasco Ib??ez, 50
64
 *   46010 VALENCIA
65
 *   SPAIN
66
 *
67
 *      +34 963862235
68
 *   gvsig@gva.es
69
 *      www.gvsig.gva.es
70
 *
71
 *    or
72
 *
73
 *   IVER T.I. S.A
74
 *   Salamanca 50
75
 *   46005 Valencia
76
 *   Spain
77
 *
78
 *   +34 963163400
79
 *   dac@iver.es
80
 */
81

    
82
/**
83
 * Tests the static methods of BinarySearchUsingFirstCharacters
84
 * 
85
 * @author Pablo Piqueras Bartolom? (p_queras@hotmail.com)
86
 */
87
public class TestBinarySearchUsingFirstCharacters extends TestCase {
88
        private static String text;
89
        private static Vector v1;
90
        private static Vector v2;
91
        private static List list;
92
        private static List results;
93
        private static StringComparator stringComparator;
94
//        private static StringComparatorForItems stringComparatorForItems;
95
        
96
        /*
97
         *  (non-Javadoc)
98
         * @see junit.framework.TestCase#setUp()
99
         */
100
        protected void setUp() throws Exception {
101
                super.setUp();
102

    
103
                // Initialize the text
104
                text = "";
105
                
106
                // Initialize the StringComparator
107
                stringComparator = new StringComparator();
108

    
109
                // Initialize the StringComparatorForItems
110
//                stringComparatorForItems = new StringComparatorForItems();
111

    
112
                // Initialize the vector of Items (for test methods without the parameter Comparator)
113
                v1 = new Vector();
114
                v1.add(new Item("extWMS"));
115
                v1.add(new Item("libUI"));
116
                v1.add(new Item("extWMS"));
117
                v1.add(new Item("libRemoteServices"));
118
                v1.add(new Item("extWFS2"));
119
                v1.add(new Item("libNomenclatorIGN"));
120
                v1.add(new Item("libNomenclatorIGN_GUI"));
121
                v1.add(new Item("libIverUtiles"));
122
                v1.add(new Item("extWFS2"));
123
                v1.add(new Item("EXTWFS2"));
124
                v1.add(new Item("extWFS2"));
125
                v1.add(new Item("libGDBMS"));
126
                v1.add(new Item("libInternationalization"));
127
                v1.add(new Item("libFMap"));
128
                v1.add(new Item("libuiDownCase"));
129
                v1.add(new Item("6"));
130
                v1.add(new Item("4"));
131
                v1.add(new Item("3"));
132
                v1.add(new Item("5"));
133
                v1.add(new Item("2"));
134
                v1.add(new Item("1"));
135
                v1.add(new Item("extWFS2"));
136
                v1.add(new Item("libExceptions"));
137
                v1.add(new Item("libDriverManager"));
138
                v1.add(new Item("libCq CMS for java"));
139
                v1.add(new Item("libCorePlugin"));
140
                v1.add(new Item("extWFS2"));
141
                v1.add(new Item("extAddIDEELayers"));
142
                v1.add(new Item("extAlertCClient"));
143
                v1.add(new Item("extCAD"));
144
                v1.add(new Item("extWFS2"));
145
                v1.add(new Item("?and?"));
146
                v1.add(new Item("?and?"));
147
                v1.add(new Item("extJDBC"));
148
                v1.add(new Item("extMyPlugin"));
149
                v1.add(new Item("extRasterTools"));
150
                v1.add(new Item("extScripting"));
151
                v1.add(new Item("extWCS"));
152
                v1.add(new Item("extWFS2"));
153
                v1.add(new Item("extwfs2"));
154
                v1.add(new Item("extWMS"));
155
                v1.add(new Item("extWMS"));
156
                v1.add(new Item("extWCS"));
157
                v1.add(new Item("7"));
158
                v1.add(new Item("9"));
159
                v1.add(new Item("8"));
160
                v1.add(new Item("0"));
161
                v1.add(new Item("EXTWCS"));
162
                v1.add(new Item("?and?"));
163
                v1.add(new Item("extensi?n"));
164
                v1.add(new Item("?AND?"));
165
                v1.add(new Item("_fwAndami"));
166
                v1.add(new Item("abcdefghijklmn?opqrstuvwxyz"));
167
                v1.add(new Item("?"));
168
                v1.add(new Item("appgvSIG"));
169
                v1.add(new Item("la casa"));
170
                v1.add(new Item("la monta?a"));
171
                v1.add(new Item("la colina"));
172
                v1.add(new Item("las abejas"));
173
                v1.add(new Item("las nutrias"));
174
                v1.add(new Item("las ballenas"));
175
                v1.add(new Item("lasa?a"));
176
                v1.add(new Item("Vector"));
177
                v1.add(new Item("?e"));
178

    
179
                // Initialize the vector of Strings (for test methods with the parameter Comparator)
180
                v2 = new Vector();
181
                v2.add("extWMS");
182
                v2.add("libUI");
183
                v2.add("extWMS");
184
                v2.add("libRemoteServices");
185
                v2.add("extWFS2");
186
                v2.add("libNomenclatorIGN");
187
                v2.add("libNomenclatorIGN_GUI");
188
                v2.add("libIverUtiles");
189
                v2.add("extWFS2");
190
                v2.add("EXTWFS2");
191
                v2.add("extWFS2");
192
                v2.add("libGDBMS");
193
                v2.add("libInternationalization");
194
                v2.add("libFMap");
195
                v2.add("libuiDownCase");
196
                v2.add("6");
197
                v2.add("4");
198
                v2.add("3");
199
                v2.add("5");
200
                v2.add("2");
201
                v2.add("1");
202
                v2.add("extWFS2");
203
                v2.add("libExceptions");
204
                v2.add("libDriverManager");
205
                v2.add("libCq CMS for java");
206
                v2.add("libCorePlugin");
207
                v2.add("extWFS2");
208
                v2.add("extAddIDEELayers");
209
                v2.add("extAlertCClient");
210
                v2.add("extCAD");
211
                v2.add("extWFS2");
212
                v2.add("?and?");
213
                v2.add("?and?");
214
                v2.add("extJDBC");
215
                v2.add("extMyPlugin");
216
                v2.add("extRasterTools");
217
                v2.add("extScripting");
218
                v2.add("extWCS");
219
                v2.add("extWFS2");
220
                v2.add("extwfs2");
221
                v2.add("extWMS");
222
                v2.add("extWMS");
223
                v2.add("extWCS");
224
                v2.add("7");
225
                v2.add("9");
226
                v2.add("8");
227
                v2.add("0");
228
                v2.add("EXTWCS");
229
                v2.add("?and?");
230
                v2.add("extensi?n");
231
                v2.add("?AND?");
232
                v2.add("_fwAndami");
233
                v2.add("abcdefghijklmn?opqrstuvwxyz");
234
                v2.add("?");
235
                v2.add("appgvSIG");
236
                v2.add("la casa");
237
                v2.add("la monta?a");
238
                v2.add("la colina");
239
                v2.add("las abejas");
240
                v2.add("las nutrias");
241
                v2.add("las ballenas");
242
                v2.add("lasa?a");
243
                v2.add("Vector");
244
                v2.add("?e");
245
                
246
                // Sort items of the two vectors
247
                Collator collator = Collator.getInstance(new Locale("es_ES"));
248
//                stringComparatorForItems.setLocaleRules(stringComparatorForItems.new LocaleRules(true, collator));
249
//                Collections.sort(v1.subList(0, v1.size()), stringComparatorForItems);
250
                
251
                // 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,
252
                //   another that stats in small letters, another with 'special' characters, etc)
253
                Collections.sort(v1.subList(0, v1.size())); 
254
                
255
                stringComparator.setLocaleRules(stringComparator.new LocaleRules(true, collator));
256
                Collections.sort(v2.subList(0, v2.size()), stringComparator);
257
        }
258

    
259
        /*
260
         *  (non-Javadoc)
261
         * @see junit.framework.TestCase#tearDown()
262
         */
263
        protected void tearDown() throws Exception {
264
                super.tearDown();
265
        }
266
        
267
        ///// TEST OPERATION: doSearchConsideringCaseSensitive(String, Vector) /////
268
        
269
        /**
270
         * A test
271
         */
272
        public void test1() {
273
                try {
274
                        text = "";
275
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v1);
276
                        
277
                        // List of results
278
                        results = v1.subList(0, v1.size());
279
                        
280
                        System.out.println("Test 1:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
281
                        
282
                        if (CompareLists.compare(list, results)) {
283
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
284
                        } else {
285
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
286
                                fail();
287
                        }
288
                } catch (Exception e) {
289
                        e.printStackTrace();
290
                }
291
        }
292
        
293
        /**
294
         * A test
295
         */
296
        public void test2() {
297
                try {
298
                        text = "ext";
299
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive("ext", v1);
300
                        
301
                        // List of results
302
                        results = new ArrayList();
303
                        results.add(new Item("extAddIDEELayers"));
304
                        results.add(new Item("extAlertCClient"));
305
                        results.add(new Item("extCAD"));
306
                        results.add(new Item("extJDBC"));
307
                        results.add(new Item("extMyPlugin"));
308
                        results.add(new Item("extRasterTools"));
309
                        results.add(new Item("extScripting"));
310
                        results.add(new Item("extWCS"));
311
                        results.add(new Item("extWCS"));
312
                        results.add(new Item("extWFS2"));
313
                        results.add(new Item("extWFS2"));
314
                        results.add(new Item("extWFS2"));
315
                        results.add(new Item("extWFS2"));
316
                        results.add(new Item("extWFS2"));
317
                        results.add(new Item("extWFS2"));
318
                        results.add(new Item("extWFS2"));
319
                        results.add(new Item("extWMS"));
320
                        results.add(new Item("extWMS"));
321
                        results.add(new Item("extWMS"));
322
                        results.add(new Item("extWMS"));
323
                        results.add(new Item("extensi?n"));
324
                        results.add(new Item("extwfs2"));
325

    
326
                        System.out.println("\nTest 2:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
327
                        
328
                        if (CompareLists.compare(list, results)) {
329
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> OK");
330
                        } else {
331
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector) -> FAILED");
332
                                fail();
333
                        }
334
                } catch (Exception e) {
335
                        e.printStackTrace();
336
                }
337
        }
338

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

    
651
                        // List of results
652
                        results = new ArrayList();
653
                        results.add(new Item("libUI"));
654
                        results.add(new Item("libuiDownCase"));
655
                                        
656
                        System.out.println("Test 13:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
657
                                
658
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
659
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
660
                        } else {
661
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
662
                                fail();
663
                        }
664
                } catch (Exception e) {
665
                        e.printStackTrace();
666
                }
667
        }
668
        
669
        /**
670
         * A test
671
         */
672
        public void test14() {
673
                try {
674
                        text = "extWFS2";
675
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
676
                        
677
                        // List of results
678
                        results = new ArrayList();
679
                        results.add(new Item("extWFS2"));
680
                        results.add(new Item("extWFS2"));
681
                        results.add(new Item("extWFS2"));
682
                        results.add(new Item("extWFS2"));
683
                        results.add(new Item("extWFS2"));
684
                        results.add(new Item("extWFS2"));
685
                        results.add(new Item("extWFS2"));
686
                        results.add(new Item("extwfs2"));
687

    
688
                        System.out.println("Test 14:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
689
                                
690
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
691
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
692
                        } else {
693
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
694
                                fail();
695
                        }
696
                } catch (Exception e) {
697
                        e.printStackTrace();
698
                }
699
        }
700
        
701
        /**
702
         * A test
703
         */
704
        public void test15() {
705
                try {
706
                        text = "extWFS2a";
707
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
708
                        
709
                        // List of results (without elements)
710
                        results = null;
711
                                                        
712
                        System.out.println("Test 15:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
713
                                
714
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
715
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
716
                        } else {
717
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
718
                                fail();
719
                        }
720
                } catch (Exception e) {
721
                        e.printStackTrace();
722
                }
723
        }
724
        
725
        /**
726
         * A test
727
         */
728
        public void test16() {
729
                try {
730
                        text = "?";
731
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
732
                        
733
                        // List of results
734
                        results = new ArrayList();
735
                        results.add(new Item("?e"));
736
                        results.add(new Item("?"));
737
                                        
738
                        System.out.println("Test 16:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
739
                                
740
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
741
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
742
                        } else {
743
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
744
                                fail();
745
                        }
746
                } catch (Exception e) {
747
                        e.printStackTrace();
748
                }
749
        }
750
        
751
        /**
752
         * A test
753
         */
754
        public void test17() {
755
                try {
756
                        text = "La ";
757
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
758
                        
759
                        // List of results
760
                        results = new ArrayList();
761
                        results.add(new Item("la casa"));
762
                        results.add(new Item("la colina"));
763
                        results.add(new Item("la monta?a"));
764

    
765
                        System.out.println("Test 17:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
766
                                
767
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
768
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
769
                        } else {
770
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
771
                                fail();
772
                        }
773
                } catch (Exception e) {
774
                        e.printStackTrace();
775
                }
776
        }
777
        
778
        /**
779
         * A test
780
         */
781
        public void test18() {
782
                try {
783
                        text = "livUI";
784
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
785
                        
786
                        // List of results
787
                        results = null;
788

    
789
                        System.out.println("Test 18:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
790
                                
791
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
792
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
793
                        } else {
794
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
795
                                fail();
796
                        }
797
                } catch (Exception e) {
798
                        e.printStackTrace();
799
                }
800
        }
801
        
802
        /**
803
         * A test
804
         */
805
        public void test18_1() {
806
                try {
807
                        text = "libui";
808
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
809
                        
810
                        // List of results
811
                        results = new ArrayList();
812
                        results.add(new Item("libUI"));
813
                        results.add(new Item("libuiDownCase"));
814

    
815
                        System.out.println("Test 18_1:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
816
                                
817
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
818
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
819
                        } else {
820
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
821
                                fail();
822
                        }
823
                } catch (Exception e) {
824
                        e.printStackTrace();
825
                }
826
        }
827
        
828
        /**
829
         * A test
830
         */
831
        public void test19() {
832
                try {
833
                        text = "?AND?";
834
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v1);
835
                        
836
                        // List of results
837
                        results = new ArrayList();
838
                        results.add(new Item("?AND?"));
839
                        results.add(new Item("?and?"));
840
                        results.add(new Item("?and?"));
841
                        results.add(new Item("?and?"));
842

    
843
                        System.out.println("Test 19:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
844
                                
845
                        if (CompareLists.compareIgnoringCaseSensitive(list, results)) {
846
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> OK");
847
                        } else {
848
                                System.out.println("Op: doSearchIgnoringCaseSensitive(String, Vector) -> FAILED");
849
                                fail();
850
                        }
851
                } catch (Exception e) {
852
                        e.printStackTrace();
853
                }
854
        }
855

    
856
        ///// END TEST OPERATION: doSearchWithoutConsideringCaseSensitive(String, Vector) /////
857
        
858
        ///// TEST OPERATION: doSearchConsideringCaseSensitive(String, Vector, Comparator) /////
859
        /**
860
         * A test
861
         */
862
        public void test21() {
863
                try {
864
                        text = "";
865
                        stringComparator.setCaseSensitive(true);
866
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
867
                        
868
                        // List of results
869
                        results = v2.subList(0, v2.size());
870

    
871
                        System.out.println("Test 21:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
872
                        
873
                        if (CompareLists.compare(list, results, stringComparator)) {
874
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
875
                        } else {
876
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
877
                                fail();
878
                        }
879
                } catch (Exception e) {
880
                        e.printStackTrace();
881
                }
882
        }
883
        
884
        /**
885
         * A test
886
         */
887
        public void test22() {
888
                try {
889
                        text = "ext";
890
                        stringComparator.setCaseSensitive(true);
891
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
892
                        
893
                        // List of results
894
                        results = new ArrayList();
895
                        results.add("extAddIDEELayers");
896
                        results.add("extAlertCClient");
897
                        results.add("extCAD");
898
                        results.add("extensi?n");
899
                        results.add("extJDBC");
900
                        results.add("extMyPlugin");
901
                        results.add("extRasterTools");
902
                        results.add("extScripting");
903
                        results.add("extWCS");
904
                        results.add("extWCS");
905
                        results.add("extwfs2");
906
                        results.add("extWFS2");
907
                        results.add("extWFS2");
908
                        results.add("extWFS2");
909
                        results.add("extWFS2");
910
                        results.add("extWFS2");
911
                        results.add("extWFS2");
912
                        results.add("extWFS2");
913
                        results.add("extWMS");
914
                        results.add("extWMS");
915
                        results.add("extWMS");
916
                        results.add("extWMS");
917

    
918
                                                
919
                        System.out.println("\nTest 22:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
920
                        
921
                        if (CompareLists.compare(list, results, stringComparator)) {
922
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
923
                        } else {
924
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
925
                                fail();
926
                        }
927
                } catch (Exception e) {
928
                        e.printStackTrace();
929
                }
930
        }
931

    
932
        /**
933
         * A test
934
         */
935
        public void test23() {
936
                try {
937
                        text = "libUI";
938
                        stringComparator.setCaseSensitive(true);
939
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
940
                        
941
                        // List of results
942
                        results = new ArrayList();
943
                        results.add("libUI");
944
                                                
945
                        System.out.println("\nTest 23:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
946
                        
947
                        if (CompareLists.compare(list, results, stringComparator)) {
948
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
949
                        } else {
950
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
951
                                fail();
952
                        }
953
                } catch (Exception e) {
954
                        e.printStackTrace();
955
                }
956
        }
957
        
958
        /**
959
         * A test
960
         */
961
        public void test24() {
962
                try {
963
                        text = "extWFS2";
964
                        stringComparator.setCaseSensitive(true);
965
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
966
                        
967
                        // List 4 of results
968
                        results = new ArrayList();
969
                        results.add("extWFS2");
970
                        results.add("extWFS2");
971
                        results.add("extWFS2");
972
                        results.add("extWFS2");
973
                        results.add("extWFS2");
974
                        results.add("extWFS2");
975
                        results.add("extWFS2");                
976
                                                
977
                        System.out.println("\nTest 24:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
978
                        
979
                        if (CompareLists.compare(list, results, stringComparator)) {
980
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
981
                        } else {
982
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
983
                                fail();
984
                        }
985
                } catch (Exception e) {
986
                        e.printStackTrace();
987
                }
988
        }
989
        
990
        /**
991
         * A test
992
         */
993
        public void test25() {
994
                try {
995
                        text = "extWFS2a";
996
                        stringComparator.setCaseSensitive(true);
997
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
998
                        
999
                        // List of results (without elements)
1000
                        results = null;
1001
                                                
1002
                        System.out.println("\nTest 25:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1003
                        
1004
                        if (CompareLists.compare(list, results, stringComparator)) {
1005
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1006
                        } else {
1007
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1008
                                fail();
1009
                        }
1010
                } catch (Exception e) {
1011
                        e.printStackTrace();
1012
                }
1013
        }
1014
        
1015
        /**
1016
         * A test
1017
         */
1018
        public void test26() {
1019
                try {
1020
                        text = "?and?";
1021
                        stringComparator.setCaseSensitive(true);
1022
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
1023
                        
1024
                        // List of results
1025
                        results = new ArrayList();
1026
                        results.add("?and?");
1027
                                                
1028
                        System.out.println("\nTest 26:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1029
                        
1030
                        if (CompareLists.compare(list, results, stringComparator)) {
1031
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1032
                        } else {
1033
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1034
                                fail();
1035
                        }
1036
                } catch (Exception e) {
1037
                        e.printStackTrace();
1038
                }
1039
        }
1040
        
1041
        /**
1042
         * A test
1043
         */
1044
        public void test27() {
1045
                try {
1046
                        text = "?AND?";
1047
                        stringComparator.setCaseSensitive(true);
1048
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
1049
                        
1050
                        // List of results
1051
                        results = new ArrayList();
1052
                        results.add("?AND?");
1053
                                                
1054
                        System.out.println("\nTest 27:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1055
                        
1056
                        if (CompareLists.compare(list, results, stringComparator)) {
1057
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1058
                        } else {
1059
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1060
                                fail();
1061
                        }
1062
                } catch (Exception e) {
1063
                        e.printStackTrace();
1064
                }
1065
        }
1066
        
1067
        /**
1068
         * A test
1069
         */
1070
        public void test28() {
1071
                try {
1072
                        text = "la ";
1073
                        stringComparator.setCaseSensitive(true);
1074
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
1075
                        
1076
                        // List of results
1077
                        results = new ArrayList();
1078
                        results.add("la casa");
1079
                        results.add("la colina");
1080
                        results.add("la monta?a");
1081

    
1082
                        System.out.println("\nTest 28:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1083
                        
1084
                        if (CompareLists.compare(list, results, stringComparator)) {
1085
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1086
                        } else {
1087
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1088
                                fail();
1089
                        }
1090
                } catch (Exception e) {
1091
                        e.printStackTrace();
1092
                }
1093
        }
1094
        
1095
        /**
1096
         * A test
1097
         */
1098
        public void test29() {
1099
                try {
1100
                        text = "livUI";
1101
                        stringComparator.setCaseSensitive(true);
1102
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
1103
                        
1104
                        // List of results (without elements)
1105
                        results = null;
1106
                                                
1107
                        System.out.println("\nTest 29:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1108
                        
1109
                        if (CompareLists.compare(list, results, stringComparator)) {
1110
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1111
                        } else {
1112
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1113
                                fail();
1114
                        }
1115
                 } catch (Exception e) {
1116
                        e.printStackTrace();
1117
                }
1118
        }
1119
        
1120
        /**
1121
         * A test
1122
         */
1123
        public void test29_1() {
1124
                try {
1125
                        text = "libui";
1126
                        stringComparator.setCaseSensitive(true);
1127
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator); //<- Esta b?squeda
1128
                        
1129
                        // List of results (without elements)
1130
                        results = new ArrayList();
1131
                        results.add("libuiDownCase");
1132
                                                
1133
                        System.out.println("\nTest 29_1:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1134
                        
1135
                        if (CompareLists.compare(list, results, stringComparator)) {
1136
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1137
                        } else {
1138
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1139
                                fail();
1140
                        }
1141
                 } catch (Exception e) {
1142
                        e.printStackTrace();
1143
                }
1144
        }
1145
        
1146
        /**
1147
         * A test
1148
         */
1149
        public void test30() {
1150
                try {
1151
                        text = "?";
1152
                        stringComparator.setCaseSensitive(true);
1153
                        list = BinarySearchUsingFirstCharacters.doSearchConsideringCaseSensitive(text, v2, stringComparator);
1154
                        
1155
                        // List of results (without elements)
1156
                        results = new ArrayList();
1157
                        results.add("?");
1158
                                                
1159
                        System.out.println("\nTest 30:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1160
                        
1161
                        if (CompareLists.compare(list, results, stringComparator)) {
1162
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1163
                        } else {
1164
                                System.out.println("Op: doSearchConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1165
                                fail();
1166
                        }
1167
                 } catch (Exception e) {
1168
                        e.printStackTrace();
1169
                }
1170
        }
1171
        ///// END TEST OPERATION: doSearchConsideringCaseSensitive(String, Vector, Comparator) /////
1172

    
1173
        ///// TEST OPERATION: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) /////
1174
        
1175
        /**
1176
         * A test
1177
         */
1178
        public void test31() {
1179
                try {
1180
                        text = "";
1181
                        stringComparator.setCaseSensitive(false);
1182
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1183
                        
1184
                        // List of results
1185
                        results = v2.subList(0, v2.size());
1186

    
1187
                        System.out.println("\nTest 31:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1188
                        
1189
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1190
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1191
                        } else {
1192
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1193
                                fail();
1194
                        }
1195
                } catch (Exception e) {
1196
                        e.printStackTrace();
1197
                }
1198
        }
1199
        
1200
        /**
1201
         * A test
1202
         */
1203
        public void test32() {
1204
                try {
1205
                        text = "ext";                
1206
                        stringComparator.setCaseSensitive(false);
1207
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1208
                
1209
                        // List of results
1210
                        results = new ArrayList();
1211
                        results.add("extAddIDEELayers");
1212
                        results.add("extAlertCClient");
1213
                        results.add("extCAD");
1214
                        results.add("extensi?n");
1215
                        results.add("extJDBC");
1216
                        results.add("extMyPlugin");
1217
                        results.add("extRasterTools");
1218
                        results.add("extScripting");
1219
                        results.add("extWCS");
1220
                        results.add("extWCS");
1221
                        results.add("EXTWCS");
1222
                        results.add("extwfs2");
1223
                        results.add("extWFS2");
1224
                        results.add("extWFS2");
1225
                        results.add("extWFS2");
1226
                        results.add("extWFS2");
1227
                        results.add("extWFS2");
1228
                        results.add("extWFS2");
1229
                        results.add("extWFS2");
1230
                        results.add("EXTWFS2");
1231
                        results.add("extWMS");
1232
                        results.add("extWMS");
1233
                        results.add("extWMS");
1234
                        results.add("extWMS");
1235
                                                        
1236
                        System.out.println("Test 32:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1237
                                
1238
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1239
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1240
                        } else {
1241
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1242
                                fail();
1243
                        }
1244
                } catch (Exception e) {
1245
                        e.printStackTrace();
1246
                }
1247
        }
1248
        
1249
        /**
1250
         * A test
1251
         */
1252
        public void test33() {
1253
                try {
1254
                        text = "LIBui";                
1255
                        stringComparator.setCaseSensitive(false);
1256
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1257
                                
1258
                        // List of results
1259
                        results = new ArrayList();
1260
                        results.add("libUI");
1261
                        results.add("libuiDownCase");
1262
                        
1263
                        System.out.println("Test 33:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1264
                                
1265
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1266
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1267
                        } else {
1268
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1269
                                fail();
1270
                        }
1271
                } catch (Exception e) {
1272
                        e.printStackTrace();
1273
                }
1274
        }
1275
        
1276
        /**
1277
         * A test
1278
         */
1279
        public void test34() {
1280
                try {
1281
                        text = "extWFS2";                
1282
                        stringComparator.setCaseSensitive(false);
1283
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1284
                        
1285
                        // List of results
1286
                        results = new ArrayList();
1287
                        results.add("extwfs2");
1288
                        results.add("extWFS2");
1289
                        results.add("extWFS2");
1290
                        results.add("extWFS2");
1291
                        results.add("extWFS2");
1292
                        results.add("extWFS2");
1293
                        results.add("extWFS2");
1294
                        results.add("extWFS2");
1295
                        results.add("EXTWFS2");
1296

    
1297
                        System.out.println("Test 34:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1298
                                
1299
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1300
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1301
                        } else {
1302
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1303
                                fail();
1304
                        }
1305
                } catch (Exception e) {
1306
                        e.printStackTrace();
1307
                }
1308
        }
1309
        
1310
        /**
1311
         * A test
1312
         */
1313
        public void test35() {
1314
                try {
1315
                        text = "extWFS2a";                
1316
                        stringComparator.setCaseSensitive(false);
1317
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1318
                        
1319
                        // List of results (without elements)
1320
                        results = null;
1321
                                                        
1322
                        System.out.println("Test 35:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1323
                                
1324
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1325
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1326
                        } else {
1327
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1328
                                fail();
1329
                        }
1330
                } catch (Exception e) {
1331
                        e.printStackTrace();
1332
                }
1333
        }
1334
        
1335
        /**
1336
         * A test
1337
         */
1338
        public void test36() {
1339
                try {
1340
                        text = "?aNd?";                
1341
                        stringComparator.setCaseSensitive(false);
1342
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1343
                        
1344
                        // List of results
1345
                        results = new ArrayList();
1346
                        results.add("?and?");
1347
                        results.add("?and?");
1348
                        results.add("?and?");
1349
                        results.add("?AND?");
1350
                                        
1351
                        System.out.println("Test 36:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1352
                                
1353
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1354
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1355
                        } else {
1356
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1357
                                fail();
1358
                        }
1359
                } catch (Exception e) {
1360
                        e.printStackTrace();
1361
                }
1362
        }
1363
        
1364
        /**
1365
         * A test
1366
         */
1367
        public void test37() {
1368
                try {
1369
                        text = "La ";                
1370
                        stringComparator.setCaseSensitive(false);
1371
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1372
                        
1373
                        // List of results
1374
                        results = new ArrayList();
1375
                        results.add("la casa");
1376
                        results.add("la colina");
1377
                        results.add("la monta?a");
1378

    
1379
                        System.out.println("Test 37:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1380
                                
1381
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1382
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1383
                        } else {
1384
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1385
                                fail();
1386
                        }
1387
                } catch (Exception e) {
1388
                        e.printStackTrace();
1389
                }
1390
        }
1391
        
1392
        /**
1393
         * A test
1394
         */
1395
        public void test38() {
1396
                try {
1397
                        text = "livUI";                
1398
                        stringComparator.setCaseSensitive(false);
1399
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1400
                        
1401
                        // List of results
1402
                        results = null;
1403

    
1404
                        System.out.println("Test 38:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1405
                                
1406
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1407
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1408
                        } else {
1409
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1410
                                fail();
1411
                        }
1412
                } catch (Exception e) {
1413
                        e.printStackTrace();
1414
                }
1415
        }
1416
        
1417
        /**
1418
         * A test
1419
         */
1420
        public void test38_1() {
1421
                try {
1422
                        text = "libui";                
1423
                        stringComparator.setCaseSensitive(false);
1424
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1425
                        
1426
                        // List of results
1427
                        results = new ArrayList();
1428
                        results.add("libUI");
1429
                        results.add("libuiDownCase");
1430

    
1431
                        System.out.println("Test 38_1:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1432
                                
1433
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1434
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1435
                        } else {
1436
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1437
                                fail();
1438
                        }
1439
                } catch (Exception e) {
1440
                        e.printStackTrace();
1441
                }
1442
        }
1443

    
1444
        /**
1445
         * A test
1446
         */
1447
        public void test39() {
1448
                try {
1449
                        text = "?";                
1450
                        stringComparator.setCaseSensitive(false);
1451
                        list = BinarySearchUsingFirstCharacters.doSearchIgnoringCaseSensitive(text, v2, stringComparator);
1452
                        
1453
                        // List of results
1454
                        results = new ArrayList();
1455
                        results.add("?");
1456
                        results.add("?e");
1457

    
1458
                        System.out.println("Test 38:\nText: " + text + "\nResults of the search: " + list + "\nResults expected: " + results);
1459
                                
1460
                        if (CompareLists.compareIgnoringCaseSensitive(list, results, stringComparator)) {
1461
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> OK");
1462
                        } else {
1463
                                System.out.println("Op: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) -> FAILED");
1464
                                fail();
1465
                        }
1466
                } catch (Exception e) {
1467
                        e.printStackTrace();
1468
                }
1469
        }        
1470
        
1471
        ///// END TEST OPERATION: doSearchWithoutConsideringCaseSensitive(String, Vector, Comparator) /////
1472

    
1473
        ///// AUXILIAR CLASS THAT REPRESENTS AN ITEM WITH AN STRING VALUE AND IMPLEMENTING THE COMPARABLE INTERFACE /////
1474
        
1475
        /**
1476
         * This class is used for represent an item, with an string value, and implementing the interface Comparable for allow searches.
1477
         * 
1478
         * @author Pablo Piqueras Bartolom? (p_queras@hotmail.com)
1479
         */
1480
        private static class Item implements Comparable {
1481
                String value;
1482

    
1483
                /**
1484
                 * Default contructor with 1 parameter
1485
                 * 
1486
                 * @param v1 Text value
1487
                 */
1488
                public Item (String v) {
1489
                        value = v;
1490
                }
1491
                
1492
                /*
1493
                 * (non-Javadoc)
1494
                 * @see java.lang.Object#toString()
1495
                 */
1496
                public String toString() {
1497
                        return value;
1498
                }
1499

    
1500
                /*
1501
                 *  (non-Javadoc)
1502
                 * @see java.lang.Comparable#compareTo(java.lang.Object)
1503
                 */
1504
                public int compareTo(Object o) {
1505
                        if (!(o instanceof Item))
1506
                                throw new ClassCastException("Se esperaba un objeto de tipo Item.");
1507

    
1508
                        return this.value.compareTo(o.toString());
1509
                }
1510
        }
1511
        
1512
        ///// AUXILIAR CLASS THAT REPRESENTS AN ITEM WITH AN STRING VALUE AND IMPLEMENTING THE COMPARABLE INTERFACE /////
1513
        
1514
    ///// END AUXILIAR CLASS THAT HAS A METHOD FOR COMPARE TWO ITEMS /////
1515

    
1516
        /**
1517
         * Compares two items (with String value) alphabetically
1518
         *
1519
         * @author Pablo Piqueras Bartolom?
1520
         */
1521
        public class StringComparatorForItems implements Comparator {
1522
                private boolean caseSensitive = true;
1523
                private LocaleRules localeRules = null;
1524

    
1525
            /**
1526
             * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
1527
             */
1528
            public int compare(Object o1, Object o2) {
1529
                String s1 = ((Item) o1).toString();
1530
                String s2 = ((Item) o2).toString();
1531

    
1532
                // If localeRules is null -> use the default rules
1533
                if (localeRules == null) {
1534
                        if (caseSensitive) {
1535
                                return s1.compareTo(s2);
1536
                        }
1537
                        else {
1538
                                return s1.compareToIgnoreCase(s2);
1539
                        }
1540
                }
1541
                else {
1542
                        if (localeRules.isUseLocaleRules()) {
1543
                                Collator collator = localeRules.getCollator();
1544
                                
1545
                                if (caseSensitive) {
1546
                                        return collator.compare(s1, s2);
1547
                                }
1548
                                else {
1549
                                        return collator.compare(s1.toLowerCase(), s2.toLowerCase());
1550
                                }
1551
                        }
1552
                        else {
1553
                            if (caseSensitive) {
1554
                                    return s1.compareTo(s2);
1555
                            }
1556
                            else {
1557
                                    return s1.compareToIgnoreCase(s2);
1558
                            }
1559
                        }
1560
                }
1561
            }
1562

    
1563
            /**
1564
             * Returns if the comparator is sensitive to small and big letters
1565
             *
1566
             * @return
1567
             */
1568
            public boolean isCaseSensitive() {
1569
                return caseSensitive;
1570
            }
1571

    
1572
            /**
1573
             * Establece la sensibilidad del comparador a las mayusculas y minusculas
1574
             *
1575
             * @param b
1576
             */
1577
            public void setCaseSensitive(boolean b) {
1578
                caseSensitive = b;
1579
            }
1580
            
1581
            /**
1582
             * Gets an object with the information for use the locale rules in comparation between strings. <br>
1583
             * <ul>
1584
             * <li>A boolean value -> if want or not use the locale rules</li>
1585
             * <li>A reference to the locale rules</li>
1586
             * </ul>
1587
             * 
1588
             * @return @see LocaleRules
1589
             */
1590
            public LocaleRules getLocaleRules() {
1591
                    return localeRules;
1592
            }    
1593
            /**
1594
             * Sets an object with the information for use the locale rules in comparation between strings. <br>
1595
             * <ul>
1596
             * <li>A boolean value -> if want or not use the locale rules</li>
1597
             * <li>A reference to the locale rules</li>
1598
             * </ul>
1599
             * 
1600
             * @param @see LocaleRules
1601
             */
1602
            public void setLocaleRules(LocaleRules locRules) {
1603
                    localeRules = locRules;
1604
            }
1605
            
1606
            /**
1607
             * 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
1608
             * 
1609
             * @author Pablo Piqueras Bartolom?
1610
             */
1611
            public class LocaleRules {
1612
                     private boolean useLocaleRules;
1613
                     private Collator _collator;
1614
                     
1615
                     /**
1616
                      * Default constructor without parameters
1617
                      */
1618
                     public LocaleRules() {
1619
                             useLocaleRules = false;
1620
                             _collator = null;
1621
                     }
1622
                     
1623
                     /**
1624
                      * Default constructor with two parameters
1625
                      * 
1626
                      * @param b Use locale rules
1627
                      * @param collator A reference to an object configurated for locale-sensitive String comparison
1628
                      */
1629
                     public LocaleRules(boolean b, Collator collator) {
1630
                             useLocaleRules = b;
1631
                             _collator = collator;
1632
                     }
1633
                     
1634
                         /**
1635
                          * Gets the value of the inner attribute <i>_collator</i>
1636
                          * 
1637
                          * @return Returns A reference to an object configurated for locale-sensitive String comparison
1638
                          */
1639
                         public Collator getCollator() {
1640
                                 return _collator;
1641
                         }
1642

    
1643
                         /**
1644
                          * Sets a value to the inner attribute <i>_collator</i>
1645
                          * 
1646
                          * @param collator A reference to an object configurated for locale-sensitive String comparison
1647
                          */
1648
                         public void setCollator(Collator collator) {
1649
                                 this._collator = collator;
1650
                         }
1651

    
1652
                        /**
1653
                         * Gets the value of the inner attribute <i>useLocaleRules</i>
1654
                         * 
1655
                         * @return Returns the useLocaleRules.
1656
                         */
1657
                        public boolean isUseLocaleRules() {
1658
                                return useLocaleRules;
1659
                        }
1660

    
1661
                        /**
1662
                         * Sets a value to the inner attribute <i>useLocaleRules</i>
1663
                         * 
1664
                         * @param useLocaleRules The useLocaleRules to set.
1665
                         */
1666
                        public void setUseLocaleRules(boolean useLocaleRules) {
1667
                                this.useLocaleRules = useLocaleRules;
1668
                        }
1669
            }
1670
        }
1671
        ///// END AUXILIAR CLASS THAT HAS A METHOD FOR COMPARE TWO ITEMS /////
1672
}