ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/test/utils/StringTokenizerTestCase.cpp
Revision: 1781
Committed: Wed Nov 24 19:49:33 2004 UTC (19 years, 7 months ago) by tim
File size: 2322 byte(s)
Log Message:
Addint StringTokenizerTestCase

File Contents

# Content
1 #include "utils/StringTokenizerTestCase.hpp"
2 #include <iostream>
3 #include <algorithm>
4 #include "utils/StringTokenizer.hpp"
5 // Registers the fixture into the 'registry'
6 CPPUNIT_TEST_SUITE_REGISTRATION( StringTokenizerTestCase );
7
8
9 void StringTokenizerTestCase::testStringTokenizer(){
10
11
12 std::string str1 = " \t Hello \r World \n";
13 StringTokenizer tokenizer1(str1);
14
15 CPPUNIT_ASSERT(tokenizer1.getOriginal() == str1);
16
17 CPPUNIT_ASSERT(tokenizer1.countTokens() == 2);
18
19 std::string token1 = tokenizer1.nextToken();
20 std::string token2 = tokenizer1.nextToken();
21
22 CPPUNIT_ASSERT(token1 == "Hello");
23 CPPUNIT_ASSERT(token2 == "World");
24
25 //test reading and converting tokens to other data type
26 std::string str2 = "1991.2\t129\t1e2 1 OOPSE\n";
27 StringTokenizer tokenizer2(str2);
28
29 CPPUNIT_ASSERT(tokenizer2.countTokens() == 5);
30
31 float floatVal = tokenizer2.nextTokenAsFloat();
32 int intVal = tokenizer2.nextTokenAsInt();
33 double doubleVal = tokenizer2.nextTokenAsDouble();
34 bool boolVal = tokenizer2.nextTokenAsBool();
35 std::string stringVal = tokenizer2.nextToken();
36
37 CPPUNIT_ASSERT_DOUBLES_EQUAL(floatVal, 1991.2, 0.0001);
38 CPPUNIT_ASSERT(intVal == 129);
39 CPPUNIT_ASSERT_DOUBLES_EQUAL(doubleVal, 100, 0.0001);
40 CPPUNIT_ASSERT(boolVal);
41 CPPUNIT_ASSERT(stringVal == "OOPSE");
42
43 CPPUNIT_ASSERT(!tokenizer2.hasMoreTokens());
44
45 //test peekNextToken and using different delimeters
46 StringTokenizer tokenizer3(str2, " \n");
47
48 CPPUNIT_ASSERT(tokenizer3.getDelimiters() == " \n");
49
50 CPPUNIT_ASSERT(tokenizer3.countTokens() == 3);
51
52 CPPUNIT_ASSERT(tokenizer3.peekNextToken() == "1991.2\t129\t1e2");
53
54 CPPUNIT_ASSERT(tokenizer3.countTokens() == 3);
55
56 CPPUNIT_ASSERT(tokenizer3.nextToken() == "1991.2\t129\t1e2");
57
58 CPPUNIT_ASSERT(tokenizer3.countTokens() == 2);
59
60 //test return tokens
61 StringTokenizer tokenizer4(str2, " \n", true);
62 CPPUNIT_ASSERT(tokenizer4.countTokens() == 6);
63 CPPUNIT_ASSERT(tokenizer4.nextToken() == "1991.2\t129\t1e2");
64 CPPUNIT_ASSERT(tokenizer4.nextToken() == " ");
65 CPPUNIT_ASSERT(tokenizer4.nextToken() == "1");
66 CPPUNIT_ASSERT(tokenizer4.nextToken() == " ");
67 CPPUNIT_ASSERT(tokenizer4.nextToken() == "OOPSE");
68 CPPUNIT_ASSERT(tokenizer4.nextToken() == "\n");
69
70 }
71

Properties

Name Value
svn:executable *