scuffed-code/icu4c/source/test/intltest/listformattertest.h

120 lines
3.5 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"
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();
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);
private:
// Reused test data.
const UnicodeString prefix;
const UnicodeString one;
const UnicodeString two;
const UnicodeString three;
const UnicodeString four;
};
#endif