mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-14 09:21:03 +00:00
ICU-4567 data driven test basis
X-SVN-Rev: 22003
This commit is contained in:
parent
5a13e65149
commit
707a17fae1
5 changed files with 247 additions and 1 deletions
3
.gitattributes
vendored
3
.gitattributes
vendored
|
@ -222,6 +222,9 @@ icu4j/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.TimeZo
|
|||
icu4j/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.ULocale.dat -text
|
||||
icu4j/src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.util.UResourceTypeMismatchException.dat -text
|
||||
icu4j/src/com/ibm/icu/dev/test/timezone/TimeZoneRuleTest.java -text
|
||||
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilities.java -text
|
||||
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilitiesData.java -text
|
||||
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilitiesTest.java -text
|
||||
icu4j/src/com/ibm/icu/dev/tool/docs/icu4j28.api.gz -text
|
||||
icu4j/src/com/ibm/icu/dev/tool/docs/icu4j30.api.gz -text
|
||||
icu4j/src/com/ibm/icu/dev/tool/docs/icu4j32.api.gz -text
|
||||
|
|
77
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilities.java
Normal file
77
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilities.java
Normal file
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2007, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.test.util;
|
||||
|
||||
/**
|
||||
* @author srl
|
||||
*
|
||||
*/
|
||||
|
||||
public class DebugUtilities {
|
||||
|
||||
/**
|
||||
* Count enum types
|
||||
* @return the number of enum types available, starting at 0
|
||||
*/
|
||||
public static int typeCount() {
|
||||
return DebugUtilitiesData.TYPES.length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the name of a particular type of enum
|
||||
* @param type the enum type
|
||||
* @return the name of the enum
|
||||
*/
|
||||
public static String typeString(int type) {
|
||||
return enumString(DebugUtilitiesData.UDebugEnumType, type);
|
||||
}
|
||||
|
||||
/**
|
||||
* Count the number of available enum values for an item, from 0
|
||||
* @param type which enum to look up, such as DebugUtilitiesData.UCalendarDateFields
|
||||
* @return the number of available enum values
|
||||
*/
|
||||
public static int enumCount(int type) {
|
||||
return DebugUtilitiesData.NAMES[type].length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the name of an enum
|
||||
* @param type which enum to look up, such as DebugUtilitiesData.UCalendarDateFields
|
||||
* @param field which enum value to look up
|
||||
* @return the found name. Will throw an exception on out of bounds.
|
||||
*/
|
||||
public static String enumString(int type, int field) {
|
||||
return DebugUtilitiesData.NAMES[type][field];
|
||||
}
|
||||
|
||||
/**
|
||||
* Lookup an enum by string
|
||||
* @param type which enum to look up, such as DebugUtilitiesData.UCalendarDateFields
|
||||
* @param string the string to search for
|
||||
* @return the found enum value, or -1 if not found
|
||||
*/
|
||||
public static int enumByString(int type, String string) {
|
||||
for(int j=0;j<DebugUtilitiesData.NAMES[type].length;j++) {
|
||||
if(string.equals(DebugUtilitiesData.NAMES[type][j])) {
|
||||
return j;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* for consistency checking
|
||||
* @param type the type of enum
|
||||
* @return the expected ordinal value (should be equal to "field")
|
||||
* @internal
|
||||
*/
|
||||
public static int enumArrayValue(int type, int field) {
|
||||
return DebugUtilitiesData.VALUES[type][field];
|
||||
}
|
||||
|
||||
}
|
118
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilitiesData.java
Normal file
118
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilitiesData.java
Normal file
|
@ -0,0 +1,118 @@
|
|||
/** Copyright (C) 2007, International Business Machines Corporation and Others. All Rights Reserved. **/
|
||||
|
||||
/* NOTE: this file is AUTOMATICALLY GENERATED by gentest. */
|
||||
|
||||
package com.ibm.icu.dev.test.util;
|
||||
|
||||
public class DebugUtilitiesData extends Object {
|
||||
public static final String ICU4C_VERSION="3.7.2";
|
||||
public static final int UDebugEnumType = 0;
|
||||
public static final int UCalendarDateFields = 1;
|
||||
public static final int UCalendarMonths = 2;
|
||||
public static final String [] TYPES = {
|
||||
"UDebugEnumType", /* 0 */
|
||||
"UCalendarDateFields", /* 1 */
|
||||
"UCalendarMonths", /* 2 */
|
||||
};
|
||||
|
||||
public static final String [][] NAMES = {
|
||||
/* UDebugEnumType */
|
||||
{
|
||||
"UDebugEnumType", /* 0 */
|
||||
"UCalendarDateFields", /* 1 */
|
||||
"UCalendarMonths", /* 2 */
|
||||
},
|
||||
/* UCalendarDateFields */
|
||||
{
|
||||
"ERA", /* 0 */
|
||||
"YEAR", /* 1 */
|
||||
"MONTH", /* 2 */
|
||||
"WEEK_OF_YEAR", /* 3 */
|
||||
"WEEK_OF_MONTH", /* 4 */
|
||||
"DATE", /* 5 */
|
||||
"DAY_OF_YEAR", /* 6 */
|
||||
"DAY_OF_WEEK", /* 7 */
|
||||
"DAY_OF_WEEK_IN_MONTH", /* 8 */
|
||||
"AM_PM", /* 9 */
|
||||
"HOUR", /* 10 */
|
||||
"HOUR_OF_DAY", /* 11 */
|
||||
"MINUTE", /* 12 */
|
||||
"SECOND", /* 13 */
|
||||
"MILLISECOND", /* 14 */
|
||||
"ZONE_OFFSET", /* 15 */
|
||||
"DST_OFFSET", /* 16 */
|
||||
"YEAR_WOY", /* 17 */
|
||||
"DOW_LOCAL", /* 18 */
|
||||
"EXTENDED_YEAR", /* 19 */
|
||||
"JULIAN_DAY", /* 20 */
|
||||
"MILLISECONDS_IN_DAY", /* 21 */
|
||||
},
|
||||
/* UCalendarMonths */
|
||||
{
|
||||
"JANUARY", /* 0 */
|
||||
"FEBRUARY", /* 1 */
|
||||
"MARCH", /* 2 */
|
||||
"APRIL", /* 3 */
|
||||
"MAY", /* 4 */
|
||||
"JUNE", /* 5 */
|
||||
"JULY", /* 6 */
|
||||
"AUGUST", /* 7 */
|
||||
"SEPTEMBER", /* 8 */
|
||||
"OCTOBER", /* 9 */
|
||||
"NOVEMBER", /* 10 */
|
||||
"DECEMBER", /* 11 */
|
||||
"UNDECIMBER", /* 12 */
|
||||
},
|
||||
};
|
||||
|
||||
public static final int [][] VALUES = {
|
||||
/* UDebugEnumType */
|
||||
{
|
||||
0, /* UDebugEnumType */
|
||||
1, /* UCalendarDateFields */
|
||||
2, /* UCalendarMonths */
|
||||
},
|
||||
/* UCalendarDateFields */
|
||||
{
|
||||
com.ibm.icu.util.Calendar.ERA, /* 0 */
|
||||
com.ibm.icu.util.Calendar.YEAR, /* 1 */
|
||||
com.ibm.icu.util.Calendar.MONTH, /* 2 */
|
||||
com.ibm.icu.util.Calendar.WEEK_OF_YEAR, /* 3 */
|
||||
com.ibm.icu.util.Calendar.WEEK_OF_MONTH, /* 4 */
|
||||
com.ibm.icu.util.Calendar.DATE, /* 5 */
|
||||
com.ibm.icu.util.Calendar.DAY_OF_YEAR, /* 6 */
|
||||
com.ibm.icu.util.Calendar.DAY_OF_WEEK, /* 7 */
|
||||
com.ibm.icu.util.Calendar.DAY_OF_WEEK_IN_MONTH, /* 8 */
|
||||
com.ibm.icu.util.Calendar.AM_PM, /* 9 */
|
||||
com.ibm.icu.util.Calendar.HOUR, /* 10 */
|
||||
com.ibm.icu.util.Calendar.HOUR_OF_DAY, /* 11 */
|
||||
com.ibm.icu.util.Calendar.MINUTE, /* 12 */
|
||||
com.ibm.icu.util.Calendar.SECOND, /* 13 */
|
||||
com.ibm.icu.util.Calendar.MILLISECOND, /* 14 */
|
||||
com.ibm.icu.util.Calendar.ZONE_OFFSET, /* 15 */
|
||||
com.ibm.icu.util.Calendar.DST_OFFSET, /* 16 */
|
||||
com.ibm.icu.util.Calendar.YEAR_WOY, /* 17 */
|
||||
com.ibm.icu.util.Calendar.DOW_LOCAL, /* 18 */
|
||||
com.ibm.icu.util.Calendar.EXTENDED_YEAR, /* 19 */
|
||||
com.ibm.icu.util.Calendar.JULIAN_DAY, /* 20 */
|
||||
com.ibm.icu.util.Calendar.MILLISECONDS_IN_DAY, /* 21 */
|
||||
},
|
||||
/* UCalendarMonths */
|
||||
{
|
||||
com.ibm.icu.util.Calendar.JANUARY, /* 0 */
|
||||
com.ibm.icu.util.Calendar.FEBRUARY, /* 1 */
|
||||
com.ibm.icu.util.Calendar.MARCH, /* 2 */
|
||||
com.ibm.icu.util.Calendar.APRIL, /* 3 */
|
||||
com.ibm.icu.util.Calendar.MAY, /* 4 */
|
||||
com.ibm.icu.util.Calendar.JUNE, /* 5 */
|
||||
com.ibm.icu.util.Calendar.JULY, /* 6 */
|
||||
com.ibm.icu.util.Calendar.AUGUST, /* 7 */
|
||||
com.ibm.icu.util.Calendar.SEPTEMBER, /* 8 */
|
||||
com.ibm.icu.util.Calendar.OCTOBER, /* 9 */
|
||||
com.ibm.icu.util.Calendar.NOVEMBER, /* 10 */
|
||||
com.ibm.icu.util.Calendar.DECEMBER, /* 11 */
|
||||
com.ibm.icu.util.Calendar.UNDECIMBER, /* 12 */
|
||||
},
|
||||
};
|
||||
|
||||
}
|
47
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilitiesTest.java
Normal file
47
icu4j/src/com/ibm/icu/dev/test/util/DebugUtilitiesTest.java
Normal file
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2007, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.test.util;
|
||||
|
||||
import com.ibm.icu.dev.test.TestFmwk;
|
||||
|
||||
/**
|
||||
* @author srl
|
||||
*
|
||||
*/
|
||||
public class DebugUtilitiesTest extends TestFmwk {
|
||||
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
new DebugUtilitiesTest().run(args);
|
||||
}
|
||||
|
||||
public void TestStrings() {
|
||||
logln("ICU4C version was "+DebugUtilitiesData.ICU4C_VERSION);
|
||||
int typeCount = DebugUtilities.typeCount();
|
||||
if(typeCount==0) {
|
||||
errln("typecount is 0!");
|
||||
}
|
||||
for(int j=0;j<typeCount;j++) {
|
||||
int enumCount = DebugUtilities.enumCount(j);
|
||||
logln("Type "+j+"/"+typeCount+": "+DebugUtilities.typeString(j) +" - enumCount "+enumCount);
|
||||
for(int k=0;k<enumCount;k++) {
|
||||
String enumString = DebugUtilities.enumString(j,k);
|
||||
int enumValue = DebugUtilities.enumArrayValue(j, k);
|
||||
int enumValueFromString = DebugUtilities.enumByString(j, enumString);
|
||||
logln(" Enum "+k+"/"+enumCount+": "+enumString +" - value "+enumValue+", value from string:"+enumValueFromString);
|
||||
if(enumValue != k) {
|
||||
errln("FAIL: Type "+j+"/"+typeCount+": "+DebugUtilities.typeString(j) +" - Enum "+k+"/"+enumCount+": "+enumString +" - ERR: value="+enumValue+" should be "+k);
|
||||
}
|
||||
if(enumValueFromString != k) {
|
||||
errln("FAIL: Type "+j+"/"+typeCount+": "+DebugUtilities.typeString(j) +" - Enum "+k+"/"+enumCount+": "+enumString +" - ERR: enumByString returned="+enumValueFromString+" should be "+k);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -31,7 +31,8 @@ public class TestAll extends TestGroup {
|
|||
"TrieTest",
|
||||
"LocaleDataTest",
|
||||
"ULocaleTest",
|
||||
"LocaleAliasTest"
|
||||
"LocaleAliasTest",
|
||||
"DebugUtilitiesTest"
|
||||
},
|
||||
"Test miscellaneous public utilities");
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue