1 // © 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html 3 /* 4 ******************************************************************************* 5 * 6 * Copyright (C) 2012-2013, International Business Machines 7 * Corporation and others. All Rights Reserved. 8 * 9 ******************************************************************************* 10 * file name: listformattertest.cpp 11 * encoding: UTF-8 12 * tab size: 8 (not used) 13 * indentation:4 14 * 15 * created on: 2012aug27 16 * created by: Umesh P. Nair 17 */ 18 19 #ifndef __LISTFORMATTERTEST_H__ 20 #define __LISTFORMATTERTEST_H__ 21 22 #include "unicode/fpositer.h" 23 #include "unicode/listformatter.h" 24 #include "intltest.h" 25 26 class ListFormatterTest : public IntlTest { 27 public: 28 ListFormatterTest(); ~ListFormatterTest()29 virtual ~ListFormatterTest() {} 30 31 void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=0); 32 33 void TestRoot(); 34 void TestBogus(); 35 void TestEnglish(); 36 void TestEnglishUS(); 37 void TestEnglishGB(); 38 void TestNynorsk(); 39 void TestChineseTradHK(); 40 void TestRussian(); 41 void TestMalayalam(); 42 void TestZulu(); 43 void TestOutOfOrderPatterns(); 44 void Test9946(); 45 void TestFieldPositionIteratorWontCrash(); 46 void TestFieldPositionIteratorWith1Item(); 47 void TestFieldPositionIteratorWith2Items(); 48 void TestFieldPositionIteratorWith3Items(); 49 void TestFieldPositionIteratorWith1ItemAndDataBefore(); 50 void TestFieldPositionIteratorWith2ItemsAndDataBefore(); 51 void TestFieldPositionIteratorWith3ItemsAndDataBefore(); 52 void TestFieldPositionIteratorWith2ItemsPatternShift(); 53 void TestFieldPositionIteratorWith3ItemsPatternShift(); 54 55 private: 56 void CheckFormatting( 57 const ListFormatter* formatter, 58 UnicodeString data[], 59 int32_t data_size, 60 const UnicodeString& expected_result, 61 const char* testName); 62 void ExpectPositions( 63 FieldPositionIterator& iter, 64 int32_t *values, 65 int32_t tupleCount); 66 void RunTestFieldPositionIteratorWithNItems( 67 UnicodeString *data, 68 int32_t n, 69 int32_t *values, 70 int32_t tupleCount, 71 UnicodeString& appendTo, 72 const char16_t *expectedFormatted, 73 const char* testName); 74 void RunTestFieldPositionIteratorWithNItemsPatternShift( 75 UnicodeString *data, 76 int32_t n, 77 int32_t *values, 78 int32_t tupleCount, 79 UnicodeString& appendTo, 80 const char16_t *expectedFormatted, 81 const char* testName); 82 void RunTestFieldPositionIteratorWithFormatter( 83 ListFormatter* formatter, 84 UnicodeString *data, 85 int32_t n, 86 int32_t *values, 87 int32_t tupleCount, 88 UnicodeString& appendTo, 89 const char16_t *expectedFormatted, 90 const char* testName); 91 void CheckFourCases( 92 const char* locale_string, 93 UnicodeString one, 94 UnicodeString two, 95 UnicodeString three, 96 UnicodeString four, 97 UnicodeString results[4], 98 const char* testName); 99 UBool RecordFourCases( 100 const Locale& locale, 101 UnicodeString one, 102 UnicodeString two, 103 UnicodeString three, 104 UnicodeString four, 105 UnicodeString results[4], 106 const char* testName); 107 108 private: 109 // Reused test data. 110 const UnicodeString prefix; 111 const UnicodeString one; 112 const UnicodeString two; 113 const UnicodeString three; 114 const UnicodeString four; 115 }; 116 117 #endif 118