154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius/* 254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius******************************************************************************* 354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* 4fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius* Copyright (C) 2012-2014, International Business Machines 554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* Corporation and others. All Rights Reserved. 654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* 754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius******************************************************************************* 854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* file name: listformattertest.cpp 954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* encoding: US-ASCII 1054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* tab size: 8 (not used) 1154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* indentation:4 1254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* 1354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* created on: 2012aug27 1454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius* created by: Umesh P. Nair 1554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius*/ 1654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 1754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#include "listformattertest.h" 1854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius#include <string.h> 1954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 2054dcd9b6a06071f647dac967e9e267abb9410720Craig CorneliusListFormatterTest::ListFormatterTest() : 2154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius prefix("Prefix: ", -1, US_INV), 2254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one("Alice", -1, US_INV), two("Bob", -1, US_INV), 2354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius three("Charlie", -1, US_INV), four("Delta", -1, US_INV) { 2454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 2554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 2654dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::CheckFormatting(const ListFormatter* formatter, UnicodeString data[], int32_t dataSize, 2754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius const UnicodeString& expected_result) { 2854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString actualResult(prefix); 2954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UErrorCode errorCode = U_ZERO_ERROR; 3054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius formatter->format(data, dataSize, actualResult, errorCode); 3154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString expectedStringWithPrefix = prefix + expected_result; 3254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius if (expectedStringWithPrefix != actualResult) { 3354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius errln(UnicodeString("Expected: |") + expectedStringWithPrefix + "|, Actual: |" + actualResult + "|"); 3454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius } 3554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 3654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 3754dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::CheckFourCases(const char* locale_string, UnicodeString one, UnicodeString two, 3854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString three, UnicodeString four, UnicodeString results[4]) { 3954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UErrorCode errorCode = U_ZERO_ERROR; 408393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(Locale(locale_string), errorCode)); 418393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius if (U_FAILURE(errorCode)) { 428393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius dataerrln("ListFormatter::createInstance(Locale(\"%s\"), errorCode) failed in CheckFourCases: %s", locale_string, u_errorName(errorCode)); 4354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius return; 4454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius } 4554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString input1[] = {one}; 468393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius CheckFormatting(formatter.getAlias(), input1, 1, results[0]); 4754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 4854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString input2[] = {one, two}; 498393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius CheckFormatting(formatter.getAlias(), input2, 2, results[1]); 5054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 5154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString input3[] = {one, two, three}; 528393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius CheckFormatting(formatter.getAlias(), input3, 3, results[2]); 5354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 5454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString input4[] = {one, two, three, four}; 558393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius CheckFormatting(formatter.getAlias(), input4, 4, results[3]); 5654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 5754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 588393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig CorneliusUBool ListFormatterTest::RecordFourCases(const Locale& locale, UnicodeString one, UnicodeString two, 598393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius UnicodeString three, UnicodeString four, UnicodeString results[4]) { 608393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius UErrorCode errorCode = U_ZERO_ERROR; 618393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(locale, errorCode)); 628393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius if (U_FAILURE(errorCode)) { 638393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius dataerrln("ListFormatter::createInstance(\"%s\", errorCode) failed in RecordFourCases: %s", locale.getName(), u_errorName(errorCode)); 648393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius return FALSE; 658393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius } 668393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius UnicodeString input1[] = {one}; 678393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius formatter->format(input1, 1, results[0], errorCode); 688393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius UnicodeString input2[] = {one, two}; 698393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius formatter->format(input2, 2, results[1], errorCode); 708393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius UnicodeString input3[] = {one, two, three}; 718393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius formatter->format(input3, 3, results[2], errorCode); 728393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius UnicodeString input4[] = {one, two, three, four}; 738393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius formatter->format(input4, 4, results[3], errorCode); 748393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius if (U_FAILURE(errorCode)) { 758393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius errln("RecordFourCases failed: %s", u_errorName(errorCode)); 768393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius return FALSE; 7754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius } 788393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius return TRUE; 7954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 8054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 8154dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::TestRoot() { 8254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString results[4] = { 8354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one, 8454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two, 8554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", " + three, 8654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", " + three + ", " + four 8754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius }; 8854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 8954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFourCases("", one, two, three, four, results); 9054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 9154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 9254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// Bogus locale should fallback to root. 9354dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::TestBogus() { 948393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius UnicodeString results[4]; 958393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius if (RecordFourCases(Locale::getDefault(), one, two, three, four, results)) { 968393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius CheckFourCases("ex_PY", one, two, three, four, results); 978393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius } 9854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 9954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 10054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// Formatting in English. 10154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// "and" is used before the last element, and all elements up to (and including) the penultimate are followed by a comma. 10254dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::TestEnglish() { 10354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString results[4] = { 10454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one, 10554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + " and " + two, 10654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", and " + three, 10754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", " + three + ", and " + four 10854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius }; 10954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 11054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFourCases("en", one, two, three, four, results); 11154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 11254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 11359d709d503bab6e2b61931737e662dd293b40578ccorneliusvoid ListFormatterTest::Test9946() { 11459d709d503bab6e2b61931737e662dd293b40578ccornelius UErrorCode errorCode = U_ZERO_ERROR; 11559d709d503bab6e2b61931737e662dd293b40578ccornelius LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(Locale("en"), errorCode)); 11659d709d503bab6e2b61931737e662dd293b40578ccornelius if (U_FAILURE(errorCode)) { 11759d709d503bab6e2b61931737e662dd293b40578ccornelius dataerrln( 11859d709d503bab6e2b61931737e662dd293b40578ccornelius "ListFormatter::createInstance(Locale(\"en\"), errorCode) failed in Test9946: %s", 11959d709d503bab6e2b61931737e662dd293b40578ccornelius u_errorName(errorCode)); 12059d709d503bab6e2b61931737e662dd293b40578ccornelius return; 12159d709d503bab6e2b61931737e662dd293b40578ccornelius } 12259d709d503bab6e2b61931737e662dd293b40578ccornelius UnicodeString data[3] = {"{0}", "{1}", "{2}"}; 12359d709d503bab6e2b61931737e662dd293b40578ccornelius UnicodeString actualResult; 12459d709d503bab6e2b61931737e662dd293b40578ccornelius formatter->format(data, 3, actualResult, errorCode); 12559d709d503bab6e2b61931737e662dd293b40578ccornelius if (U_FAILURE(errorCode)) { 12659d709d503bab6e2b61931737e662dd293b40578ccornelius dataerrln( 12759d709d503bab6e2b61931737e662dd293b40578ccornelius "ListFormatter::createInstance(Locale(\"en\"), errorCode) failed in Test9946: %s", 12859d709d503bab6e2b61931737e662dd293b40578ccornelius u_errorName(errorCode)); 12959d709d503bab6e2b61931737e662dd293b40578ccornelius return; 13059d709d503bab6e2b61931737e662dd293b40578ccornelius } 13159d709d503bab6e2b61931737e662dd293b40578ccornelius UnicodeString expected("{0}, {1}, and {2}"); 13259d709d503bab6e2b61931737e662dd293b40578ccornelius if (expected != actualResult) { 13359d709d503bab6e2b61931737e662dd293b40578ccornelius errln("Expected " + expected + ", got " + actualResult); 13459d709d503bab6e2b61931737e662dd293b40578ccornelius } 13559d709d503bab6e2b61931737e662dd293b40578ccornelius} 13659d709d503bab6e2b61931737e662dd293b40578ccornelius 13754dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::TestEnglishUS() { 13854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString results[4] = { 13954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one, 14054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + " and " + two, 14154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", and " + three, 14254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", " + three + ", and " + four 14354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius }; 14454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 14554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFourCases("en_US", one, two, three, four, results); 14654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 14754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 14854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// Formatting in Russian. 14954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// "\\u0438" is used before the last element, and all elements up to (but not including) the penultimate are followed by a comma. 15054dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::TestRussian() { 15154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString and_string = UnicodeString(" \\u0438 ", -1, US_INV).unescape(); 15254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString results[4] = { 15354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one, 15454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + and_string + two, 15554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + and_string + three, 15654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", " + three + and_string + four 15754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius }; 15854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 15954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFourCases("ru", one, two, three, four, results); 16054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 16154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 16254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// Formatting in Malayalam. 16354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// For two elements, "\\u0d15\\u0d42\\u0d1f\\u0d3e\\u0d24\\u0d46" is inserted in between. 16454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// For more than two elements, comma is inserted between all elements up to (and including) the penultimate, 16554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// and the word \\u0d0e\\u0d28\\u0d4d\\u0d28\\u0d3f\\u0d35 is inserted in the end. 16654dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::TestMalayalam() { 16754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString pair_string = UnicodeString(" \\u0d15\\u0d42\\u0d1f\\u0d3e\\u0d24\\u0d46 ", -1, US_INV).unescape(); 16854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString total_string = UnicodeString(" \\u0d0e\\u0d28\\u0d4d\\u0d28\\u0d3f\\u0d35", -1, US_INV).unescape(); 16954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString results[4] = { 17054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one, 17154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + pair_string + two, 17254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", " + three + total_string, 17354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one + ", " + two + ", " + three + ", " + four + total_string 17454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius }; 17554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 17654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFourCases("ml", one, two, three, four, results); 17754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 17854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 17954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// Formatting in Zulu. 18054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius// "and" is used before the last element, and all elements up to (and including) the penultimate are followed by a comma. 18154dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::TestZulu() { 18254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString results[4] = { 18354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one, 18454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius "I-" + one + " ne-" + two, 185f9878a236aa0d9662d8e40cafdaf2e04cd615835ccornelius one + ", " + two + ", ne-" + three, 186f9878a236aa0d9662d8e40cafdaf2e04cd615835ccornelius one + ", " + two + ", " + three + ", ne-" + four 18754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius }; 18854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 18954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFourCases("zu", one, two, three, four, results); 19054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 19154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 19254dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::TestOutOfOrderPatterns() { 19354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString results[4] = { 19454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius one, 19554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius two + " after " + one, 19654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius three + " in the last after " + two + " after the first " + one, 19754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius four + " in the last after " + three + " after " + two + " after the first " + one 19854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius }; 19954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 20054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius ListFormatData data("{1} after {0}", "{1} after the first {0}", 20154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius "{1} after {0}", "{1} in the last after {0}"); 202fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius ListFormatter formatter(data); 20354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 20454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString input1[] = {one}; 20554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFormatting(&formatter, input1, 1, results[0]); 20654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 20754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString input2[] = {one, two}; 20854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFormatting(&formatter, input2, 2, results[1]); 20954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 21054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString input3[] = {one, two, three}; 21154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFormatting(&formatter, input3, 3, results[2]); 21254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 21354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius UnicodeString input4[] = {one, two, three, four}; 21454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius CheckFormatting(&formatter, input4, 4, results[3]); 21554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 21654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 21754dcd9b6a06071f647dac967e9e267abb9410720Craig Corneliusvoid ListFormatterTest::runIndexedTest(int32_t index, UBool exec, 21854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius const char* &name, char* /*par */) { 21954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius switch(index) { 22054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius case 0: name = "TestRoot"; if (exec) TestRoot(); break; 22154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius case 1: name = "TestBogus"; if (exec) TestBogus(); break; 22254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius case 2: name = "TestEnglish"; if (exec) TestEnglish(); break; 22354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius case 3: name = "TestEnglishUS"; if (exec) TestEnglishUS(); break; 22454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius case 4: name = "TestRussian"; if (exec) TestRussian(); break; 22554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius case 5: name = "TestMalayalam"; if (exec) TestMalayalam(); break; 22654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius case 6: name = "TestZulu"; if (exec) TestZulu(); break; 2278393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius case 7: name = "TestOutOfOrderPatterns"; if (exec) TestOutOfOrderPatterns(); break; 22859d709d503bab6e2b61931737e662dd293b40578ccornelius case 8: name = "Test9946"; if (exec) Test9946(); break; 22954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius 23054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius default: name = ""; break; 23154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius } 23254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius} 233