Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: icu46/source/test/intltest/normconf.h

Issue 5516007: Check in the pristine copy of ICU 4.6... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « icu46/source/test/intltest/nmfmtrt.cpp ('k') | icu46/source/test/intltest/normconf.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: icu46/source/test/intltest/normconf.h
===================================================================
--- icu46/source/test/intltest/normconf.h (revision 0)
+++ icu46/source/test/intltest/normconf.h (revision 0)
@@ -0,0 +1,105 @@
+/*
+************************************************************************
+* Copyright (c) 1997-2003, International Business Machines
+* Corporation and others. All Rights Reserved.
+************************************************************************
+*/
+
+#ifndef _NORMCONF
+#define _NORMCONF
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_NORMALIZATION
+
+#include "unicode/normlzr.h"
+#include "intltest.h"
+
+typedef struct _FileStream FileStream;
+
+class NormalizerConformanceTest : public IntlTest {
+ Normalizer normalizer;
+
+ public:
+ NormalizerConformanceTest();
+ virtual ~NormalizerConformanceTest();
+
+ void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=NULL);
+
+ /**
+ * Test the conformance of Normalizer to
+ * http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
+ */
+ void TestConformance();
+ void TestConformance32();
+ void TestConformance(FileStream *input, int32_t options);
+
+ // Specific tests for debugging. These are generally failures taken from
+ // the conformance file, but culled out to make debugging easier.
+ void TestCase6(void);
+
+ private:
+ FileStream *openNormalizationTestFile(const char *filename);
+
+ /**
+ * Verify the conformance of the given line of the Unicode
+ * normalization (UTR 15) test suite file. For each line,
+ * there are five columns, corresponding to field[0]..field[4].
+ *
+ * The following invariants must be true for all conformant implementations
+ * c2 == NFC(c1) == NFC(c2) == NFC(c3)
+ * c3 == NFD(c1) == NFD(c2) == NFD(c3)
+ * c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5)
+ * c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5)
+ *
+ * @param field the 5 columns
+ * @param line the source line from the test suite file
+ * @return true if the test passes
+ */
+ UBool checkConformance(const UnicodeString* field,
+ const char *line,
+ int32_t options,
+ UErrorCode &status);
+
+ void iterativeNorm(const UnicodeString& str,
+ UNormalizationMode mode, int32_t options,
+ UnicodeString& result,
+ int8_t dir);
+
+ /**
+ * @param op name of normalization form, e.g., "KC"
+ * @param s string being normalized
+ * @param got value received
+ * @param exp expected value
+ * @param msg description of this test
+ * @param return true if got == exp
+ */
+ UBool assertEqual(const char *op,
+ const UnicodeString& s,
+ const UnicodeString& got,
+ const UnicodeString& exp,
+ const char *msg,
+ int32_t field);
+
+ /**
+ * Split a string into pieces based on the given delimiter
+ * character. Then, parse the resultant fields from hex into
+ * characters. That is, "0040 0400;0C00;0899" -> new String[] {
+ * "\u0040\u0400", "\u0C00", "\u0899" }. The output is assumed to
+ * be of the proper length already, and exactly output.length
+ * fields are parsed. If there are too few an exception is
+ * thrown. If there are too many the extras are ignored.
+ *
+ * @param buf scratch buffer
+ * @return FALSE upon failure
+ */
+ UBool hexsplit(const char *s, char delimiter,
+ UnicodeString output[], int32_t outputLength);
+
+ void _testOneLine(const char *line);
+ void compare(const UnicodeString& s1,const UnicodeString& s2);
+};
+
+#endif /* #if !UCONFIG_NO_NORMALIZATION */
+
+#endif
Property changes on: icu46/source/test/intltest/normconf.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « icu46/source/test/intltest/nmfmtrt.cpp ('k') | icu46/source/test/intltest/normconf.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698