Skip to content

Instantly share code, notes, and snippets.

@brettwooldridge
Created June 12, 2014 01:07
Show Gist options
  • Save brettwooldridge/2572573e1c6955bd7b31 to your computer and use it in GitHub Desktop.
Save brettwooldridge/2572573e1c6955bd7b31 to your computer and use it in GitHub Desktop.
Japan/US collation comparison test over the ASCII space
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import org.junit.Assert;
import org.junit.Test;
public class CollationCompare
{
private ArrayList<String> strings1 = new ArrayList<String>();
private ArrayList<String> strings2 = new ArrayList<String>();
private ArrayList<String> strings3 = new ArrayList<String>();
private ArrayList<String> strings4 = new ArrayList<String>();
// private static Locale locale = Locale.JAPAN;
public CollationCompare()
{
strings1.add("---10----1");
strings1.add("---10---15");
strings1.add("---10----2");
strings1.add("---11");
strings1.add("---12");
strings1.add("----1");
strings1.add("----2");
strings1.add("----3");
strings2.add("...10....1");
strings2.add("...10...15");
strings2.add("...10....2");
strings2.add("...11");
strings2.add("...12");
strings2.add("....1");
strings2.add("....2");
strings2.add("....3");
strings3.add("abc");
strings3.add("xyz");
strings3.add("fe2");
strings3.add("ABC");
strings3.add("XYZ");
strings3.add("FE2");
strings3.add("101");
strings3.add("100");
strings4.add(",");
strings4.add("!");
strings4.add("#");
strings4.add("$");
strings4.add("%");
strings4.add("^");
strings4.add("&");
strings4.add("*");
strings4.add("(");
strings4.add(")");
strings4.add("~");
strings4.add("`");
strings4.add("-");
strings4.add("_");
strings4.add("=");
strings4.add("+");
strings4.add("[");
strings4.add("]");
strings4.add("{");
strings4.add("}");
strings4.add("\\");
strings4.add(";");
strings4.add(":");
}
@Test
public void test()
{
List<String> japan1 = sort(strings1, Locale.JAPAN);
List<String> us1 = sort(strings1, Locale.US);
Assert.assertEquals(us1, japan1);
List<String> japan2 = sort(strings2, Locale.JAPAN);
List<String> us2 = sort(strings2, Locale.US);
Assert.assertEquals(us2, japan2);
List<String> japan3 = sort(strings3, Locale.JAPAN);
List<String> us3 = sort(strings3, Locale.US);
Assert.assertEquals(us3, japan3);
List<String> japan4 = sort(strings4, Locale.JAPAN);
List<String> us4 = sort(strings4, Locale.US);
Assert.assertEquals(us4, japan4);
}
private List<String> sort(List<String> list, Locale locale)
{
final Collator collator = Collator.getInstance(locale);
collator.setStrength(Collator.PRIMARY);
ArrayList<String> copy = new ArrayList<String>(list);
Collections.sort(copy, new Comparator<String>()
{
@Override
public int compare(String s1, String s2)
{
return collator.compare(s1, s2);
}
});
return copy;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment