Fix comparisons of char and wchar_t with wxUniChar[Ref].
Comparisons didn't work correctly in the other direction as they were not reversed as needed. Fix this by adding wxDEFINE_COMPARISON_REV() macro which defines comparisons in terms of the reverse operations and use it for both wxUniChar and wxUniCharRef. Closes #14547. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -68,48 +68,96 @@ void UniCharTestCase::CharCompare()
|
||||
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 );
|
||||
}
|
||||
|
Reference in New Issue
Block a user