# HG changeset patch # User Jaroslav Tulach # Date 1359047084 -3600 # Node ID 7cf961390eac2c7b0603e704c05a4f6f4a725471 # Parent d3a0383d01d3571efa9a708a3cd1f34d1a597845 ArrayList, HashSet, HashMap and sorting algorithm on arrays seems to work diff -r d3a0383d01d3 -r 7cf961390eac emul/compact/src/test/java/org/apidesign/bck2brwsr/compact/tck/CollectionsTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emul/compact/src/test/java/org/apidesign/bck2brwsr/compact/tck/CollectionsTest.java Thu Jan 24 18:04:44 2013 +0100 @@ -0,0 +1,106 @@ +/** + * Back 2 Browser Bytecode Translator + * Copyright (C) 2012 Jaroslav Tulach + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. Look for COPYING file in the top folder. + * If not, see http://opensource.org/licenses/GPL-2.0. + */ +package org.apidesign.bck2brwsr.compact.tck; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import org.apidesign.bck2brwsr.vmtest.Compare; +import org.apidesign.bck2brwsr.vmtest.VMTest; +import org.testng.annotations.Factory; + +/** + * + * @author Jaroslav Tulach + */ +public class CollectionsTest { + @Compare public String sortStringsInArray() { + List list = new ArrayList<>(); + list.add("one"); + list.add("two"); + list.add("three"); + list.add("four"); + list.add("five"); + list.add("six"); + list.add("seven"); + list.add("eight"); + list.add("nine"); + list.add("ten"); + + String[] arr = list.toArray(new String[list.size()]); + Arrays.sort(arr); + + return Arrays.asList(arr).toString(); + } + + @Compare public String sortStringsInHashSet() { + Collection list = new HashSet<>(); + list.add("one"); + list.add("two"); + list.add("three"); + list.add("four"); + list.add("five"); + list.add("six"); + list.add("seven"); + list.add("eight"); + list.add("nine"); + list.add("ten"); + + String[] arr = list.toArray(new String[0]); + Arrays.sort(arr); + + return Arrays.asList(arr).toString(); + } + + @SuppressWarnings("unchecked") + @Compare public String sortStringsInHashMapWithComparator() { + class C implements Comparator> { + public int compare(Map.Entry o1, Map.Entry o2) { + return o1.getKey().compareTo(o2.getKey()); + } + } + + Map map = new HashMap<>(); + map.put("one", 1); + map.put("two", 2); + map.put("three", 3); + map.put("four", 4); + map.put("five", 5); + map.put("six", 6); + map.put("seven", 7); + map.put("eight", 8); + map.put("nine", 9); + map.put("ten", 10); + + Map.Entry[] arr = map.entrySet().toArray(new Map.Entry[map.size()]); + Arrays.sort(arr, new C()); + + return Arrays.asList(arr).toString(); + } + + @Factory + public static Object[] create() { + return VMTest.create(CollectionsTest.class); + } + +}