CPPUNIT_TEST( ToULongLong );
#endif // wxLongLong_t
CPPUNIT_TEST( ToDouble );
+ CPPUNIT_TEST( WriteBuf );
CPPUNIT_TEST_SUITE_END();
void String();
void ToULongLong();
#endif // wxLongLong_t
void ToDouble();
+ void WriteBuf();
DECLARE_NO_COPY_CLASS(StringTestCase)
};
CPPUNIT_ASSERT( s1 != neq3 );
CPPUNIT_ASSERT( s1 != neq4 );
+ CPPUNIT_ASSERT( s1 == wxT("AHH") );
+ CPPUNIT_ASSERT( s1 != wxT("no") );
+ CPPUNIT_ASSERT( s1 < wxT("AZ") );
+ CPPUNIT_ASSERT( s1 <= wxT("AZ") );
+ CPPUNIT_ASSERT( s1 <= wxT("AHH") );
+ CPPUNIT_ASSERT( s1 > wxT("AA") );
+ CPPUNIT_ASSERT( s1 >= wxT("AA") );
+ CPPUNIT_ASSERT( s1 >= wxT("AHH") );
+
+ // test comparison with C strings in Unicode build (must work in ANSI as
+ // well, of course):
+ CPPUNIT_ASSERT( s1 == "AHH" );
+ CPPUNIT_ASSERT( s1 != "no" );
+ CPPUNIT_ASSERT( s1 < "AZ" );
+ CPPUNIT_ASSERT( s1 <= "AZ" );
+ CPPUNIT_ASSERT( s1 <= "AHH" );
+ CPPUNIT_ASSERT( s1 > "AA" );
+ CPPUNIT_ASSERT( s1 >= "AA" );
+ CPPUNIT_ASSERT( s1 >= "AHH" );
+
// wxString _s1 = wxT("A\0HH");
// wxString _eq = wxT("A\0HH");
// wxString _neq1 = wxT("H\0AH");
static const struct ToLongData
{
const wxChar *str;
- union
- {
#ifdef wxLongLong_t
- wxLongLong_t llvalue;
- wxULongLong_t ullvalue;
+ wxLongLong_t value;
+#else
+ long value;
#endif // wxLongLong_t
- long lvalue;
- unsigned long ulvalue;
- };
-
int flags;
+ long LValue() const { return value; }
+ unsigned long ULValue() const { return value; }
+#ifdef wxLongLong_t
+ wxLongLong_t LLValue() const { return value; }
+ wxULongLong_t ULLValue() const { return (wxULongLong_t)value; }
+#endif // wxLongLong_t
+
bool IsOk() const { return !(flags & Number_Invalid); }
} longData[] =
{
CPPUNIT_ASSERT_EQUAL( ld.IsOk(), wxString(ld.str).ToLong(&l) );
if ( ld.IsOk() )
- CPPUNIT_ASSERT_EQUAL( ld.lvalue, l );
+ CPPUNIT_ASSERT_EQUAL( ld.LValue(), l );
}
}
CPPUNIT_ASSERT_EQUAL( ld.IsOk(), wxString(ld.str).ToULong(&ul) );
if ( ld.IsOk() )
- CPPUNIT_ASSERT_EQUAL( ld.ulvalue, ul );
+ CPPUNIT_ASSERT_EQUAL( ld.ULValue(), ul );
}
}
CPPUNIT_ASSERT_EQUAL( ld.IsOk(), wxString(ld.str).ToLongLong(&l) );
if ( ld.IsOk() )
- CPPUNIT_ASSERT_EQUAL( ld.llvalue, l );
+ CPPUNIT_ASSERT_EQUAL( ld.LLValue(), l );
}
}
CPPUNIT_ASSERT_EQUAL( ld.IsOk(), wxString(ld.str).ToULongLong(&ul) );
if ( ld.IsOk() )
- CPPUNIT_ASSERT_EQUAL( ld.ullvalue, ul );
+ CPPUNIT_ASSERT_EQUAL( ld.ULLValue(), ul );
}
}
CPPUNIT_ASSERT_EQUAL( ld.value, d );
}
}
+
+void StringTestCase::WriteBuf()
+{
+ wxString s;
+ wxStrcpy(wxStringBuffer(s, 10), _T("foo"));
+
+ CPPUNIT_ASSERT_EQUAL(_T('f'), s[0u]);
+ CPPUNIT_ASSERT_EQUAL(_T('o'), s[1]);
+ CPPUNIT_ASSERT_EQUAL(_T('o'), s[2]);
+ CPPUNIT_ASSERT_EQUAL((size_t)3, s.length());
+
+
+ {
+ wxStringBufferLength buf(s, 10);
+ wxStrcpy(buf, _T("barrbaz"));
+ buf.SetLength(4);
+ }
+
+ CPPUNIT_ASSERT_EQUAL(_T('b'), s[0u]);
+ CPPUNIT_ASSERT_EQUAL(_T('a'), s[1]);
+ CPPUNIT_ASSERT_EQUAL(_T('r'), s[2]);
+ CPPUNIT_ASSERT_EQUAL(_T('r'), s[3]);
+ CPPUNIT_ASSERT_EQUAL((size_t)4, s.length());
+
+ CPPUNIT_ASSERT_EQUAL( 0, wxStrcmp(_T("barr"), s) );
+}
+