164339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert// Copyright (C) 2016 and later: Unicode, Inc. and others.
264339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/********************************************************************
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * COPYRIGHT:
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Copyright (c) 2007, International Business Machines Corporation and
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * others. All Rights Reserved.
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************/
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/**
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * DataDrivenCalendarTest is a test class that uses data stored in resource
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * bundles to perform testing. For more details on data structure, see
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * source/test/testdata/calendar.txt
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef _INTLTESTDATADRIVENCALENDAR
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define _INTLTESTDATADRIVENCALENDAR
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h"
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "tsdate.h"
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "uvector.h"
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/calendar.h"
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "fldset.h"
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass TestDataModule;
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass TestData;
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass DataMap;
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass CalendarFieldsSet;
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass DataDrivenCalendarTest : public IntlTest {
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	void runIndexedTest(int32_t index, UBool exec, const char* &name,
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru			char* par = NULL);
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic:
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	DataDrivenCalendarTest();
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	virtual ~DataDrivenCalendarTest();
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprotected:
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	void DataDrivenTest(char *par);
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	void processTest(TestData *testData);
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprivate:
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	void testConvert(TestData *testData, const DataMap *settings, UBool fwd);
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	void testOps(TestData *testData, const DataMap *settings);
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	void testConvert(int32_t n, const CalendarFieldsSet &fromSet,
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru			Calendar *fromCal, const CalendarFieldsSet &toSet, Calendar *toCal,
47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru			UBool fwd);
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprivate:
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	TestDataModule *driver;
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_COLLATION */
53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
55