12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/********************************************************************
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Copyright (c) 1997-2013 International Business Machines
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Corporation and others. All Rights Reserved.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ********************************************************************/
590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)/********************************************************************************
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)*
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)* File CAPITEST.H
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)*
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)* Modification History:
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)*        Name                     Description
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)*     Madhu Katragadda            Converted to C
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)*     Brian Rower                 Added TestOpenVsOpenRules
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)*********************************************************************************
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)*//* C API TEST For COLLATOR */
1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#ifndef _CCOLLAPITST
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define _CCOLLAPITST
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "unicode/utypes.h"
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if !UCONFIG_NO_COLLATION
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cintltst.h"
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "callcoll.h"
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define MAX_TOKEN_LEN 16
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * error reporting utility method
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static void doAssert(int condition, const char *message);
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Collator Class Properties
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * ctor, dtor, createInstance, compare, getStrength/setStrength
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * getDecomposition/setDecomposition, getDisplayName
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestProperty(void);
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test RuleBasedCollator and getRules
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestRuleBasedColl(void);
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test compare
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestCompare(void);
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test hashCode functionality
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestHashCode(void);
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Tests the constructor and numerous other methods for CollationKey
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   void TestSortKey(void);
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * test the CollationElementIterator methods
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)   void TestElemIter(void);
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test ucol_getAvailable and ucol_countAvailable()
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestGetAll(void);
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test ucol_GetDefaultRules ()
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestGetDefaultRules(void);
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestDecomposition(void);
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test ucol_safeClone ()
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestSafeClone(void);
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test ucol_cloneBinary(), ucol_openBinary()
772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestCloneBinary(void);
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test ucol_open() vs. ucol_openRules()
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     **/
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestOpenVsOpenRules(void);
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test getting bounds for a sortkey
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestBounds(void);
892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
906d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    /**
916d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)     * Test ucol_getLocale function
926d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)     */
936d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    void TestGetLocale(void);
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test buffer overrun while having smaller buffer for sortkey (j1865)
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
98e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch    void TestSortKeyBufferOverrun(void);
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test getting and setting of attributes
101010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     */
102010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    void TestGetSetAttr(void);
103010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    /**
104010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)     * Test getTailoredSet
1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestGetTailoredSet(void);
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test mergeSortKeys
1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    void TestMergeSortKeys(void);
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * test short string and collator identifier functions
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static void TestShortString(void);
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * test getContractions and getUnsafeSet
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static void TestGetContractionsAndUnsafes(void);
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test funny stuff with open binary
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static void TestOpenBinary(void);
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Test getKeywordValuesForLocale API
1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static void TestGetKeywordValuesForLocale(void);
1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * test strcoll with null arg
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static void TestStrcollNull(void);
1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* #if !UCONFIG_NO_COLLATION */
1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)