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

Unified Diff: source/test/intltest/numberformattesttuple.h

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months 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 | « source/test/intltest/numberformat2test.cpp ('k') | source/test/intltest/numberformattesttuple.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/test/intltest/numberformattesttuple.h
diff --git a/source/test/intltest/numberformattesttuple.h b/source/test/intltest/numberformattesttuple.h
new file mode 100644
index 0000000000000000000000000000000000000000..4af44b9d6ac1a6d5987d91486867995f972008ee
--- /dev/null
+++ b/source/test/intltest/numberformattesttuple.h
@@ -0,0 +1,228 @@
+/*
+*******************************************************************************
+* Copyright (C) 2015, International Business Machines Corporation and *
+* others. All Rights Reserved. *
+*******************************************************************************
+*/
+#ifndef _NUMBER_FORMAT_TEST_TUPLE
+#define _NUMBER_FORMAT_TEST_TUPLE
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "decimalformatpattern.h"
+#include "unicode/decimfmt.h"
+#include "unicode/ucurr.h"
+
+#define NFTT_GET_FIELD(tuple, fieldName, defaultValue) ((tuple).fieldName##Flag ? (tuple).fieldName : (defaultValue))
+
+U_NAMESPACE_USE
+
+enum ENumberFormatTestTupleField {
+ kLocale,
+ kCurrency,
+ kPattern,
+ kFormat,
+ kOutput,
+ kComment,
+ kMinIntegerDigits,
+ kMaxIntegerDigits,
+ kMinFractionDigits,
+ kMaxFractionDigits,
+ kMinGroupingDigits,
+ kBreaks,
+ kUseSigDigits,
+ kMinSigDigits,
+ kMaxSigDigits,
+ kUseGrouping,
+ kMultiplier,
+ kRoundingIncrement,
+ kFormatWidth,
+ kPadCharacter,
+ kUseScientific,
+ kGrouping,
+ kGrouping2,
+ kRoundingMode,
+ kCurrencyUsage,
+ kMinimumExponentDigits,
+ kExponentSignAlwaysShown,
+ kDecimalSeparatorAlwaysShown,
+ kPadPosition,
+ kPositivePrefix,
+ kPositiveSuffix,
+ kNegativePrefix,
+ kNegativeSuffix,
+ kLocalizedPattern,
+ kToPattern,
+ kToLocalizedPattern,
+ kStyle,
+ kParse,
+ kLenient,
+ kPlural,
+ kParseIntegerOnly,
+ kDecimalPatternMatchRequired,
+ kParseNoExponent,
+ kOutputCurrency,
+ kNumberFormatTestTupleFieldCount
+};
+
+/**
+ * NumberFormatTestTuple represents the data for a single data driven test.
+ * It consist of named fields each of which may or may not be set. Each field
+ * has a particular meaning in the test. For more information on what each
+ * field means and how the data drive tests work, please see
+ * https://docs.google.com/document/d/1T2P0p953_Lh1pRwo-5CuPVrHlIBa_wcXElG-Hhg_WHM/edit?usp=sharing
+ * Each field is optional. That is, a certain field may be unset for a given
+ * test. The UBool fields ending in "Flag" indicate whether the corrresponding
+ * field is set or not. TRUE means set; FALSE means unset. An unset field
+ * generally means that the corresponding setter method is not called on
+ * the NumberFormat object.
+ */
+
+class NumberFormatTestTuple {
+public:
+ Locale locale;
+ UnicodeString currency;
+ UnicodeString pattern;
+ UnicodeString format;
+ UnicodeString output;
+ UnicodeString comment;
+ int32_t minIntegerDigits;
+ int32_t maxIntegerDigits;
+ int32_t minFractionDigits;
+ int32_t maxFractionDigits;
+ int32_t minGroupingDigits;
+ UnicodeString breaks;
+ int32_t useSigDigits;
+ int32_t minSigDigits;
+ int32_t maxSigDigits;
+ int32_t useGrouping;
+ int32_t multiplier;
+ double roundingIncrement;
+ int32_t formatWidth;
+ UnicodeString padCharacter;
+ int32_t useScientific;
+ int32_t grouping;
+ int32_t grouping2;
+ DecimalFormat::ERoundingMode roundingMode;
+ UCurrencyUsage currencyUsage;
+ int32_t minimumExponentDigits;
+ int32_t exponentSignAlwaysShown;
+ int32_t decimalSeparatorAlwaysShown;
+ DecimalFormat::EPadPosition padPosition;
+ UnicodeString positivePrefix;
+ UnicodeString positiveSuffix;
+ UnicodeString negativePrefix;
+ UnicodeString negativeSuffix;
+ UnicodeString localizedPattern;
+ UnicodeString toPattern;
+ UnicodeString toLocalizedPattern;
+ UNumberFormatStyle style;
+ UnicodeString parse;
+ int32_t lenient;
+ UnicodeString plural;
+ int32_t parseIntegerOnly;
+ int32_t decimalPatternMatchRequired;
+ int32_t parseNoExponent;
+ UnicodeString outputCurrency;
+
+ UBool localeFlag;
+ UBool currencyFlag;
+ UBool patternFlag;
+ UBool formatFlag;
+ UBool outputFlag;
+ UBool commentFlag;
+ UBool minIntegerDigitsFlag;
+ UBool maxIntegerDigitsFlag;
+ UBool minFractionDigitsFlag;
+ UBool maxFractionDigitsFlag;
+ UBool minGroupingDigitsFlag;
+ UBool breaksFlag;
+ UBool useSigDigitsFlag;
+ UBool minSigDigitsFlag;
+ UBool maxSigDigitsFlag;
+ UBool useGroupingFlag;
+ UBool multiplierFlag;
+ UBool roundingIncrementFlag;
+ UBool formatWidthFlag;
+ UBool padCharacterFlag;
+ UBool useScientificFlag;
+ UBool groupingFlag;
+ UBool grouping2Flag;
+ UBool roundingModeFlag;
+ UBool currencyUsageFlag;
+ UBool minimumExponentDigitsFlag;
+ UBool exponentSignAlwaysShownFlag;
+ UBool decimalSeparatorAlwaysShownFlag;
+ UBool padPositionFlag;
+ UBool positivePrefixFlag;
+ UBool positiveSuffixFlag;
+ UBool negativePrefixFlag;
+ UBool negativeSuffixFlag;
+ UBool localizedPatternFlag;
+ UBool toPatternFlag;
+ UBool toLocalizedPatternFlag;
+ UBool styleFlag;
+ UBool parseFlag;
+ UBool lenientFlag;
+ UBool pluralFlag;
+ UBool parseIntegerOnlyFlag;
+ UBool decimalPatternMatchRequiredFlag;
+ UBool parseNoExponentFlag;
+ UBool outputCurrencyFlag;
+
+ NumberFormatTestTuple() {
+ clear();
+ }
+
+ /**
+ * Sets a particular field using the string representation of that field.
+ * @param field the field to set.
+ * @param fieldValue the string representation of the field value.
+ * @param status error returned here such as when the string representation
+ * of the field value cannot be parsed.
+ * @return TRUE on success or FALSE if an error was set in status.
+ */
+ UBool setField(
+ ENumberFormatTestTupleField field,
+ const UnicodeString &fieldValue,
+ UErrorCode &status);
+ /**
+ * Clears a particular field.
+ * @param field the field to clear.
+ * @param status error set here.
+ * @return TRUE on success or FALSE if error was set.
+ */
+ UBool clearField(
+ ENumberFormatTestTupleField field,
+ UErrorCode &status);
+ /**
+ * Clears every field.
+ */
+ void clear();
+
+ /**
+ * Returns the string representation of the test case this object
+ * currently represents.
+ * @param appendTo the result appended here.
+ * @return appendTo
+ */
+ UnicodeString &toString(UnicodeString &appendTo) const;
+
+ /**
+ * Converts the name of a field to the corresponding enum value.
+ * @param name the name of the field as a string.
+ * @return the corresponding enum value or kNumberFormatTestFieldCount
+ * if name does not map to any recognized field name.
+ */
+ static ENumberFormatTestTupleField getFieldByName(const UnicodeString &name);
+private:
+ const void *getFieldAddress(int32_t fieldId) const;
+ void *getMutableFieldAddress(int32_t fieldId);
+ void setFlag(int32_t fieldId, UBool value);
+ UBool isFlag(int32_t fieldId) const;
+};
+
+#endif /* !UCONFIG_NO_FORMATTING */
+#endif
« no previous file with comments | « source/test/intltest/numberformat2test.cpp ('k') | source/test/intltest/numberformattesttuple.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698