Example #1
0
/*
 * Test the split function
 */
void StringUtilsTest::testSplit() {
  vector<string> tokens;
  string input = "";
  StringSplit(input, tokens);
  OLA_ASSERT_EQ((size_t) 1, tokens.size());
  OLA_ASSERT_EQ(string(""), tokens[0]);

  input = "1 2 345";
  tokens.clear();
  StringSplit(input, tokens);

  OLA_ASSERT_EQ((size_t) 3, tokens.size());
  OLA_ASSERT_EQ(string("1"), tokens[0]);
  OLA_ASSERT_EQ(string("2"), tokens[1]);
  OLA_ASSERT_EQ(string("345"), tokens[2]);

  input = "1,2,345";
  tokens.clear();
  StringSplit(input, tokens, ",");

  OLA_ASSERT_EQ((size_t) 3, tokens.size());
  OLA_ASSERT_EQ(string("1"), tokens[0]);
  OLA_ASSERT_EQ(string("2"), tokens[1]);
  OLA_ASSERT_EQ(string("345"), tokens[2]);

  input = ",1,2,345,,";
  tokens.clear();
  StringSplit(input, tokens, ",");

  OLA_ASSERT_EQ((size_t) 6, tokens.size());
  OLA_ASSERT_EQ(string(""), tokens[0]);
  OLA_ASSERT_EQ(string("1"), tokens[1]);
  OLA_ASSERT_EQ(string("2"), tokens[2]);
  OLA_ASSERT_EQ(string("345"), tokens[3]);
  OLA_ASSERT_EQ(string(""), tokens[4]);
  OLA_ASSERT_EQ(string(""), tokens[5]);

  input = "1 2,345";
  tokens.clear();
  StringSplit(input, tokens, " ,");

  OLA_ASSERT_EQ((size_t) 3, tokens.size());
  OLA_ASSERT_EQ(string("1"), tokens[0]);
  OLA_ASSERT_EQ(string("2"), tokens[1]);
  OLA_ASSERT_EQ(string("345"), tokens[2]);

  input = "1, 2,345";
  tokens.clear();
  StringSplit(input, tokens, " ,");

  OLA_ASSERT_EQ((size_t) 4, tokens.size());
  OLA_ASSERT_EQ(string("1"), tokens[0]);
  OLA_ASSERT_EQ(string(""), tokens[1]);
  OLA_ASSERT_EQ(string("2"), tokens[2]);
  OLA_ASSERT_EQ(string("345"), tokens[3]);

  input = "1";
  tokens.clear();
  StringSplit(input, tokens, ".");

  OLA_ASSERT_EQ((size_t) 1, tokens.size());
  OLA_ASSERT_EQ(string("1"), tokens[0]);
}