/* ******************************************************************************* * Copyright (C) 2003-2010, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ package com.ibm.icu.dev.test.util; import java.util.Arrays; import java.util.HashSet; import com.ibm.icu.dev.test.TestFmwk; import com.ibm.icu.impl.ICUResourceBundle; import com.ibm.icu.lang.UScript; import com.ibm.icu.text.UnicodeSet; import com.ibm.icu.text.UnicodeSetIterator; import com.ibm.icu.util.LocaleData; import com.ibm.icu.util.ULocale; /** * @author ram * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class LocaleDataTest extends TestFmwk{ public static void main(String[] args) throws Exception{ new LocaleDataTest().run(args); } private ULocale[] availableLocales = null; public LocaleDataTest(){ } protected void init(){ availableLocales = ICUResourceBundle.getAvailableULocales(); } public void TestPaperSize(){ for(int i = 0; i < availableLocales.length; i++){ ULocale locale = availableLocales[i]; LocaleData.PaperSize paperSize = LocaleData.getPaperSize(locale); // skip testing of "in" .. deprecated code for Indonesian String lang = locale.getLanguage(); if(lang.equals("in")){ continue; } if(locale.toString().indexOf("_BZ") >= 0 || locale.toString().indexOf("_CA") >= 0 || locale.toString().indexOf("_CL") >= 0 || locale.toString().indexOf("_CO") >= 0 || locale.toString().indexOf("_CR") >= 0 || locale.toString().indexOf("_GT") >= 0 || locale.toString().indexOf("_MX") >= 0 || locale.toString().indexOf("_NI") >= 0 || locale.toString().indexOf("_PA") >= 0 || locale.toString().indexOf("_PH") >= 0 || locale.toString().indexOf("_PR") >= 0 || locale.toString().indexOf("_SV") >= 0 || locale.toString().indexOf("_US") >= 0 || locale.toString().indexOf("_VE") >= 0 ){ if(paperSize.getHeight()!= 279 || paperSize.getWidth() != 216 ){ errln("PaperSize did not return the expected value for locale "+ locale+ " Expected height: 279 width: 216."+ " Got height: "+paperSize.getHeight()+" width: "+paperSize.getWidth() ); }else{ logln("PaperSize returned the expected values for locale " + locale); } }else{ if(paperSize.getHeight()!= 297 || paperSize.getWidth() != 210 ){ errln("PaperSize did not return the expected value for locale "+ locale + " Expected height: 297 width: 210."+ " Got height: "+paperSize.getHeight() +" width: "+paperSize.getWidth() ); }else{ logln("PaperSize returned the expected values for locale " + locale); } } } } public void TestMeasurementSystem(){ for(int i=0; i= 0){ if(ms == LocaleData.MeasurementSystem.US){ logln("Got the expected measurement system for locale: " + locale); }else{ errln("Did not get the expected measurement system for locale: "+ locale); } }else{ if(ms == LocaleData.MeasurementSystem.SI){ logln("Got the expected measurement system for locale: " + locale); }else{ errln("Did not get the expected measurement system for locale: "+ locale); } } } } // Bundle together a UnicodeSet (of expemplars) and ScriptCode combination. // We keep a set of combinations that have already been tested, to // avoid repeated (time consuming) retesting of the same data. // Instances of this class must be well behaved as members of a set. static class ExemplarGroup { private int[] scs; private UnicodeSet set; ExemplarGroup(UnicodeSet s, int[] scriptCodes) { set = s; scs = scriptCodes; } public int hashCode() { int hash = 0; for (int i=0; i 0 && equalCount < availableLocales.length); } public void TestExemplarSet2(){ int equalCount = 0; HashSet testedExemplars = new HashSet(); for(int i=0; i 0 && equalCount < availableLocales.length * 2); } public void TestCoverage(){ LocaleData ld = LocaleData.getInstance(); boolean t = ld.getNoSubstitute(); ld.setNoSubstitute(t); assertEquals("LocaleData get/set NoSubstitute", t, ld.getNoSubstitute()); logln(ld.getDelimiter(LocaleData.QUOTATION_START)); logln(ld.getDelimiter(LocaleData.QUOTATION_END)); logln(ld.getDelimiter(LocaleData.ALT_QUOTATION_START)); logln(ld.getDelimiter(LocaleData.ALT_QUOTATION_END)); } public void TestLocaleDisplayPattern(){ LocaleData ld = LocaleData.getInstance(); logln("Default locale "+ " LocaleDisplayPattern:" + ld.getLocaleDisplayPattern()); logln("Default locale "+ " LocaleSeparator:" + ld.getLocaleSeparator()); for(int i = 0; i < availableLocales.length; i++){ ULocale locale = availableLocales[i]; ld = LocaleData.getInstance(locale); logln(locale.toString() + " LocaleDisplayPattern:" + ld.getLocaleDisplayPattern()); logln(locale.toString() + " LocaleSeparator:" + ld.getLocaleSeparator()); } } }