summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-xetex/test/intltest/nmfmtrt.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/test/intltest/nmfmtrt.h')
-rw-r--r--Build/source/libs/icu/icu-xetex/test/intltest/nmfmtrt.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/test/intltest/nmfmtrt.h b/Build/source/libs/icu/icu-xetex/test/intltest/nmfmtrt.h
new file mode 100644
index 00000000000..12eff9a29d8
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/test/intltest/nmfmtrt.h
@@ -0,0 +1,77 @@
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ ********************************************************************/
+
+#ifndef _NUMBERFORMATROUNDTRIPTEST_
+#define _NUMBERFORMATROUNDTRIPTEST_
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/numfmt.h"
+#include "unicode/fmtable.h"
+#include "intltest.h"
+
+/**
+ * Performs round-trip tests for NumberFormat
+ **/
+class NumberFormatRoundTripTest : public IntlTest {
+
+ // IntlTest override
+ void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par );
+public:
+
+ static UBool verbose;
+ static UBool STRING_COMPARE;
+ static UBool EXACT_NUMERIC_COMPARE;
+ static UBool DEBUG;
+ static double MAX_ERROR;
+ static double max_numeric_error;
+ static double min_numeric_error;
+
+
+ void start(void);
+
+ void test(NumberFormat *fmt);
+ void test(NumberFormat *fmt, double value);
+ void test(NumberFormat *fmt, int32_t value);
+ void test(NumberFormat *fmt, const Formattable& value);
+
+ static double randomDouble(double range);
+ static double proportionalError(const Formattable& a, const Formattable& b);
+ static UnicodeString& typeOf(const Formattable& n, UnicodeString& result);
+ static UnicodeString& escape(UnicodeString& s);
+
+ static inline UBool
+ isDouble(const Formattable& n)
+ { return (n.getType() == Formattable::kDouble); }
+
+ static inline UBool
+ isLong(const Formattable& n)
+ { return (n.getType() == Formattable::kLong); }
+
+ /*
+ * Return a random uint32_t
+ **/
+ static uint32_t randLong();
+
+ /**
+ * Return a random double 0 <= x < 1.0
+ **/
+ static double randFraction()
+ {
+ return (double)randLong() / (double)0xFFFFFFFF;
+ }
+
+protected:
+ UBool failure(UErrorCode status, const char* msg);
+
+};
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif // _NUMBERFORMATROUNDTRIPTEST_
+//eof