1885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org/*
2885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*******************************************************************************
3885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*
4885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*   Copyright (C) 2012-2013, International Business Machines
5885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*   Corporation and others.  All Rights Reserved.
6885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*
7885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*******************************************************************************
8885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*   file name:  listformattertest.cpp
9885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*   encoding:   US-ASCII
10885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*   tab size:   8 (not used)
11e3ea049fcaee2247e45f0ce793d4313babb4ef69tlegrand@chromium.org*   indentation:4
12885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*
13885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*   created on: 2012aug27
14885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*   created by: Umesh P. Nair
15e3ea049fcaee2247e45f0ce793d4313babb4ef69tlegrand@chromium.org*/
16885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
17885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#ifndef __LISTFORMATTERTEST_H__
18885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#define __LISTFORMATTERTEST_H__
19885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
20885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#include "unicode/listformatter.h"
21885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#include "intltest.h"
22885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
23885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgclass ListFormatterTest : public IntlTest {
24885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org  public:
25885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    ListFormatterTest();
26885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    virtual ~ListFormatterTest() {}
27885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
28885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=0);
29885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
30885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void TestRoot();
31885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void TestBogus();
32885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void TestEnglish();
33885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void TestEnglishUS();
34885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void TestRussian();
35885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void TestMalayalam();
36885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void TestZulu();
37885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void TestOutOfOrderPatterns();
38885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void Test9946();
39885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
403c3902f0ac13428394f14f78f0fab05ef3468d69tlegrand@google.com  private:
413c3902f0ac13428394f14f78f0fab05ef3468d69tlegrand@google.com    void CheckFormatting(const ListFormatter* formatter, UnicodeString data[], int32_t data_size, const UnicodeString& expected_result);
42885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    void CheckFourCases(
43885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        const char* locale_string,
44885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString one,
45885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString two,
46885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString three,
47885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString four,
48885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString results[4]);
49885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    UBool RecordFourCases(
50885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        const Locale& locale,
51885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString one,
52885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString two,
53885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString three,
54885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString four,
55885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org        UnicodeString results[4]);
56885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
57885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org  private:
586b6bee25314cfac02cc555cddedb9680c63a26d6sergeyu@chromium.org    // Reused test data.
59885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    const UnicodeString prefix;
60885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    const UnicodeString one;
61885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    const UnicodeString two;
62885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    const UnicodeString three;
63885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org    const UnicodeString four;
64885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org};
65885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
66885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#endif
67885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org