emul/compact/src/test/java/org/apidesign/bck2brwsr/compact/tck/CollectionsTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 24 Jan 2013 18:04:44 +0100
branchemul
changeset 574 7cf961390eac
child 599 d0f57d3ea898
permissions -rw-r--r--
ArrayList, HashSet, HashMap and sorting algorithm on arrays seems to work
jaroslav@574
     1
/**
jaroslav@574
     2
 * Back 2 Browser Bytecode Translator
jaroslav@574
     3
 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jaroslav@574
     4
 *
jaroslav@574
     5
 * This program is free software: you can redistribute it and/or modify
jaroslav@574
     6
 * it under the terms of the GNU General Public License as published by
jaroslav@574
     7
 * the Free Software Foundation, version 2 of the License.
jaroslav@574
     8
 *
jaroslav@574
     9
 * This program is distributed in the hope that it will be useful,
jaroslav@574
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
jaroslav@574
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
jaroslav@574
    12
 * GNU General Public License for more details.
jaroslav@574
    13
 *
jaroslav@574
    14
 * You should have received a copy of the GNU General Public License
jaroslav@574
    15
 * along with this program. Look for COPYING file in the top folder.
jaroslav@574
    16
 * If not, see http://opensource.org/licenses/GPL-2.0.
jaroslav@574
    17
 */
jaroslav@574
    18
package org.apidesign.bck2brwsr.compact.tck;
jaroslav@574
    19
jaroslav@574
    20
import java.util.ArrayList;
jaroslav@574
    21
import java.util.Arrays;
jaroslav@574
    22
import java.util.Collection;
jaroslav@574
    23
import java.util.Comparator;
jaroslav@574
    24
import java.util.HashMap;
jaroslav@574
    25
import java.util.HashSet;
jaroslav@574
    26
import java.util.List;
jaroslav@574
    27
import java.util.Map;
jaroslav@574
    28
import org.apidesign.bck2brwsr.vmtest.Compare;
jaroslav@574
    29
import org.apidesign.bck2brwsr.vmtest.VMTest;
jaroslav@574
    30
import org.testng.annotations.Factory;
jaroslav@574
    31
jaroslav@574
    32
/**
jaroslav@574
    33
 *
jaroslav@574
    34
 * @author Jaroslav Tulach <jtulach@netbeans.org>
jaroslav@574
    35
 */
jaroslav@574
    36
public class CollectionsTest {
jaroslav@574
    37
    @Compare public String sortStringsInArray() {
jaroslav@574
    38
        List<String> list = new ArrayList<>();
jaroslav@574
    39
        list.add("one");
jaroslav@574
    40
        list.add("two");
jaroslav@574
    41
        list.add("three");
jaroslav@574
    42
        list.add("four");
jaroslav@574
    43
        list.add("five");
jaroslav@574
    44
        list.add("six");
jaroslav@574
    45
        list.add("seven");
jaroslav@574
    46
        list.add("eight");
jaroslav@574
    47
        list.add("nine");
jaroslav@574
    48
        list.add("ten");
jaroslav@574
    49
        
jaroslav@574
    50
        String[] arr = list.toArray(new String[list.size()]);
jaroslav@574
    51
        Arrays.sort(arr);
jaroslav@574
    52
        
jaroslav@574
    53
        return Arrays.asList(arr).toString();
jaroslav@574
    54
    }
jaroslav@574
    55
    
jaroslav@574
    56
    @Compare public String sortStringsInHashSet() {
jaroslav@574
    57
        Collection<String> list = new HashSet<>();
jaroslav@574
    58
        list.add("one");
jaroslav@574
    59
        list.add("two");
jaroslav@574
    60
        list.add("three");
jaroslav@574
    61
        list.add("four");
jaroslav@574
    62
        list.add("five");
jaroslav@574
    63
        list.add("six");
jaroslav@574
    64
        list.add("seven");
jaroslav@574
    65
        list.add("eight");
jaroslav@574
    66
        list.add("nine");
jaroslav@574
    67
        list.add("ten");
jaroslav@574
    68
        
jaroslav@574
    69
        String[] arr = list.toArray(new String[0]);
jaroslav@574
    70
        Arrays.sort(arr);
jaroslav@574
    71
        
jaroslav@574
    72
        return Arrays.asList(arr).toString();
jaroslav@574
    73
    }
jaroslav@574
    74
jaroslav@574
    75
    @SuppressWarnings("unchecked")
jaroslav@574
    76
    @Compare public String sortStringsInHashMapWithComparator() {
jaroslav@574
    77
        class C implements Comparator<Map.Entry<String,Integer>> {
jaroslav@574
    78
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
jaroslav@574
    79
                return o1.getKey().compareTo(o2.getKey());
jaroslav@574
    80
            }
jaroslav@574
    81
        }
jaroslav@574
    82
        
jaroslav@574
    83
        Map<String,Integer> map = new HashMap<>();
jaroslav@574
    84
        map.put("one", 1);
jaroslav@574
    85
        map.put("two", 2);
jaroslav@574
    86
        map.put("three", 3);
jaroslav@574
    87
        map.put("four", 4);
jaroslav@574
    88
        map.put("five", 5);
jaroslav@574
    89
        map.put("six", 6);
jaroslav@574
    90
        map.put("seven", 7);
jaroslav@574
    91
        map.put("eight", 8);
jaroslav@574
    92
        map.put("nine", 9);
jaroslav@574
    93
        map.put("ten", 10);
jaroslav@574
    94
        
jaroslav@574
    95
        Map.Entry<String,Integer>[] arr = map.entrySet().toArray(new Map.Entry[map.size()]);
jaroslav@574
    96
        Arrays.sort(arr, new C());
jaroslav@574
    97
        
jaroslav@574
    98
        return Arrays.asList(arr).toString();
jaroslav@574
    99
    }
jaroslav@574
   100
    
jaroslav@574
   101
    @Factory
jaroslav@574
   102
    public static Object[] create() {
jaroslav@574
   103
        return VMTest.create(CollectionsTest.class);
jaroslav@574
   104
    }
jaroslav@574
   105
    
jaroslav@574
   106
}