wxWidgets/tests/strings/unichar.cpp
Vadim Zeitlin 3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00

1159 lines
28 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: tests/strings/unichar.cpp
// Purpose: Test for wxUniChar class
// Author: Vaclav Slavik
// Created: 2007-03-11
// Copyright: (c) 2007 REA Elektronik GmbH
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "testprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif // WX_PRECOMP
#include "wx/string.h"
// ----------------------------------------------------------------------------
// test class
// ----------------------------------------------------------------------------
class UniCharTestCase : public CppUnit::TestCase
{
public:
UniCharTestCase() {}
private:
CPPUNIT_TEST_SUITE( UniCharTestCase );
CPPUNIT_TEST( CharCompare );
CPPUNIT_TEST( CharCompareIntl );
CPPUNIT_TEST( StringCompare );
CPPUNIT_TEST( ShortCompare );
CPPUNIT_TEST( UnsignedShortCompare );
CPPUNIT_TEST( IntCompare );
CPPUNIT_TEST( UnsignedIntCompare );
CPPUNIT_TEST( LongCompare );
CPPUNIT_TEST( UnsignedLongCompare );
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( wxLongLongCompare ); )
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( wxULongLongCompare ); )
wxIF_WCHAR_T_TYPE( CPPUNIT_TEST( WideCharCompare ); )
CPPUNIT_TEST( UniCharAssignmentOperator );
CPPUNIT_TEST( UniCharRefAssignmentOperator );
CPPUNIT_TEST( CharAssignmentOperator );
CPPUNIT_TEST( UnsignedCharAssignmentOperator );
CPPUNIT_TEST( ShortAssignmentOperator );
CPPUNIT_TEST( UnsignedShortAssignmentOperator );
CPPUNIT_TEST( IntAssignmentOperator );
CPPUNIT_TEST( UnsignedIntAssignmentOperator );
CPPUNIT_TEST( LongAssignmentOperator );
CPPUNIT_TEST( UnsignedLongAssignmentOperator );
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( wxLongLongAssignmentOperator ); )
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( wxULongLongAssignmentOperator ); )
wxIF_WCHAR_T_TYPE( CPPUNIT_TEST( WideCharAssignmentOperator ); )
CPPUNIT_TEST( CharParenOperator );
CPPUNIT_TEST( UnsignedCharParenOperator );
CPPUNIT_TEST( ShortParenOperator );
CPPUNIT_TEST( UnsignedShortParenOperator );
CPPUNIT_TEST( IntParenOperator );
CPPUNIT_TEST( UnsignedIntParenOperator );
CPPUNIT_TEST( LongParenOperator );
CPPUNIT_TEST( UnsignedLongParenOperator );
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( wxLongLongParenOperator ); )
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( wxULongLongParenOperator ); )
wxIF_WCHAR_T_TYPE( CPPUNIT_TEST( WideCharParenOperator ); )
CPPUNIT_TEST(RefUniCharAssignmentOperator);
CPPUNIT_TEST(RefUniCharRefAssignmentOperator);
CPPUNIT_TEST(RefCharAssignmentOperator);
CPPUNIT_TEST( RefShortAssignmentOperator );
CPPUNIT_TEST( RefUnsignedShortAssignmentOperator );
CPPUNIT_TEST( RefIntAssignmentOperator );
CPPUNIT_TEST( RefUnsignedIntAssignmentOperator );
CPPUNIT_TEST( RefLongAssignmentOperator );
CPPUNIT_TEST( RefUnsignedLongAssignmentOperator );
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( RefwxLongLongAssignmentOperator ); )
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( RefwxULongLongAssignmentOperator ); )
wxIF_WCHAR_T_TYPE( CPPUNIT_TEST( RefWideCharAssignmentOperator ); )
CPPUNIT_TEST(RefCharParenOperator);
CPPUNIT_TEST( RefShortParenOperator );
CPPUNIT_TEST( RefUnsignedShortParenOperator );
CPPUNIT_TEST( RefIntParenOperator );
CPPUNIT_TEST( RefUnsignedIntParenOperator );
CPPUNIT_TEST( RefLongParenOperator );
CPPUNIT_TEST( RefUnsignedLongParenOperator );
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( RefwxLongLongParenOperator ); )
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( RefwxULongLongParenOperator ); )
wxIF_WCHAR_T_TYPE( CPPUNIT_TEST( RefWideCharParenOperator ); )
CPPUNIT_TEST( RefShortCompare );
CPPUNIT_TEST( RefUnsignedShortCompare );
CPPUNIT_TEST( RefIntCompare );
CPPUNIT_TEST( RefUnsignedIntCompare );
CPPUNIT_TEST( RefLongCompare );
CPPUNIT_TEST( RefUnsignedLongCompare );
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( RefwxLongLongCompare ); )
wxIF_LONG_LONG_TYPE( CPPUNIT_TEST( RefwxULongLongCompare ); )
wxIF_WCHAR_T_TYPE( CPPUNIT_TEST( RefWideCharCompare ); )
#if wxUSE_UNICODE
CPPUNIT_TEST( StringCompareIntl );
#endif // wxUSE_UNICODE
CPPUNIT_TEST_SUITE_END();
void CharCompare();
void CharCompareIntl();
void StringCompare();
void StringCompareIntl();
void ShortCompare();
void UnsignedShortCompare();
void IntCompare();
void UnsignedIntCompare();
void LongCompare();
void UnsignedLongCompare();
wxIF_LONG_LONG_TYPE( void wxLongLongCompare(); )
wxIF_LONG_LONG_TYPE( void wxULongLongCompare(); )
wxIF_WCHAR_T_TYPE( void WideCharCompare(); )
void UniCharAssignmentOperator();
void UniCharRefAssignmentOperator();
void CharAssignmentOperator();
void UnsignedCharAssignmentOperator();
void ShortAssignmentOperator();
void UnsignedShortAssignmentOperator();
void IntAssignmentOperator();
void UnsignedIntAssignmentOperator();
void LongAssignmentOperator();
void UnsignedLongAssignmentOperator();
wxIF_LONG_LONG_TYPE( void wxLongLongAssignmentOperator(); )
wxIF_LONG_LONG_TYPE( void wxULongLongAssignmentOperator(); )
wxIF_WCHAR_T_TYPE( void WideCharAssignmentOperator(); )
void CharParenOperator();
void UnsignedCharParenOperator();
void ShortParenOperator();
void UnsignedShortParenOperator();
void IntParenOperator();
void UnsignedIntParenOperator();
void LongParenOperator();
void UnsignedLongParenOperator();
wxIF_LONG_LONG_TYPE( void wxLongLongParenOperator(); )
wxIF_LONG_LONG_TYPE( void wxULongLongParenOperator(); )
wxIF_WCHAR_T_TYPE( void WideCharParenOperator(); )
void RefUniCharAssignmentOperator();
void RefUniCharRefAssignmentOperator();
void RefCharAssignmentOperator();
void RefUnsignedCharAssignmentOperator();
void RefShortAssignmentOperator();
void RefUnsignedShortAssignmentOperator();
void RefIntAssignmentOperator();
void RefUnsignedIntAssignmentOperator();
void RefLongAssignmentOperator();
void RefUnsignedLongAssignmentOperator();
wxIF_LONG_LONG_TYPE( void RefwxLongLongAssignmentOperator(); )
wxIF_LONG_LONG_TYPE( void RefwxULongLongAssignmentOperator(); )
wxIF_WCHAR_T_TYPE( void RefWideCharAssignmentOperator(); )
void RefCharParenOperator();
void RefUnsignedCharParenOperator();
void RefShortParenOperator();
void RefUnsignedShortParenOperator();
void RefIntParenOperator();
void RefUnsignedIntParenOperator();
void RefLongParenOperator();
void RefUnsignedLongParenOperator();
wxIF_LONG_LONG_TYPE( void RefwxLongLongParenOperator(); )
wxIF_LONG_LONG_TYPE( void RefwxULongLongParenOperator(); )
wxIF_WCHAR_T_TYPE( void RefWideCharParenOperator(); )
void RefShortCompare();
void RefUnsignedShortCompare();
void RefIntCompare();
void RefUnsignedIntCompare();
void RefLongCompare();
void RefUnsignedLongCompare();
wxIF_LONG_LONG_TYPE( void RefwxLongLongCompare(); )
wxIF_LONG_LONG_TYPE( void RefwxULongLongCompare(); )
wxIF_WCHAR_T_TYPE( void RefWideCharCompare(); )
DECLARE_NO_COPY_CLASS(UniCharTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( UniCharTestCase );
// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( UniCharTestCase, "UniCharTestCase" );
void UniCharTestCase::CharCompare()
{
wxUniChar a('a');
wxUniChar b('b');
CPPUNIT_ASSERT( a == a );
CPPUNIT_ASSERT( a == 'a' );
CPPUNIT_ASSERT( a == wxT('a') );
CPPUNIT_ASSERT( a == wxUniChar('a') );
CPPUNIT_ASSERT( a == wxUniChar(wxT('a')) );
CPPUNIT_ASSERT( a == a );
CPPUNIT_ASSERT( 'a' == a );
CPPUNIT_ASSERT( wxT('a') == a );
CPPUNIT_ASSERT( wxUniChar('a') == a );
CPPUNIT_ASSERT( wxUniChar(wxT('a')) == a );
CPPUNIT_ASSERT( a != b );
CPPUNIT_ASSERT( a != 'b' );
CPPUNIT_ASSERT( a != wxT('b') );
CPPUNIT_ASSERT( a != wxUniChar('b') );
CPPUNIT_ASSERT( a != wxUniChar(wxT('b')) );
CPPUNIT_ASSERT( b != a );
CPPUNIT_ASSERT( 'b' != a );
CPPUNIT_ASSERT( wxT('b') != a );
CPPUNIT_ASSERT( wxUniChar('b') != a );
CPPUNIT_ASSERT( wxUniChar(wxT('b')) != a );
CPPUNIT_ASSERT( a < b );
CPPUNIT_ASSERT( a < 'b' );
CPPUNIT_ASSERT( a < wxT('b') );
CPPUNIT_ASSERT( a < wxUniChar('b') );
CPPUNIT_ASSERT( a < wxUniChar(wxT('b')) );
CPPUNIT_ASSERT( b > a );
CPPUNIT_ASSERT( 'b' > a );
CPPUNIT_ASSERT( wxT('b') > a );
CPPUNIT_ASSERT( wxUniChar('b') > a );
CPPUNIT_ASSERT( wxUniChar(wxT('b')) > a );
CPPUNIT_ASSERT( a <= b );
CPPUNIT_ASSERT( a <= 'b' );
CPPUNIT_ASSERT( a <= wxT('b') );
CPPUNIT_ASSERT( a <= wxUniChar('b') );
CPPUNIT_ASSERT( a <= wxUniChar(wxT('b')) );
CPPUNIT_ASSERT( b >= a );
CPPUNIT_ASSERT( 'b' >= a );
CPPUNIT_ASSERT( wxT('b') >= a );
CPPUNIT_ASSERT( wxUniChar('b') >= a );
CPPUNIT_ASSERT( wxUniChar(wxT('b')) >= a );
CPPUNIT_ASSERT( a <= a );
CPPUNIT_ASSERT( a <= 'a' );
CPPUNIT_ASSERT( a <= wxT('a') );
CPPUNIT_ASSERT( a <= wxUniChar('a') );
CPPUNIT_ASSERT( a <= wxUniChar(wxT('a')) );
CPPUNIT_ASSERT( a >= a );
CPPUNIT_ASSERT( 'a' >= a );
CPPUNIT_ASSERT( wxT('a') >= a );
CPPUNIT_ASSERT( wxUniChar('a') >= a );
CPPUNIT_ASSERT( wxUniChar(wxT('a')) >= a );
CPPUNIT_ASSERT( b > a );
CPPUNIT_ASSERT( b > 'a' );
CPPUNIT_ASSERT( b > wxT('a') );
CPPUNIT_ASSERT( b > wxUniChar('a') );
CPPUNIT_ASSERT( b > wxUniChar(wxT('a')) );
CPPUNIT_ASSERT( a < b );
CPPUNIT_ASSERT( 'a' < b );
CPPUNIT_ASSERT( wxT('a') < b );
CPPUNIT_ASSERT( wxUniChar('a') < b );
CPPUNIT_ASSERT( wxUniChar(wxT('a')) < b );
CPPUNIT_ASSERT( b >= a );
CPPUNIT_ASSERT( b >= 'a' );
CPPUNIT_ASSERT( b >= wxT('a') );
CPPUNIT_ASSERT( b >= wxUniChar('a') );
CPPUNIT_ASSERT( b >= wxUniChar(wxT('a')) );
CPPUNIT_ASSERT( a <= b );
CPPUNIT_ASSERT( 'a' <= b );
CPPUNIT_ASSERT( wxT('a') <= b );
CPPUNIT_ASSERT( wxUniChar('a') <= b );
CPPUNIT_ASSERT( wxUniChar(wxT('a')) <= b );
CPPUNIT_ASSERT( b >= b );
CPPUNIT_ASSERT( b >= 'b' );
CPPUNIT_ASSERT( b >= wxT('b') );
CPPUNIT_ASSERT( b >= wxUniChar('b') );
CPPUNIT_ASSERT( b >= wxUniChar(wxT('b')) );
CPPUNIT_ASSERT( b <= b );
CPPUNIT_ASSERT( 'b' <= b );
CPPUNIT_ASSERT( wxT('b') <= b );
CPPUNIT_ASSERT( wxUniChar('b') <= b );
CPPUNIT_ASSERT( wxUniChar(wxT('b')) <= b );
CPPUNIT_ASSERT( b - a == 1 );
CPPUNIT_ASSERT( a - b == -1 );
}
#define CYRILLIC_SMALL_LETTER_YU ((wchar_t)0x044E)
#define ARABIC_LETTER_NOON ((wchar_t)0x0646)
void UniCharTestCase::CharCompareIntl()
{
wxUniChar a(CYRILLIC_SMALL_LETTER_YU);
wxUniChar b(ARABIC_LETTER_NOON);
CPPUNIT_ASSERT( a == a );
CPPUNIT_ASSERT( a == CYRILLIC_SMALL_LETTER_YU );
CPPUNIT_ASSERT( a == wxUniChar(CYRILLIC_SMALL_LETTER_YU) );
CPPUNIT_ASSERT( a != b );
CPPUNIT_ASSERT( a != ARABIC_LETTER_NOON );
CPPUNIT_ASSERT( a != wxUniChar(ARABIC_LETTER_NOON) );
CPPUNIT_ASSERT( a < b );
CPPUNIT_ASSERT( a < ARABIC_LETTER_NOON );
CPPUNIT_ASSERT( a < wxUniChar(ARABIC_LETTER_NOON) );
CPPUNIT_ASSERT( a <= b );
CPPUNIT_ASSERT( a <= ARABIC_LETTER_NOON );
CPPUNIT_ASSERT( a <= wxUniChar(ARABIC_LETTER_NOON) );
CPPUNIT_ASSERT( a <= a );
CPPUNIT_ASSERT( a <= CYRILLIC_SMALL_LETTER_YU );
CPPUNIT_ASSERT( a <= wxUniChar(CYRILLIC_SMALL_LETTER_YU) );
CPPUNIT_ASSERT( b > a );
CPPUNIT_ASSERT( b > CYRILLIC_SMALL_LETTER_YU );
CPPUNIT_ASSERT( b > wxUniChar(CYRILLIC_SMALL_LETTER_YU) );
CPPUNIT_ASSERT( b >= a );
CPPUNIT_ASSERT( b >= CYRILLIC_SMALL_LETTER_YU );
CPPUNIT_ASSERT( b >= wxUniChar(CYRILLIC_SMALL_LETTER_YU) );
CPPUNIT_ASSERT( b >= b );
CPPUNIT_ASSERT( b >= ARABIC_LETTER_NOON );
CPPUNIT_ASSERT( b >= wxUniChar(ARABIC_LETTER_NOON) );
CPPUNIT_ASSERT( b - a == 504 );
CPPUNIT_ASSERT( a - b == -504 );
}
void UniCharTestCase::StringCompare()
{
// test string comparison with chars
wxString sa = "a";
const wxString sb = "b";
char c1 = 'a';
wchar_t c2 = wxT('a');
wxUniChar c3 = 'a';
CPPUNIT_ASSERT( sa == 'a');
CPPUNIT_ASSERT( 'a' == sa);
CPPUNIT_ASSERT( sb != 'a');
CPPUNIT_ASSERT( 'a' != sb);
CPPUNIT_ASSERT( sa == c1);
CPPUNIT_ASSERT( c1 == sa);
CPPUNIT_ASSERT( sb != c1);
CPPUNIT_ASSERT( c1 != sb);
CPPUNIT_ASSERT( sa == c2);
CPPUNIT_ASSERT( c2 == sa);
CPPUNIT_ASSERT( sb != c2);
CPPUNIT_ASSERT( c2 != sb);
CPPUNIT_ASSERT( sa == c3);
CPPUNIT_ASSERT( c3 == sa);
CPPUNIT_ASSERT( sb != c3);
CPPUNIT_ASSERT( c3 != sb);
// test wxUniCharRef:
CPPUNIT_ASSERT( sa == sa[0]);
CPPUNIT_ASSERT( sa[0] == sa);
CPPUNIT_ASSERT( sb != sa[0]);
CPPUNIT_ASSERT( sa[0] != sb);
// test const version of operator[] (returns wxUniChar, not wxUniCharRef):
CPPUNIT_ASSERT( sb == sb[0]);
CPPUNIT_ASSERT( sb[0] == sb);
CPPUNIT_ASSERT( sa != sb[0]);
CPPUNIT_ASSERT( sb[0] != sa);
}
#if wxUSE_UNICODE
void UniCharTestCase::StringCompareIntl()
{
// test string comparison with chars
wxString sa = CYRILLIC_SMALL_LETTER_YU;
const wxString sb = ARABIC_LETTER_NOON;
wchar_t c2 = CYRILLIC_SMALL_LETTER_YU;
wxUniChar c3 = CYRILLIC_SMALL_LETTER_YU;
CPPUNIT_ASSERT( sa == CYRILLIC_SMALL_LETTER_YU);
CPPUNIT_ASSERT( CYRILLIC_SMALL_LETTER_YU == sa);
CPPUNIT_ASSERT( sb != CYRILLIC_SMALL_LETTER_YU);
CPPUNIT_ASSERT( CYRILLIC_SMALL_LETTER_YU != sb);
CPPUNIT_ASSERT( sa == c2);
CPPUNIT_ASSERT( c2 == sa);
CPPUNIT_ASSERT( sb != c2);
CPPUNIT_ASSERT( c2 != sb);
CPPUNIT_ASSERT( sa == c3);
CPPUNIT_ASSERT( c3 == sa);
CPPUNIT_ASSERT( sb != c3);
CPPUNIT_ASSERT( c3 != sb);
// test wxUniCharRef:
CPPUNIT_ASSERT( sa == sa[0]);
CPPUNIT_ASSERT( sa[0] == sa);
CPPUNIT_ASSERT( sb != sa[0]);
CPPUNIT_ASSERT( sa[0] != sb);
// test const version of operator[] (returns wxUniChar, not wxUniCharRef):
CPPUNIT_ASSERT( sb == sb[0]);
CPPUNIT_ASSERT( sb[0] == sb);
CPPUNIT_ASSERT( sa != sb[0]);
CPPUNIT_ASSERT( sb[0] != sa);
}
#endif // wxUSE_UNICODE
#define wxUNICHAR_TEST_INT_COMPARE \
wxUniChar a(aVal); \
CPPUNIT_ASSERT( a == aVal ); \
CPPUNIT_ASSERT( a != bVal ); \
CPPUNIT_ASSERT( a < bVal ); \
CPPUNIT_ASSERT( a <= bVal ); \
CPPUNIT_ASSERT( a > cVal ); \
CPPUNIT_ASSERT( a >= cVal );
void UniCharTestCase::ShortCompare()
{
short aVal = 2;
short bVal = 3;
short cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
void UniCharTestCase::UnsignedShortCompare()
{
unsigned short aVal = 2;
unsigned short bVal = 3;
unsigned short cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
void UniCharTestCase::IntCompare()
{
int aVal = 2;
int bVal = 3;
int cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
void UniCharTestCase::UnsignedIntCompare()
{
unsigned int aVal = 2;
unsigned int bVal = 3;
unsigned int cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
void UniCharTestCase::LongCompare()
{
long aVal = 2;
long bVal = 3;
long cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
void UniCharTestCase::UnsignedLongCompare()
{
unsigned long aVal = 2;
unsigned long bVal = 3;
unsigned long cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
void UniCharTestCase::wxLongLongCompare()
{
wxLongLong_t aVal = 2;
wxLongLong_t bVal = 3;
wxLongLong_t cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
void UniCharTestCase::wxULongLongCompare()
{
wxULongLong_t aVal = 2;
wxULongLong_t bVal = 3;
wxULongLong_t cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
#endif
#if wxWCHAR_T_IS_REAL_TYPE
void UniCharTestCase::WideCharCompare()
{
wchar_t aVal = 2;
wchar_t bVal = 3;
wchar_t cVal = 1;
wxUNICHAR_TEST_INT_COMPARE
}
#endif
#undef wxUNICHAR_TEST_INT_COMPARE
#define wxUNICHAR_TEST_ASSIGNMENT_OPERATOR \
wxUniChar a; \
wxUniChar b(bVal); \
a = b; \
CPPUNIT_ASSERT(a == b);
void UniCharTestCase::UniCharAssignmentOperator()
{
wxUniChar a;
wxUniChar b('b');
a = b;
CPPUNIT_ASSERT(a == b);
}
void UniCharTestCase::UniCharRefAssignmentOperator()
{
wxUniChar a;
wxUniChar b('b');
wxString bStr('b');
wxUniCharRef bRef = bStr[0];
a = bRef;
CPPUNIT_ASSERT(a == b);
}
void UniCharTestCase::CharAssignmentOperator()
{
char bVal = 'b';
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
void UniCharTestCase::UnsignedCharAssignmentOperator()
{
unsigned char bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
void UniCharTestCase::ShortAssignmentOperator()
{
short bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
void UniCharTestCase::UnsignedShortAssignmentOperator()
{
unsigned short bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
void UniCharTestCase::IntAssignmentOperator()
{
int bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
void UniCharTestCase::UnsignedIntAssignmentOperator()
{
unsigned int bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
void UniCharTestCase::LongAssignmentOperator()
{
long bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
void UniCharTestCase::UnsignedLongAssignmentOperator()
{
unsigned long bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
void UniCharTestCase::wxLongLongAssignmentOperator()
{
wxLongLong_t bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
void UniCharTestCase::wxULongLongAssignmentOperator()
{
wxULongLong_t bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
#endif
#if wxWCHAR_T_IS_REAL_TYPE
void UniCharTestCase::WideCharAssignmentOperator()
{
wchar_t bVal = 2;
wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
}
#endif
#undef wxUNICHAR_TEST_ASSIGNMENT_OPERATOR
void UniCharTestCase::CharParenOperator()
{
char aVal;
char bVal = 'b';
wxUniChar b(bVal);
aVal = (char) b;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::UnsignedCharParenOperator()
{
unsigned char aVal;
unsigned char bVal = 'b';
wxUniChar b(bVal);
aVal = (unsigned char) b;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::ShortParenOperator()
{
short aVal;
short bVal = 2;
wxUniChar b(bVal);
aVal = (short) b;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::UnsignedShortParenOperator()
{
unsigned short aVal;
unsigned short bVal = 2;
wxUniChar b(bVal);
aVal = (unsigned short) b;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::IntParenOperator()
{
int aVal;
int bVal = 2;
wxUniChar b(bVal);
aVal = (int) b;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::UnsignedIntParenOperator()
{
unsigned int aVal;
unsigned int bVal = 2;
wxUniChar b(bVal);
aVal = (unsigned int) b;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::LongParenOperator()
{
long aVal;
long bVal = 2;
wxUniChar b(bVal);
aVal = (long) b;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::UnsignedLongParenOperator()
{
unsigned long aVal;
unsigned long bVal = 2;
wxUniChar b(bVal);
aVal = (unsigned long) b;
CPPUNIT_ASSERT(aVal == bVal);
}
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
void UniCharTestCase::wxLongLongParenOperator()
{
wxLongLong_t aVal;
wxLongLong_t bVal = 2;
wxUniChar b(bVal);
aVal = (wxLongLong_t) b;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::wxULongLongParenOperator()
{
wxULongLong_t aVal;
wxULongLong_t bVal = 2;
wxUniChar b(bVal);
aVal = (wxULongLong_t) b;
CPPUNIT_ASSERT(aVal == bVal);
}
#endif
#if wxWCHAR_T_IS_REAL_TYPE
void UniCharTestCase::WideCharParenOperator()
{
wchar_t aVal;
wchar_t bVal = 2;
wxUniChar b(bVal);
aVal = (wchar_t) b;
CPPUNIT_ASSERT(aVal == bVal);
}
#endif
void UniCharTestCase::RefUniCharAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
wxChar b = 'b';
wxUniChar bVal(b);
bRef = bVal;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefUniCharRefAssignmentOperator()
{
wxChar b = 'b';
wxString testStr(b);
wxUniCharRef testRef = testStr[0];
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
bRef = testRef;
CPPUNIT_ASSERT(bRef == testRef);
}
void UniCharTestCase::RefCharAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
char b = 'b';
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefUnsignedCharAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
unsigned char b = 'b';
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefShortAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
short b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefUnsignedShortAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
unsigned short b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefIntAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
int b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefUnsignedIntAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
unsigned int b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefLongAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
long b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefUnsignedLongAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
unsigned long b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
void UniCharTestCase::RefwxLongLongAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
wxLongLong_t b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
void UniCharTestCase::RefwxULongLongAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
unsigned long b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
#endif
#if wxWCHAR_T_IS_REAL_TYPE
void UniCharTestCase::RefWideCharAssignmentOperator()
{
wxString dummyStr('0');
wxUniCharRef bRef = dummyStr[0];
wchar_t b = 2;
bRef = b;
CPPUNIT_ASSERT(bRef == b);
}
#endif
void UniCharTestCase::RefCharParenOperator()
{
char aVal;
char bVal = 'b';
wxString testStr(bVal);
wxUniCharRef bRef = testStr[0];
aVal = (char) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::RefUnsignedCharParenOperator()
{
unsigned char aVal;
unsigned char bVal = 'b';
wxString testStr = wxString::Format(wxT("%u"), bVal);
wxUniCharRef bRef = testStr[0];
aVal = (unsigned char) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::RefShortParenOperator()
{
short aVal;
short bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (short) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::RefUnsignedShortParenOperator()
{
unsigned short aVal;
unsigned short bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (unsigned short) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::RefIntParenOperator()
{
int aVal;
int bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (int) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::RefUnsignedIntParenOperator()
{
unsigned int aVal;
unsigned int bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (unsigned int) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::RefLongParenOperator()
{
long aVal;
long bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (long) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::RefUnsignedLongParenOperator()
{
unsigned long aVal;
unsigned long bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (unsigned long) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
void UniCharTestCase::RefwxLongLongParenOperator()
{
wxLongLong_t aVal;
wxLongLong_t bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (wxLongLong_t) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
void UniCharTestCase::RefwxULongLongParenOperator()
{
wxULongLong_t aVal;
wxULongLong_t bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (wxULongLong_t) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
#endif
#if wxWCHAR_T_IS_REAL_TYPE
void UniCharTestCase::RefWideCharParenOperator()
{
wchar_t aVal;
wchar_t bVal = 2;
wxUniChar b(bVal);
wxString dummyStr("0");
wxUniCharRef bRef = dummyStr[0];
bRef = b;
aVal = (wxLongLong_t) bRef;
CPPUNIT_ASSERT(aVal == bVal);
}
#endif
#define wxUNICHARREF_TEST_INT_COMPARE \
wxUniChar a(aVal); \
wxString dummyStr("0"); \
wxUniCharRef aRef = dummyStr[0]; \
aRef = a; \
CPPUNIT_ASSERT( aRef == aVal ); \
CPPUNIT_ASSERT( aRef != bVal ); \
CPPUNIT_ASSERT( aRef < bVal ); \
CPPUNIT_ASSERT( aRef <= bVal ); \
CPPUNIT_ASSERT( aRef > cVal ); \
CPPUNIT_ASSERT( aRef >= cVal );
void UniCharTestCase::RefShortCompare()
{
short aVal = 2;
short bVal = 3;
short cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
void UniCharTestCase::RefUnsignedShortCompare()
{
unsigned short aVal = 2;
unsigned short bVal = 3;
unsigned short cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
void UniCharTestCase::RefIntCompare()
{
int aVal = 2;
int bVal = 3;
int cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
void UniCharTestCase::RefUnsignedIntCompare()
{
unsigned int aVal = 2;
unsigned int bVal = 3;
unsigned int cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
void UniCharTestCase::RefLongCompare()
{
long aVal = 2;
long bVal = 3;
long cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
void UniCharTestCase::RefUnsignedLongCompare()
{
unsigned long aVal = 2;
unsigned long bVal = 3;
unsigned long cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG
void UniCharTestCase::RefwxLongLongCompare()
{
wxLongLong_t aVal = 2;
wxLongLong_t bVal = 3;
wxLongLong_t cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
void UniCharTestCase::RefwxULongLongCompare()
{
wxULongLong_t aVal = 2;
wxULongLong_t bVal = 3;
wxULongLong_t cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
#endif
#if wxWCHAR_T_IS_REAL_TYPE
void UniCharTestCase::RefWideCharCompare()
{
wchar_t aVal = 2;
wchar_t bVal = 3;
wchar_t cVal = 1;
wxUNICHARREF_TEST_INT_COMPARE
}
#endif