ICU-4567 data driven test basis

X-SVN-Rev: 22003
This commit is contained in:
Steven R. Loomis 2007-07-16 22:06:17 +00:00
parent 5a13e65149
commit 707a17fae1
5 changed files with 247 additions and 1 deletions

3
.gitattributes vendored
View file

@ -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

View 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];
}
}

View 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 */
},
};
}

View 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);
}
}
}
}
}

View file

@ -31,7 +31,8 @@ public class TestAll extends TestGroup {
"TrieTest",
"LocaleDataTest",
"ULocaleTest",
"LocaleAliasTest"
"LocaleAliasTest",
"DebugUtilitiesTest"
},
"Test miscellaneous public utilities");
}