scuffed-code/icu4c/source/test/intltest/usettest.h

96 lines
2.8 KiB
C
Raw Normal View History

/********************************************************************
* COPYRIGHT:
* Copyright (c) 1997-2001, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************
1999-10-26 17:16:13 +00:00
**********************************************************************
* Date Name Description
* 10/20/99 alan Creation.
2000-03-28 23:51:25 +00:00
* 03/22/2000 Madhu Added additional tests
1999-10-26 17:16:13 +00:00
**********************************************************************
*/
#ifndef _TESTUNISET
#define _TESTUNISET
#include "intltest.h"
class UnicodeSet;
class UnicodeString;
/**
* UnicodeSet test
*/
class UnicodeSetTest: public IntlTest {
void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=NULL);
private:
void TestPatterns(void);
void TestCategories(void);
void TestAddRemove(void);
void TestCloneEqualHash(void);
2000-03-28 23:51:25 +00:00
/**
* Make sure minimal representation is maintained.
*/
void TestMinimalRep(void);
void TestAPI(void);
void TestExhaustive(void);
private:
void _testComplement(int32_t a, UnicodeSet&, UnicodeSet&);
void _testAdd(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&);
void _testRetain(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&);
void _testRemove(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&);
void _testXor(int32_t a, int32_t b, UnicodeSet&, UnicodeSet&, UnicodeSet&);
/**
* Check that ranges are monotonically increasing and non-
* overlapping.
*/
void checkCanonicalRep(const UnicodeSet& set, const UnicodeString& msg);
/**
* Convert a bitmask to a UnicodeSet.
*/
static void bitsToSet(int32_t a, UnicodeSet&);
/**
* Convert a UnicodeSet to a bitmask. Only the characters
* U+0000 to U+0020 are represented in the bitmask.
*/
static int32_t setToBits(const UnicodeSet& x);
/**
* Return the representation of an inversion list based UnicodeSet
* as a pairs list. Ranges are listed in ascending Unicode order.
* For example, the set [a-zA-M3] is represented as "33AMaz".
*/
static UnicodeString getPairs(const UnicodeSet& set);
void expectContainment(const UnicodeSet& set,
const UnicodeString& setName,
const UnicodeString& charsIn,
const UnicodeString& charsOut);
1999-10-26 17:16:13 +00:00
void expectPattern(UnicodeSet& set,
const UnicodeString& pattern,
const UnicodeString& expectedPairs);
void expectPairs(const UnicodeSet& set,
const UnicodeString& expectedPairs);
void doAssert(UBool, const char*);
public:
static UnicodeString escape(const UnicodeString& s);
};
#endif