// Tags: JDK1.0 // Copyright (C) 1998, 1999 Cygnus Solutions // This file is part of Mauve. // Mauve 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; either version 2, or (at your option) // any later version. // Mauve 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 Mauve; see the file COPYING. If not, write to // the Free Software Foundation, 59 Temple Place - Suite 330, // Boston, MA 02111-1307, USA. */ package gnu.testlet.wonka.lang.Character; import gnu.testlet.Testlet; import gnu.testlet.TestHarness; import gnu.testlet.UnicodeSubsets; public class getType implements Testlet { public static void p (TestHarness harness, char c, String expected) { String s; switch (Character.getType (c)) { case Character.SPACE_SEPARATOR: s = "space_separator"; break; case Character.LINE_SEPARATOR: s = "line_separator"; break; case Character.PARAGRAPH_SEPARATOR: s = "paragraph_separator"; break; case Character.UPPERCASE_LETTER: s = "uppercase_letter"; break; case Character.LOWERCASE_LETTER: s = "lowercase_letter"; break; case Character.TITLECASE_LETTER: s = "titlecase_letter"; break; case Character.MODIFIER_LETTER: s = "modifier_letter"; break; case Character.OTHER_LETTER: s = "other_letter"; break; case Character.DECIMAL_DIGIT_NUMBER: s = "decimal_digit_number"; break; case Character.LETTER_NUMBER: s = "letter_number"; break; case Character.OTHER_NUMBER: s = "other_number"; break; case Character.NON_SPACING_MARK: s = "non_spacing_mark"; break; case Character.ENCLOSING_MARK: s = "enclosing_mark"; break; case Character.COMBINING_SPACING_MARK: s = "combining_spacing_mark"; break; case Character.DASH_PUNCTUATION: s = "dash_punctuation"; break; case Character.START_PUNCTUATION: s = "start_punctuation"; break; case Character.END_PUNCTUATION: s = "end_punctuation"; break; case Character.INITIAL_QUOTE_PUNCTUATION: s = "initial_quote"; break; case Character.FINAL_QUOTE_PUNCTUATION: s = "final_quote"; break; case Character.CONNECTOR_PUNCTUATION: s = "connector_punctuation"; break; case Character.OTHER_PUNCTUATION: s = "other_punctuation"; break; case Character.MATH_SYMBOL: s = "math_symbol"; break; case Character.CURRENCY_SYMBOL: s = "currency_symbol"; break; case Character.MODIFIER_SYMBOL: s = "modifier_symbol"; break; case Character.OTHER_SYMBOL: s = "other_symbol"; break; case Character.CONTROL: s = "control"; break; case Character.FORMAT: s = "format"; break; case Character.UNASSIGNED: s = "unassigned"; break; case Character.PRIVATE_USE: s = "private_use"; break; case Character.SURROGATE: s = "surrogate"; break; default: s = "???"; break; } harness.check (s, expected); } public void test (TestHarness harness) { p (harness, ' ', "space_separator"); p (harness, '\u2028', "line_separator"); p (harness, '\u2029', "paragraph_separator"); if (UnicodeSubsets.isSupported("36")) { p (harness, '\u2110', "uppercase_letter"); } p (harness, 'Z', "uppercase_letter"); if (UnicodeSubsets.isSupported("69")) { p (harness, '\uff44', "lowercase_letter"); } p (harness, 'z', "lowercase_letter"); if (UnicodeSubsets.isSupported("31")) { p (harness, '\u1fe4', "lowercase_letter"); } if (UnicodeSubsets.isSupported("4")) { p (harness, '\u01c5', "titlecase_letter"); } if (UnicodeSubsets.isSupported("49")) { p (harness, '\u3005', "modifier_letter"); } if (UnicodeSubsets.isSupported("4")) { p (harness, '\u01bf', "other_letter"); } if (UnicodeSubsets.isSupported("15")) { p (harness, '\u0666', "decimal_digit_number"); } if (UnicodeSubsets.isSupported("37")) { p (harness, '\u216f', "letter_number"); } if (UnicodeSubsets.isSupported("72") || UnicodeSubsets.isSupported("91")) { p (harness, '\u0f32', "other_number"); } if (UnicodeSubsets.isSupported("72") || UnicodeSubsets.isSupported("91")) { p (harness, '\u0f35', "non_spacing_mark"); } if (UnicodeSubsets.isSupported("15")) { p (harness, '\u06de', "enclosing_mark"); } if (UnicodeSubsets.isSupported("16")) { p (harness, '\u0903', "combining_spacing_mark"); } p (harness, '-', "dash_punctuation"); if (UnicodeSubsets.isSupported("67")) { p (harness, '\ufe59', "start_punctuation"); } p (harness, '\u00ab', "initial_quote"); if (UnicodeSubsets.isSupported("72") || UnicodeSubsets.isSupported("91")) { p (harness, '\u0f3b', "end_punctuation"); } p (harness, '\u2019', "final_quote"); if (UnicodeSubsets.isSupported("69")) { p (harness, '\uff3f', "connector_punctuation"); } if (UnicodeSubsets.isSupported("39")) { p (harness, '\u2202', "math_symbol"); } p (harness, '\u20ab', "currency_symbol"); if (UnicodeSubsets.isSupported("6")) { p (harness, '\u02c2', "modifier_symbol"); } if (UnicodeSubsets.isSupported("19")) { p (harness, '\u0ad0', "other_letter"); } p (harness, '\u20ab', "currency_symbol"); if (UnicodeSubsets.isSupported("20")) { p (harness, '\u0b70', "other_symbol"); } p (harness, '\u009f', "control"); if (UnicodeSubsets.isSupported("200")) { p (harness, '\ufeff', "format"); } p (harness, '\uffff', "unassigned"); p (harness, '\uffef', "unassigned"); if (UnicodeSubsets.isSupported("61")) { p (harness, '\uebeb', "private_use"); } // We don't support surrogates // p (harness, '\udb9c', "surrogate"); if (UnicodeSubsets.isSupported("43")) { p (harness, '\u249f', "other_symbol"); } if (UnicodeSubsets.isSupported("36")) { p (harness, '\u2102', "uppercase_letter"); } } }