185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho/********************************************************************
285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * COPYRIGHT:
38393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius * Copyright (c) 2008-2013 International Business Machines Corporation and
485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * others. All Rights Reserved.
585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho ********************************************************************/
685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#ifndef _INTLTESTDATEINTERVALFORMAT
885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#define _INTLTESTDATEINTERVALFORMAT
985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#include "unicode/utypes.h"
1185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#include "unicode/locid.h"
1285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#if !UCONFIG_NO_FORMATTING
1485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#include "intltest.h"
1685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho/**
1885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * Test basic functionality of various API functions
1985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho **/
2085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hoclass DateIntervalFormatTest: public IntlTest {
2185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
2285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
2385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hopublic:
2485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
2585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Performs tests on many API functions, see detailed comments in source code
2685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     **/
2785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void testAPI();
2885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
2985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
3085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Test formatting
3185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     */
3285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void testFormat();
3385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
3485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
3585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Test formatting using user defined DateIntervalInfo
3685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     */
3785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void testFormatUserDII();
3885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
3985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
408393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius     * Test for no unwanted side effects when setting
418393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius     * interval patterns.
428393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius     */
438393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    void testSetIntervalPatternNoSideEffect();
448393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
458393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    /**
4659d709d503bab6e2b61931737e662dd293b40578ccornelius     * Tests different year formats.
4759d709d503bab6e2b61931737e662dd293b40578ccornelius     */
4859d709d503bab6e2b61931737e662dd293b40578ccornelius    void testYearFormats();
4959d709d503bab6e2b61931737e662dd293b40578ccornelius
5059d709d503bab6e2b61931737e662dd293b40578ccornelius    /**
5185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Stress test -- stress test formatting on 40 locales
5285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     */
5385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void testStress();
5485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
5585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hoprivate:
5685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
5785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Test formatting against expected result
5885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     */
5985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void expect(const char** data, int32_t data_length);
6085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
6185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
6285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Test formatting against expected result using user defined
6385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * DateIntervalInfo
6485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     */
6585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void expectUserDII(const char** data, int32_t data_length);
6685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
6785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    /**
6885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     * Stress test formatting
6985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho     */
7085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    void stress(const char** data, int32_t data_length, const Locale& loc,
7185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho                const char* locName);
7285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho};
7385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
7485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#endif /* #if !UCONFIG_NO_FORMATTING */
7585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
7685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#endif
77