1/********************************************************************
2 * COPYRIGHT:
3 * Copyright (c) 1997-2008, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 ********************************************************************/
6/********************************************************************************
7*
8* File CALLCOLL.H
9*
10* Modification History:
11*        Name                     Description
12*     Madhu Katragadda              Ported to C
13*********************************************************************************
14*/
15/**
16 * CollationDummyTest is a third level test class.  This tests creation of
17 * a customized collator object.  For example, number 1 to be sorted
18 * equlivalent to word 'one'.
19 */
20#ifndef _CALLCOLLTST
21#define _CALLCOLLTST
22
23#include "unicode/utypes.h"
24#include "unicode/ucoleitr.h"
25
26#if !UCONFIG_NO_COLLATION
27
28#include "cintltst.h"
29
30#define RULE_BUFFER_LEN 8192
31
32struct OrderAndOffset
33{
34    int32_t order;
35    int32_t offset;
36};
37
38typedef struct OrderAndOffset OrderAndOffset;
39
40    /* tests comparison of custom collation with different strengths */
41void doTest(UCollator*, const UChar* source, const UChar* target, UCollationResult result);
42/* verify that iterating forward and backwards over the string yields same CEs */
43void backAndForth(UCollationElements *iter);
44/* gets an array of CEs for a string in UCollationElements iterator. */
45OrderAndOffset* getOrders(UCollationElements *iter, int32_t *orderLength);
46
47void genericOrderingTestWithResult(UCollator *coll, const char * const s[], uint32_t size, UCollationResult result);
48void genericOrderingTest(UCollator *coll, const char * const s[], uint32_t size);
49void genericLocaleStarter(const char *locale, const char * const s[], uint32_t size);
50void genericLocaleStarterWithResult(const char *locale, const char * const s[], uint32_t size, UCollationResult result);
51void genericLocaleStarterWithOptions(const char *locale, const char * const s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize);
52void genericLocaleStarterWithOptionsAndResult(const char *locale, const char * const s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize, UCollationResult result);
53void genericRulesStarterWithResult(const char *rules, const char * const s[], uint32_t size, UCollationResult result);
54void genericRulesStarter(const char *rules, const char * const s[], uint32_t size);
55void genericRulesStarterWithOptionsAndResult(const char *rules, const char * const s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize, UCollationResult result);
56UBool hasCollationElements(const char *locName);
57
58
59#endif /* #if !UCONFIG_NO_COLLATION */
60
61#endif
62