summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-50.1/test/intltest/transtst.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-50.1/test/intltest/transtst.h')
-rw-r--r--Build/source/libs/icu/icu-50.1/test/intltest/transtst.h427
1 files changed, 427 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-50.1/test/intltest/transtst.h b/Build/source/libs/icu/icu-50.1/test/intltest/transtst.h
new file mode 100644
index 00000000000..0b1f9a10342
--- /dev/null
+++ b/Build/source/libs/icu/icu-50.1/test/intltest/transtst.h
@@ -0,0 +1,427 @@
+/*
+**********************************************************************
+* Copyright (C) 1999-2011, International Business Machines
+* Corporation and others. All Rights Reserved.
+**********************************************************************
+* Date Name Description
+* 11/10/99 aliu Creation.
+**********************************************************************
+*/
+#ifndef TRANSTST_H
+#define TRANSTST_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_TRANSLITERATION
+
+#include "unicode/translit.h"
+#include "intltest.h"
+
+/**
+ * @test
+ * @summary General test of Transliterator
+ */
+class TransliteratorTest : public IntlTest {
+
+public:
+ TransliteratorTest();
+ virtual ~TransliteratorTest();
+
+private:
+ void runIndexedTest(int32_t index, UBool exec, const char* &name,
+ char* par=NULL);
+
+ void TestInstantiation(void);
+
+ void TestSimpleRules(void);
+
+ void TestInlineSet(void);
+
+ void TestAnchors(void);
+
+ void TestPatternQuoting(void);
+
+ /**
+ * Create some inverses and confirm that they work. We have to be
+ * careful how we do this, since the inverses will not be true
+ * inverses -- we can't throw any random string at the composition
+ * of the transliterators and expect the identity function. F x
+ * F' != I. However, if we are careful about the input, we will
+ * get the expected results.
+ */
+ void TestRuleBasedInverse(void);
+
+ /**
+ * Basic test of keyboard.
+ */
+ void TestKeyboard(void);
+
+ /**
+ * Basic test of keyboard with cursor.
+ */
+ void TestKeyboard2(void);
+
+ /**
+ * Test keyboard transliteration with back-replacement.
+ */
+ void TestKeyboard3(void);
+
+ void keyboardAux(const Transliterator& t,
+ const char* DATA[], int32_t DATA_length);
+
+ void TestArabic(void);
+
+ /**
+ * Compose the Kana transliterator forward and reverse and try
+ * some strings that should come out unchanged.
+ */
+ void TestCompoundKana(void);
+
+ /**
+ * Compose the hex transliterators forward and reverse.
+ */
+ void TestCompoundHex(void);
+
+ /**
+ * Do some basic tests of filtering.
+ */
+ void TestFiltering(void);
+
+ /**
+ * Regression test for bugs found in Greek transliteration.
+ */
+ void TestJ277(void);
+
+ /**
+ * Prefix, suffix support in hex transliterators.
+ */
+ void TestJ243(void);
+
+ /**
+ * Parsers need better syntax error messages.
+ */
+ void TestJ329(void);
+
+ /**
+ * Test segments and segment references.
+ */
+ void TestSegments(void);
+
+ /**
+ * Test cursor positioning outside of the key
+ */
+ void TestCursorOffset(void);
+
+ /**
+ * Test zero length and > 1 char length variable values. Test
+ * use of variable refs in UnicodeSets.
+ */
+ void TestArbitraryVariableValues(void);
+
+ /**
+ * Confirm that the contextStart, contextLimit, start, and limit
+ * behave correctly. J474.
+ */
+ void TestPositionHandling(void);
+
+ /**
+ * Test the Hiragana-Katakana transliterator.
+ */
+ void TestHiraganaKatakana(void);
+
+ /**
+ * Test cloning / copy constructor of RBT.
+ */
+ void TestCopyJ476(void);
+
+ /**
+ * Test inter-Indic transliterators. These are composed.
+ * ICU4C Jitterbug 483.
+ */
+ void TestInterIndic(void);
+
+ /**
+ * Test filter syntax in IDs. (J918)
+ */
+ void TestFilterIDs(void);
+
+ /**
+ * Test the case mapping transliterators.
+ */
+ void TestCaseMap(void);
+
+ /**
+ * Test the name mapping transliterators.
+ */
+ void TestNameMap(void);
+
+ /**
+ * Test liberalized ID syntax. 1006c
+ */
+ void TestLiberalizedID(void);
+ /**
+ * Test Jitterbug 912
+ */
+ void TestCreateInstance(void);
+
+ void TestNormalizationTransliterator(void);
+
+ void TestCompoundRBT(void);
+
+ void TestCompoundFilter(void);
+
+ void TestRemove(void);
+
+ void TestToRules(void);
+
+ void TestContext(void);
+
+ void TestSupplemental(void);
+
+ void TestQuantifier(void);
+
+ /**
+ * Test Source-Target/Variant.
+ */
+ void TestSTV(void);
+
+ void TestCompoundInverse(void);
+
+ void TestNFDChainRBT(void);
+
+ /**
+ * Inverse of "Null" should be "Null". (J21)
+ */
+ void TestNullInverse(void);
+
+ /**
+ * Check ID of inverse of alias. (J22)
+ */
+ void TestAliasInverseID(void);
+
+ /**
+ * Test IDs of inverses of compound transliterators. (J20)
+ */
+ void TestCompoundInverseID(void);
+
+ /**
+ * Test undefined variable.
+ */
+ void TestUndefinedVariable(void);
+
+ /**
+ * Test empty context.
+ */
+ void TestEmptyContext(void);
+
+ /**
+ * Test compound filter ID syntax
+ */
+ void TestCompoundFilterID(void);
+
+ /**
+ * Test new property set syntax
+ */
+ void TestPropertySet(void);
+
+ /**
+ * Test various failure points of the new 2.0 engine.
+ */
+ void TestNewEngine(void);
+
+ /**
+ * Test quantified segment behavior. We want:
+ * ([abc])+ > x $1 x; applied to "cba" produces "xax"
+ */
+ void TestQuantifiedSegment(void);
+
+ /* Devanagari-Latin rules Test */
+ void TestDevanagariLatinRT(void);
+
+ /* Telugu-Latin rules Test */
+ void TestTeluguLatinRT(void);
+
+ /* Gujarati-Latin rules Test */
+ void TestGujaratiLatinRT(void);
+
+ /* Sanskrit-Latin rules Test */
+ void TestSanskritLatinRT(void);
+
+ /* Test Compound Indic-Latin transliterators*/
+ void TestCompoundLatinRT(void);
+
+ /* Test bindi and tippi for Gurmukhi */
+ void TestGurmukhiDevanagari(void);
+ /**
+ * Test instantiation from a locale.
+ */
+ void TestLocaleInstantiation(void);
+
+ /**
+ * Test title case handling of accent (should ignore accents)
+ */
+ void TestTitleAccents(void);
+
+ /**
+ * Basic test of a locale resource based rule.
+ */
+ void TestLocaleResource(void);
+
+ /**
+ * Make sure parse errors reference the right line.
+ */
+ void TestParseError(void);
+
+ /**
+ * Make sure sets on output are disallowed.
+ */
+ void TestOutputSet(void);
+
+ /**
+ * Test the use variable range pragma, making sure that use of
+ * variable range characters is detected and flagged as an error.
+ */
+ void TestVariableRange(void);
+
+ /**
+ * Test invalid post context error handling
+ */
+ void TestInvalidPostContext(void);
+
+ /**
+ * Test ID form variants
+ */
+ void TestIDForms(void);
+
+ /**
+ * Mark's toRules test.
+ */
+ void TestToRulesMark(void);
+
+ /**
+ * Test Escape and Unescape transliterators.
+ */
+ void TestEscape(void);
+
+ void TestAnchorMasking(void);
+
+ /**
+ * Make sure display names of variants look reasonable.
+ */
+ void TestDisplayName(void);
+
+ /**
+ * Check to see if case mapping works correctly.
+ */
+ void TestSpecialCases(void);
+ /**
+ * Check to see that incremental gets at least part way through a reasonable string.
+ */
+ void TestIncrementalProgress(void);
+
+ /**
+ * Check that casing handles surrogates.
+ */
+ void TestSurrogateCasing (void);
+
+ void TestFunction(void);
+
+ void TestInvalidBackRef(void);
+
+ void TestMulticharStringSet(void);
+
+ void TestUserFunction(void);
+
+ void TestAnyX(void);
+
+ void TestAny(void);
+
+ void TestSourceTargetSet(void);
+
+ void TestPatternWhiteSpace(void);
+
+ void TestAllCodepoints(void);
+
+ void TestBoilerplate(void);
+
+ void TestAlternateSyntax(void);
+
+ void TestRuleStripping(void);
+
+ void TestHalfwidthFullwidth(void);
+
+ void TestThai(void);
+
+ /**
+ * Tests the multiple-pass syntax
+ */
+ void TestBeginEnd(void);
+
+ /**
+ * Tests that toRules() works right with the multiple-pass syntax
+ */
+ void TestBeginEndToRules(void);
+
+ /**
+ * Tests the registerAlias() function
+ */
+ void TestRegisterAlias(void);
+
+ //======================================================================
+ // Support methods
+ //======================================================================
+ protected:
+ void expectT(const UnicodeString& id,
+ const UnicodeString& source,
+ const UnicodeString& expectedResult);
+
+ void expect(const UnicodeString& rules,
+ const UnicodeString& source,
+ const UnicodeString& expectedResult,
+ UTransPosition *pos=0);
+
+ void expect(const UnicodeString& id,
+ const UnicodeString& rules,
+ const UnicodeString& source,
+ const UnicodeString& expectedResult,
+ UTransPosition *pos=0);
+
+ void expect(const Transliterator& t,
+ const UnicodeString& source,
+ const UnicodeString& expectedResult,
+ const Transliterator& reverseTransliterator);
+
+ void expect(const Transliterator& t,
+ const UnicodeString& source,
+ const UnicodeString& expectedResult,
+ UTransPosition *pos=0);
+
+ void expectAux(const UnicodeString& tag,
+ const UnicodeString& source,
+ const UnicodeString& result,
+ const UnicodeString& expectedResult);
+
+ virtual void expectAux(const UnicodeString& tag,
+ const UnicodeString& summary, UBool pass,
+ const UnicodeString& expectedResult);
+
+ static UnicodeString& formatInput(UnicodeString &appendTo,
+ const UnicodeString& input,
+ const UTransPosition& pos);
+
+ void checkRules(const UnicodeString& label, Transliterator& t2,
+ const UnicodeString& testRulesForward);
+ void CheckIncrementalAux(const Transliterator* t,
+ const UnicodeString& input);
+
+ void reportParseError(const UnicodeString& message, const UParseError& parseError, const UErrorCode& status);
+
+
+ const UnicodeString DESERET_DEE;
+ const UnicodeString DESERET_dee;
+
+};
+
+#endif /* #if !UCONFIG_NO_TRANSLITERATION */
+
+#endif