| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // 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
 
 
  |