187d2adbcSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 387d2adbcSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 487d2adbcSAndrew Rist * or more contributor license agreements. See the NOTICE file 587d2adbcSAndrew Rist * distributed with this work for additional information 687d2adbcSAndrew Rist * regarding copyright ownership. The ASF licenses this file 787d2adbcSAndrew Rist * to you under the Apache License, Version 2.0 (the 887d2adbcSAndrew Rist * "License"); you may not use this file except in compliance 987d2adbcSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 1187d2adbcSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 1387d2adbcSAndrew Rist * Unless required by applicable law or agreed to in writing, 1487d2adbcSAndrew Rist * software distributed under the License is distributed on an 1587d2adbcSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1687d2adbcSAndrew Rist * KIND, either express or implied. See the License for the 1787d2adbcSAndrew Rist * specific language governing permissions and limitations 1887d2adbcSAndrew Rist * under the License. 19cdf0e10cSrcweir * 2087d2adbcSAndrew Rist *************************************************************/ 2187d2adbcSAndrew Rist 2287d2adbcSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir 25cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 26cdf0e10cSrcweir #include "precompiled_sal.hxx" 27cdf0e10cSrcweir // autogenerated file with codegen.pl 28cdf0e10cSrcweir // There exist some more test code in sal/qa/rtl_strings/rtl_OString.cxx 29*b3f397bdSDamjan Jovanovic #include <rtl/string.hxx> 30cdf0e10cSrcweir 31*b3f397bdSDamjan Jovanovic #include "gtest/gtest.h" 32cdf0e10cSrcweir #include "valueequal.hxx" 33cdf0e10cSrcweir 34cdf0e10cSrcweir namespace rtl_OString 35cdf0e10cSrcweir { 36cdf0e10cSrcweir 37*b3f397bdSDamjan Jovanovic class valueOf : public ::testing::Test 38cdf0e10cSrcweir { 39*b3f397bdSDamjan Jovanovic protected: 40cdf0e10cSrcweir void valueOf_float_test_impl(float _nValue) 41cdf0e10cSrcweir { 42cdf0e10cSrcweir rtl::OString sValue; 43cdf0e10cSrcweir sValue = rtl::OString::valueOf( _nValue ); 44*b3f397bdSDamjan Jovanovic printf("nFloat := %.9f sValue := %s\n", _nValue, sValue.getStr()); 45cdf0e10cSrcweir 46cdf0e10cSrcweir float nValueATOF = static_cast<float>(atof( sValue.getStr() )); 47cdf0e10cSrcweir 48cdf0e10cSrcweir bool bEqualResult = is_float_equal(_nValue, nValueATOF); 49*b3f397bdSDamjan Jovanovic ASSERT_TRUE(bEqualResult == true) << "Values are not equal."; 50cdf0e10cSrcweir } 51cdf0e10cSrcweir 52cdf0e10cSrcweir void valueOf_float_test(float _nValue) 53cdf0e10cSrcweir { 54cdf0e10cSrcweir valueOf_float_test_impl(_nValue); 55cdf0e10cSrcweir 56cdf0e10cSrcweir // test also the negative part. 57cdf0e10cSrcweir float nNegativeValue = -_nValue; 58cdf0e10cSrcweir valueOf_float_test_impl(nNegativeValue); 59cdf0e10cSrcweir } 60cdf0e10cSrcweir 61cdf0e10cSrcweir public: 62cdf0e10cSrcweir // initialise your test code values here. 63*b3f397bdSDamjan Jovanovic void SetUp() 64cdf0e10cSrcweir { 65cdf0e10cSrcweir } 66cdf0e10cSrcweir 67*b3f397bdSDamjan Jovanovic void TearDown() 68cdf0e10cSrcweir { 69cdf0e10cSrcweir } 70cdf0e10cSrcweir 71*b3f397bdSDamjan Jovanovic protected: 72cdf0e10cSrcweir 73cdf0e10cSrcweir void valueOf_double_test_impl(double _nValue) 74cdf0e10cSrcweir { 75cdf0e10cSrcweir rtl::OString sValue; 76cdf0e10cSrcweir sValue = rtl::OString::valueOf( _nValue ); 77*b3f397bdSDamjan Jovanovic printf("nDouble := %.20f sValue := %s\n", _nValue, sValue.getStr()); 78cdf0e10cSrcweir 79cdf0e10cSrcweir double nValueATOF = atof( sValue.getStr() ); 80cdf0e10cSrcweir 81cdf0e10cSrcweir bool bEqualResult = is_double_equal(_nValue, nValueATOF); 82*b3f397bdSDamjan Jovanovic ASSERT_TRUE(bEqualResult == true) << "Values are not equal."; 83cdf0e10cSrcweir } 84cdf0e10cSrcweir 85cdf0e10cSrcweir void valueOf_double_test(double _nValue) 86cdf0e10cSrcweir { 87cdf0e10cSrcweir valueOf_double_test_impl(_nValue); 88cdf0e10cSrcweir 89cdf0e10cSrcweir // test also the negative part. 90cdf0e10cSrcweir double nNegativeValue = -_nValue; 91cdf0e10cSrcweir valueOf_double_test_impl(nNegativeValue); 92cdf0e10cSrcweir } 93*b3f397bdSDamjan Jovanovic }; // class valueOf 94cdf0e10cSrcweir 95*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_float_test_001) 96*b3f397bdSDamjan Jovanovic { 97*b3f397bdSDamjan Jovanovic // this is demonstration code 98*b3f397bdSDamjan Jovanovic // ASSERT_TRUE(1 == 1) << "a message"; 99*b3f397bdSDamjan Jovanovic float nValue = 3.0f; 100*b3f397bdSDamjan Jovanovic valueOf_float_test(nValue); 101*b3f397bdSDamjan Jovanovic } 102*b3f397bdSDamjan Jovanovic 103*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_float_test_002) 104*b3f397bdSDamjan Jovanovic { 105*b3f397bdSDamjan Jovanovic float nValue = 3.5f; 106*b3f397bdSDamjan Jovanovic valueOf_float_test(nValue); 107*b3f397bdSDamjan Jovanovic } 108*b3f397bdSDamjan Jovanovic 109*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_float_test_003) 110*b3f397bdSDamjan Jovanovic { 111*b3f397bdSDamjan Jovanovic float nValue = 3.0625f; 112*b3f397bdSDamjan Jovanovic valueOf_float_test(nValue); 113*b3f397bdSDamjan Jovanovic } 114*b3f397bdSDamjan Jovanovic 115*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_float_test_004) 116*b3f397bdSDamjan Jovanovic { 117*b3f397bdSDamjan Jovanovic float nValue = 3.502525f; 118*b3f397bdSDamjan Jovanovic valueOf_float_test(nValue); 119*b3f397bdSDamjan Jovanovic } 120*b3f397bdSDamjan Jovanovic 121*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_float_test_005) 122*b3f397bdSDamjan Jovanovic { 123*b3f397bdSDamjan Jovanovic float nValue = 3.141592f; 124*b3f397bdSDamjan Jovanovic valueOf_float_test(nValue); 125*b3f397bdSDamjan Jovanovic } 126*b3f397bdSDamjan Jovanovic 127*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_float_test_006) 128*b3f397bdSDamjan Jovanovic { 129*b3f397bdSDamjan Jovanovic float nValue = 3.5025255f; 130*b3f397bdSDamjan Jovanovic valueOf_float_test(nValue); 131*b3f397bdSDamjan Jovanovic } 132*b3f397bdSDamjan Jovanovic 133*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_float_test_007) 134*b3f397bdSDamjan Jovanovic { 135*b3f397bdSDamjan Jovanovic float nValue = 3.0039062f; 136*b3f397bdSDamjan Jovanovic valueOf_float_test(nValue); 137*b3f397bdSDamjan Jovanovic } 138*b3f397bdSDamjan Jovanovic 139*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_double_test_001) 140cdf0e10cSrcweir { 141cdf0e10cSrcweir double nValue = 3.0; 142cdf0e10cSrcweir valueOf_double_test(nValue); 143cdf0e10cSrcweir } 144*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_double_test_002) 145cdf0e10cSrcweir { 146cdf0e10cSrcweir double nValue = 3.5; 147cdf0e10cSrcweir valueOf_double_test(nValue); 148cdf0e10cSrcweir } 149*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_double_test_003) 150cdf0e10cSrcweir { 151cdf0e10cSrcweir double nValue = 3.0625; 152cdf0e10cSrcweir valueOf_double_test(nValue); 153cdf0e10cSrcweir } 154*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_double_test_004) 155cdf0e10cSrcweir { 156cdf0e10cSrcweir double nValue = 3.1415926535; 157cdf0e10cSrcweir valueOf_double_test(nValue); 158cdf0e10cSrcweir } 159*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_double_test_005) 160cdf0e10cSrcweir { 161cdf0e10cSrcweir double nValue = 3.141592653589793; 162cdf0e10cSrcweir valueOf_double_test(nValue); 163cdf0e10cSrcweir } 164*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_double_test_006) 165cdf0e10cSrcweir { 166cdf0e10cSrcweir double nValue = 3.1415926535897932; 167cdf0e10cSrcweir valueOf_double_test(nValue); 168cdf0e10cSrcweir } 169*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_double_test_007) 170cdf0e10cSrcweir { 171cdf0e10cSrcweir double nValue = 3.14159265358979323; 172cdf0e10cSrcweir valueOf_double_test(nValue); 173cdf0e10cSrcweir } 174*b3f397bdSDamjan Jovanovic TEST_F(valueOf, valueOf_double_test_008) 175cdf0e10cSrcweir { 176cdf0e10cSrcweir double nValue = 3.141592653589793238462643; 177cdf0e10cSrcweir valueOf_double_test(nValue); 178cdf0e10cSrcweir } 179cdf0e10cSrcweir 180cdf0e10cSrcweir 181cdf0e10cSrcweir // ----------------------------------------------------------------------------- 182cdf0e10cSrcweir // - toDouble (tests) 183cdf0e10cSrcweir // ----------------------------------------------------------------------------- 184*b3f397bdSDamjan Jovanovic class toDouble : public ::testing::Test 185cdf0e10cSrcweir { 186cdf0e10cSrcweir 187cdf0e10cSrcweir public: 188cdf0e10cSrcweir 189cdf0e10cSrcweir toDouble() 190cdf0e10cSrcweir { 191cdf0e10cSrcweir // testPrecision a; 192cdf0e10cSrcweir } 193cdf0e10cSrcweir 194cdf0e10cSrcweir 195cdf0e10cSrcweir 196cdf0e10cSrcweir // initialise your test code values here. 197*b3f397bdSDamjan Jovanovic void SetUp() 198cdf0e10cSrcweir { 199cdf0e10cSrcweir } 200cdf0e10cSrcweir 201*b3f397bdSDamjan Jovanovic void TearDown() 202cdf0e10cSrcweir { 203cdf0e10cSrcweir } 204cdf0e10cSrcweir 205cdf0e10cSrcweir void toDouble_test_impl(rtl::OString const& _sValue) 206cdf0e10cSrcweir { 207cdf0e10cSrcweir double nValueATOF = atof( _sValue.getStr() ); 208cdf0e10cSrcweir 209cdf0e10cSrcweir // rtl::OUString suValue = rtl::OUString::createFromAscii( _sValue.getStr() ); 210cdf0e10cSrcweir double nValueToDouble = _sValue.toDouble(); 211cdf0e10cSrcweir 212cdf0e10cSrcweir bool bEqualResult = is_double_equal(nValueToDouble, nValueATOF); 213*b3f397bdSDamjan Jovanovic ASSERT_TRUE(bEqualResult == true) << "Values are not equal."; 214cdf0e10cSrcweir } 215cdf0e10cSrcweir 216cdf0e10cSrcweir void toDouble_test(rtl::OString const& _sValue) 217cdf0e10cSrcweir { 218cdf0e10cSrcweir toDouble_test_impl(_sValue); 219cdf0e10cSrcweir 220cdf0e10cSrcweir // test also the negativ part. 221cdf0e10cSrcweir rtl::OString sNegativValue("-"); 222cdf0e10cSrcweir sNegativValue += _sValue; 223cdf0e10cSrcweir toDouble_test_impl(sNegativValue); 224cdf0e10cSrcweir } 225*b3f397bdSDamjan Jovanovic }; // class toDouble 226cdf0e10cSrcweir 227*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_selftest) 228cdf0e10cSrcweir { 229*b3f397bdSDamjan Jovanovic printf("Start selftest:\n"); 230*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.01) == false); 231*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.001) == false); 232*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.0001) == false); 233*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.00001) == false); 234*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.000001) == false); 235*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.0000001) == false); 236*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.00000001) == false); 237*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.000000001) == false); 238*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.0000000001) == false); 239*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.00000000001) == false); 240*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.000000000001) == false); 241*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.0000000000001) == false); 242cdf0e10cSrcweir // we check til 14 values after comma 243*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.00000000000001) == true); 244*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.000000000000001) == true); 245*b3f397bdSDamjan Jovanovic ASSERT_TRUE (is_double_equal(1.0, 1.0000000000000001) == true); 246*b3f397bdSDamjan Jovanovic printf("Selftest done.\n"); 247cdf0e10cSrcweir } 248cdf0e10cSrcweir 249*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_3) 250cdf0e10cSrcweir { 251cdf0e10cSrcweir rtl::OString sValue("3"); 252cdf0e10cSrcweir toDouble_test(sValue); 253cdf0e10cSrcweir } 254*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_3_5) 255cdf0e10cSrcweir { 256cdf0e10cSrcweir rtl::OString sValue("3.5"); 257cdf0e10cSrcweir toDouble_test(sValue); 258cdf0e10cSrcweir } 259*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_3_0625) 260cdf0e10cSrcweir { 261cdf0e10cSrcweir rtl::OString sValue("3.0625"); 262cdf0e10cSrcweir toDouble_test(sValue); 263cdf0e10cSrcweir } 264*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_pi) 265cdf0e10cSrcweir { 266cdf0e10cSrcweir // value from http://www.angio.net/pi/digits/50.txt 267cdf0e10cSrcweir rtl::OString sValue("3.141592653589793238462643383279502884197169399375"); 268cdf0e10cSrcweir toDouble_test(sValue); 269cdf0e10cSrcweir } 270cdf0e10cSrcweir 271*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_1) 272cdf0e10cSrcweir { 273cdf0e10cSrcweir rtl::OString sValue("1"); 274cdf0e10cSrcweir toDouble_test(sValue); 275cdf0e10cSrcweir } 276*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_10) 277cdf0e10cSrcweir { 278cdf0e10cSrcweir rtl::OString sValue("10"); 279cdf0e10cSrcweir toDouble_test(sValue); 280cdf0e10cSrcweir } 281*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_100) 282cdf0e10cSrcweir { 283cdf0e10cSrcweir rtl::OString sValue("100"); 284cdf0e10cSrcweir toDouble_test(sValue); 285cdf0e10cSrcweir } 286*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_1000) 287cdf0e10cSrcweir { 288cdf0e10cSrcweir rtl::OString sValue("1000"); 289cdf0e10cSrcweir toDouble_test(sValue); 290cdf0e10cSrcweir } 291*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_10000) 292cdf0e10cSrcweir { 293cdf0e10cSrcweir rtl::OString sValue("10000"); 294cdf0e10cSrcweir toDouble_test(sValue); 295cdf0e10cSrcweir } 296*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_1e99) 297cdf0e10cSrcweir { 298cdf0e10cSrcweir rtl::OString sValue("1e99"); 299cdf0e10cSrcweir toDouble_test(sValue); 300cdf0e10cSrcweir } 301*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_1e_n99) 302cdf0e10cSrcweir { 303cdf0e10cSrcweir rtl::OString sValue("1e-99"); 304cdf0e10cSrcweir toDouble_test(sValue); 305cdf0e10cSrcweir } 306*b3f397bdSDamjan Jovanovic TEST_F(toDouble, toDouble_test_1e308) 307cdf0e10cSrcweir { 308cdf0e10cSrcweir rtl::OString sValue("1e308"); 309cdf0e10cSrcweir toDouble_test(sValue); 310cdf0e10cSrcweir } 311cdf0e10cSrcweir 312cdf0e10cSrcweir // ----------------------------------------------------------------------------- 313cdf0e10cSrcweir // - getToken (tests) 314cdf0e10cSrcweir // ----------------------------------------------------------------------------- 315*b3f397bdSDamjan Jovanovic class getToken : public ::testing::Test 316cdf0e10cSrcweir { 317cdf0e10cSrcweir 318cdf0e10cSrcweir public: 319cdf0e10cSrcweir 320cdf0e10cSrcweir // initialise your test code values here. 321*b3f397bdSDamjan Jovanovic void SetUp() 322cdf0e10cSrcweir { 323cdf0e10cSrcweir } 324cdf0e10cSrcweir 325*b3f397bdSDamjan Jovanovic void TearDown() 326cdf0e10cSrcweir { 327cdf0e10cSrcweir } 328*b3f397bdSDamjan Jovanovic }; // class getToken 329cdf0e10cSrcweir 330cdf0e10cSrcweir 331*b3f397bdSDamjan Jovanovic TEST_F(getToken, getToken_000) 332cdf0e10cSrcweir { 333cdf0e10cSrcweir rtl::OString sTokenStr; 334cdf0e10cSrcweir 335cdf0e10cSrcweir sal_Int32 nIndex = 0; 336cdf0e10cSrcweir do 337cdf0e10cSrcweir { 338cdf0e10cSrcweir rtl::OString sToken = sTokenStr.getToken( 0, ';', nIndex ); 339cdf0e10cSrcweir } 340cdf0e10cSrcweir while ( nIndex >= 0 ); 341*b3f397bdSDamjan Jovanovic // printf("Index %d\n", nIndex); 342cdf0e10cSrcweir // should not GPF 343cdf0e10cSrcweir } 344cdf0e10cSrcweir 345*b3f397bdSDamjan Jovanovic TEST_F(getToken, getToken_001) 346cdf0e10cSrcweir { 347cdf0e10cSrcweir rtl::OString sTokenStr = "a;b"; 348cdf0e10cSrcweir 349cdf0e10cSrcweir sal_Int32 nIndex = 0; 350cdf0e10cSrcweir 351cdf0e10cSrcweir rtl::OString sToken = sTokenStr.getToken( 0, ';', nIndex ); 352*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("a") == sal_True) << "Token should be a 'a'"; 353cdf0e10cSrcweir 354cdf0e10cSrcweir /* rtl::OString */ sToken = sTokenStr.getToken( 0, ';', nIndex ); 355*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("b") == sal_True) << "Token should be a 'b'"; 356*b3f397bdSDamjan Jovanovic ASSERT_TRUE(nIndex == -1) << "index should be negative"; 357cdf0e10cSrcweir } 358cdf0e10cSrcweir 359*b3f397bdSDamjan Jovanovic TEST_F(getToken, getToken_002) 360cdf0e10cSrcweir { 361cdf0e10cSrcweir rtl::OString sTokenStr = "a;b.c"; 362cdf0e10cSrcweir 363cdf0e10cSrcweir sal_Int32 nIndex = 0; 364cdf0e10cSrcweir 365cdf0e10cSrcweir rtl::OString sToken = sTokenStr.getToken( 0, ';', nIndex ); 366*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("a") == sal_True) << "Token should be a 'a'"; 367cdf0e10cSrcweir 368cdf0e10cSrcweir /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex ); 369*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("b") == sal_True) << "Token should be a 'b'"; 370cdf0e10cSrcweir 371cdf0e10cSrcweir /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex ); 372*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("c") == sal_True) << "Token should be a 'c'"; 373*b3f397bdSDamjan Jovanovic ASSERT_TRUE(nIndex == -1) << "index should be negative"; 374cdf0e10cSrcweir } 375cdf0e10cSrcweir 376*b3f397bdSDamjan Jovanovic TEST_F(getToken, getToken_003) 377cdf0e10cSrcweir { 378cdf0e10cSrcweir rtl::OString sTokenStr = "a;;b"; 379cdf0e10cSrcweir 380cdf0e10cSrcweir sal_Int32 nIndex = 0; 381cdf0e10cSrcweir 382cdf0e10cSrcweir rtl::OString sToken = sTokenStr.getToken( 0, ';', nIndex ); 383*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("a") == sal_True) << "Token should be a 'a'"; 384cdf0e10cSrcweir 385cdf0e10cSrcweir /* rtl::OString */ sToken = sTokenStr.getToken( 0, ';', nIndex ); 386*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.getLength() == 0) << "Token should be empty"; 387cdf0e10cSrcweir 388cdf0e10cSrcweir /* rtl::OString */ sToken = sTokenStr.getToken( 0, ';', nIndex ); 389*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("b") == sal_True) << "Token should be a 'b'"; 390*b3f397bdSDamjan Jovanovic ASSERT_TRUE(nIndex == -1) << "index should be negative"; 391cdf0e10cSrcweir } 392cdf0e10cSrcweir 393*b3f397bdSDamjan Jovanovic TEST_F(getToken, getToken_004) 394cdf0e10cSrcweir { 395cdf0e10cSrcweir rtl::OString sTokenStr = "longer.then.ever."; 396cdf0e10cSrcweir 397cdf0e10cSrcweir sal_Int32 nIndex = 0; 398cdf0e10cSrcweir 399cdf0e10cSrcweir rtl::OString sToken = sTokenStr.getToken( 0, '.', nIndex ); 400*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("longer") == sal_True) << "Token should be 'longer'"; 401cdf0e10cSrcweir 402cdf0e10cSrcweir /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex ); 403*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("then") == sal_True) << "Token should be 'then'"; 404cdf0e10cSrcweir 405cdf0e10cSrcweir /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex ); 406*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.equals("ever") == sal_True) << "Token should be 'ever'"; 407cdf0e10cSrcweir 408cdf0e10cSrcweir /* rtl::OString */ sToken = sTokenStr.getToken( 0, '.', nIndex ); 409*b3f397bdSDamjan Jovanovic ASSERT_TRUE(sToken.getLength() == 0) << "Token should be empty"; 410cdf0e10cSrcweir 411*b3f397bdSDamjan Jovanovic ASSERT_TRUE(nIndex == -1) << "index should be negative"; 412cdf0e10cSrcweir } 413cdf0e10cSrcweir 414cdf0e10cSrcweir // ----------------------------------------------------------------------------- 415cdf0e10cSrcweir // testing the method replaceAt( sal_Int32 index, sal_Int32 count, 416cdf0e10cSrcweir // const OString& newStr ) 417cdf0e10cSrcweir // ----------------------------------------------------------------------------- 418cdf0e10cSrcweir 419cdf0e10cSrcweir // Developer note: Mindy Liu, 2004-04-23 420cdf0e10cSrcweir // stollen from sal/qa/rtl_strings/rtl_OString.cxx 421cdf0e10cSrcweir 422*b3f397bdSDamjan Jovanovic class replaceAt : public ::testing::Test 423cdf0e10cSrcweir { 424cdf0e10cSrcweir 425cdf0e10cSrcweir public: 426cdf0e10cSrcweir // initialise your test code values here. 427*b3f397bdSDamjan Jovanovic void SetUp() 428cdf0e10cSrcweir { 429cdf0e10cSrcweir } 430cdf0e10cSrcweir 431*b3f397bdSDamjan Jovanovic void TearDown() 432cdf0e10cSrcweir { 433cdf0e10cSrcweir } 434cdf0e10cSrcweir sal_Bool check_replaceAt( const rtl::OString* expVal, const rtl::OString* input, 435cdf0e10cSrcweir const rtl::OString* newStr, sal_Int32 index, sal_Int32 count) 436cdf0e10cSrcweir { 437cdf0e10cSrcweir ::rtl::OString aStr1; 438cdf0e10cSrcweir aStr1= input->replaceAt( index, count, *newStr ); 439cdf0e10cSrcweir 440*b3f397bdSDamjan Jovanovic printf("the result OString is %s#\n", aStr1.getStr() ); 441cdf0e10cSrcweir 442cdf0e10cSrcweir sal_Bool bRes = ( expVal->compareTo(aStr1) == 0 ); 443cdf0e10cSrcweir return bRes; 444cdf0e10cSrcweir } 445*b3f397bdSDamjan Jovanovic }; // class replaceAt 446cdf0e10cSrcweir 447*b3f397bdSDamjan Jovanovic TEST_F(replaceAt, replaceAt_001) 448cdf0e10cSrcweir { 449cdf0e10cSrcweir sal_Bool bRes = check_replaceAt(new rtl::OString("Java@Sun"), 450cdf0e10cSrcweir new rtl::OString("Sun java"), new rtl::OString("Java@Sun"), 0, 8 ); 451*b3f397bdSDamjan Jovanovic ASSERT_TRUE(bRes == sal_True) << "string differs, replace whole string"; 452cdf0e10cSrcweir } 453cdf0e10cSrcweir 454*b3f397bdSDamjan Jovanovic TEST_F(replaceAt, replaceAt_002) 455cdf0e10cSrcweir { 456cdf0e10cSrcweir sal_Bool bRes = check_replaceAt(new rtl::OString("Sun Java desktop system"), 457cdf0e10cSrcweir new rtl::OString("Sun "), new rtl::OString("Java desktop system"), 10, 8 ); 458*b3f397bdSDamjan Jovanovic ASSERT_TRUE(bRes == sal_True) << "index > length of input string"; 459cdf0e10cSrcweir } 460cdf0e10cSrcweir 461*b3f397bdSDamjan Jovanovic TEST_F(replaceAt, replaceAt_003) 462cdf0e10cSrcweir { 463cdf0e10cSrcweir sal_Bool bRes = check_replaceAt(new rtl::OString("SuJava desktop system"), 464cdf0e10cSrcweir new rtl::OString("Sun "), new rtl::OString("Java desktop system"), 2, 64 ); 465*b3f397bdSDamjan Jovanovic ASSERT_TRUE(bRes == sal_True) << "larger count"; 466cdf0e10cSrcweir } 467cdf0e10cSrcweir 468*b3f397bdSDamjan Jovanovic TEST_F(replaceAt, replaceAt_004) 469cdf0e10cSrcweir { 470cdf0e10cSrcweir 471cdf0e10cSrcweir sal_Bool bRes = check_replaceAt(new rtl::OString("Java desktop system"), 472cdf0e10cSrcweir new rtl::OString("Sun "), new rtl::OString("Java desktop system"), -4, 8 ); 473*b3f397bdSDamjan Jovanovic ASSERT_TRUE(bRes == sal_True) << "navigate index"; 474cdf0e10cSrcweir } 475*b3f397bdSDamjan Jovanovic TEST_F(replaceAt, replaceAt_005) 476cdf0e10cSrcweir { 477cdf0e10cSrcweir 478cdf0e10cSrcweir sal_Bool bRes = check_replaceAt(new rtl::OString("Sun Jesktop System"), 479cdf0e10cSrcweir new rtl::OString("Sun Java Desktop System"), new rtl::OString(""), 5, 5 ); 480*b3f397bdSDamjan Jovanovic ASSERT_TRUE(bRes == sal_True) << "replace with null string"; 481cdf0e10cSrcweir } 482cdf0e10cSrcweir 483cdf0e10cSrcweir 484cdf0e10cSrcweir } // namespace rtl_OString 485cdf0e10cSrcweir 486cdf0e10cSrcweir 487*b3f397bdSDamjan Jovanovic int main(int argc, char **argv) 488*b3f397bdSDamjan Jovanovic { 489*b3f397bdSDamjan Jovanovic ::testing::InitGoogleTest(&argc, argv); 490*b3f397bdSDamjan Jovanovic return RUN_ALL_TESTS(); 491*b3f397bdSDamjan Jovanovic } 492