Skip to content

Commit 504a4e3

Browse files
author
thk123
committed
Don't capitalize empty strings
Add tests for capitalize function
1 parent 4d6fdfa commit 504a4e3

File tree

4 files changed

+25
-7
lines changed

4 files changed

+25
-7
lines changed

src/util/string_utils.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,3 +167,11 @@ std::string escape_non_alnum(const std::string &to_escape)
167167
}
168168
return escaped.str();
169169
}
170+
std::string capitalize(const std::string &str)
171+
{
172+
if(str.empty())
173+
return str;
174+
std::string capitalized = str;
175+
capitalized[0] = toupper(capitalized[0]);
176+
return capitalized;
177+
}

src/util/string_utils.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ Author: Daniel Poetzl
1818

1919
std::string strip_string(const std::string &s);
2020

21+
std::string capitalize(const std::string &str);
22+
2123
/// Given a string s, split into a sequence of substrings when separated by
2224
/// specified delimiter.
2325
/// \param s: The string to split up

src/util/structured_data.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,6 @@
55
#include "string_utils.h"
66
#include <algorithm>
77

8-
std::string capitalize(const std::string &str)
9-
{
10-
std::string capitalized = str;
11-
capitalized[0] = toupper(capitalized[0]);
12-
return capitalized;
13-
}
14-
158
labelt::labelt(std::vector<std::string> components)
169
{
1710
auto to_lower_string = [](const std::string &s) -> std::string {

unit/util/string_utils/capitalize.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright 2016-2020 Diffblue Limited. All Rights Reserved.
2+
3+
4+
#include <testing-utils/use_catch.h>
5+
#include <util/string_utils.h>
6+
7+
TEST_CASE("capitalize", "[core][util][string_utils]")
8+
{
9+
REQUIRE(capitalize("") == "");
10+
REQUIRE(capitalize("abc") == "Abc");
11+
REQUIRE(capitalize("aBc") == "ABc");
12+
REQUIRE(capitalize("ABc") == "ABc");
13+
REQUIRE(capitalize("abc def") == "Abc def");
14+
REQUIRE(capitalize("1") == "1");
15+
}

0 commit comments

Comments
 (0)