16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/******************************************************************** 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * COPYRIGHT: 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 2008-2013 International Business Machines Corporation and 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * others. All Rights Reserved. 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ********************************************************************/ 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef _INTLTESTDATEINTERVALFORMAT 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define _INTLTESTDATEINTERVALFORMAT 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h" 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/locid.h" 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_FORMATTING 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "intltest.h" 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test basic functionality of various API functions 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass DateIntervalFormatTest: public IntlTest { 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Performs tests on many API functions, see detailed comments in source code 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void testAPI(); 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test formatting 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void testFormat(); 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test formatting using user defined DateIntervalInfo 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void testFormatUserDII(); 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test for no unwanted side effects when setting 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * interval patterns. 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void testSetIntervalPatternNoSideEffect(); 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests different year formats. 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void testYearFormats(); 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Stress test -- stress test formatting on 40 locales 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void testStress(); 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate: 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test formatting against expected result 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void expect(const char** data, int32_t data_length); 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test formatting against expected result using user defined 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DateIntervalInfo 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void expectUserDII(const char** data, int32_t data_length); 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Stress test formatting 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void stress(const char** data, int32_t data_length, const Locale& loc, 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const char* locName); 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}; 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_FORMATTING */ 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif 77