46ec4fd523
See #894
134 lines
3.9 KiB
C++
134 lines
3.9 KiB
C++
// © 2016 and later: Unicode, Inc. and others.
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
|
/*
|
|
*******************************************************************************
|
|
*
|
|
* Copyright (C) 2012-2013, International Business Machines
|
|
* Corporation and others. All Rights Reserved.
|
|
*
|
|
*******************************************************************************
|
|
* file name: listformattertest.cpp
|
|
* encoding: UTF-8
|
|
* tab size: 8 (not used)
|
|
* indentation:4
|
|
*
|
|
* created on: 2012aug27
|
|
* created by: Umesh P. Nair
|
|
*/
|
|
|
|
#ifndef __LISTFORMATTERTEST_H__
|
|
#define __LISTFORMATTERTEST_H__
|
|
|
|
#include "unicode/fpositer.h"
|
|
#include "unicode/listformatter.h"
|
|
#include "intltest.h"
|
|
#include "itformat.h"
|
|
|
|
#if !UCONFIG_NO_FORMATTING
|
|
|
|
class ListFormatterTest : public IntlTestWithFieldPosition {
|
|
public:
|
|
ListFormatterTest();
|
|
virtual ~ListFormatterTest() {}
|
|
|
|
void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=0);
|
|
|
|
void TestRoot();
|
|
void TestBogus();
|
|
void TestEnglish();
|
|
void TestEnglishUS();
|
|
void TestEnglishGB();
|
|
void TestNynorsk();
|
|
void TestChineseTradHK();
|
|
void TestRussian();
|
|
void TestMalayalam();
|
|
void TestZulu();
|
|
void TestOutOfOrderPatterns();
|
|
void Test9946();
|
|
void TestFieldPositionIteratorWontCrash();
|
|
void TestFieldPositionIteratorWith1Item();
|
|
void TestFieldPositionIteratorWith2Items();
|
|
void TestFieldPositionIteratorWith3Items();
|
|
void TestFieldPositionIteratorWith1ItemAndDataBefore();
|
|
void TestFieldPositionIteratorWith2ItemsAndDataBefore();
|
|
void TestFieldPositionIteratorWith3ItemsAndDataBefore();
|
|
void TestFieldPositionIteratorWith2ItemsPatternShift();
|
|
void TestFieldPositionIteratorWith3ItemsPatternShift();
|
|
void TestFormattedValue();
|
|
void TestDifferentStyles();
|
|
void TestBadStylesFail();
|
|
void TestCreateStyled();
|
|
|
|
private:
|
|
void CheckFormatting(
|
|
const ListFormatter* formatter,
|
|
UnicodeString data[],
|
|
int32_t data_size,
|
|
const UnicodeString& expected_result,
|
|
const char* testName);
|
|
void ExpectPositions(
|
|
FieldPositionIterator& iter,
|
|
int32_t *values,
|
|
int32_t tupleCount);
|
|
void RunTestFieldPositionIteratorWithNItems(
|
|
UnicodeString *data,
|
|
int32_t n,
|
|
int32_t *values,
|
|
int32_t tupleCount,
|
|
UnicodeString& appendTo,
|
|
const char16_t *expectedFormatted,
|
|
const char* testName);
|
|
void RunTestFieldPositionIteratorWithNItemsPatternShift(
|
|
UnicodeString *data,
|
|
int32_t n,
|
|
int32_t *values,
|
|
int32_t tupleCount,
|
|
UnicodeString& appendTo,
|
|
const char16_t *expectedFormatted,
|
|
const char* testName);
|
|
void RunTestFieldPositionIteratorWithFormatter(
|
|
ListFormatter* formatter,
|
|
UnicodeString *data,
|
|
int32_t n,
|
|
int32_t *values,
|
|
int32_t tupleCount,
|
|
UnicodeString& appendTo,
|
|
const char16_t *expectedFormatted,
|
|
const char* testName);
|
|
void CheckFourCases(
|
|
const char* locale_string,
|
|
UnicodeString one,
|
|
UnicodeString two,
|
|
UnicodeString three,
|
|
UnicodeString four,
|
|
UnicodeString results[4],
|
|
const char* testName);
|
|
UBool RecordFourCases(
|
|
const Locale& locale,
|
|
UnicodeString one,
|
|
UnicodeString two,
|
|
UnicodeString three,
|
|
UnicodeString four,
|
|
UnicodeString results[4],
|
|
const char* testName);
|
|
void DoTheRealListStyleTesting(
|
|
Locale locale,
|
|
UnicodeString items[],
|
|
int32_t itemCount,
|
|
const char* style,
|
|
const char* expected,
|
|
IcuTestErrorCode status);
|
|
|
|
private:
|
|
// Reused test data.
|
|
const UnicodeString prefix;
|
|
const UnicodeString one;
|
|
const UnicodeString two;
|
|
const UnicodeString three;
|
|
const UnicodeString four;
|
|
};
|
|
|
|
#endif /* #if !UCONFIG_NO_FORMATTING */
|
|
|
|
#endif
|