Browse Source

Move StringUtilities test to unit tests.

Michael Ragazzon 5 years ago
parent
commit
8d7cc702fc
3 changed files with 68 additions and 42 deletions
  1. 1 34
      Source/Core/StringUtilities.cpp
  2. 0 8
      Tests/CMakeLists.txt
  3. 67 0
      Tests/Source/UnitTests/StringUtilities.cpp

+ 1 - 34
Source/Core/StringUtilities.cpp

@@ -282,7 +282,7 @@ RMLUICORE_API String StringUtilities::StripWhitespace(StringView string)
 
 
 void StringUtilities::TrimTrailingDotZeros(String& string)
 void StringUtilities::TrimTrailingDotZeros(String& string)
 {
 {
-	RMLUI_ASSERTMSG(string.find('.') != String::npos, "This function probably does not do what you want if the string is not a number with a decimal point.")
+	RMLUI_ASSERTMSG(string.find('.') != String::npos, "This function probably does not do what you want if the string is not a number with a decimal point.");
 
 
 	size_t new_size = string.size();
 	size_t new_size = string.size();
 	for (size_t i = string.size() - 1; i < string.size(); i--)
 	for (size_t i = string.size() - 1; i < string.size(); i--)
@@ -302,39 +302,6 @@ void StringUtilities::TrimTrailingDotZeros(String& string)
 		string.resize(new_size);
 		string.resize(new_size);
 }
 }
 
 
-#ifdef RMLUI_DEBUG
-static struct TestTrimTrailingDotZeros {
-	TestTrimTrailingDotZeros() {
-		auto test = [](const String test_string, const String expected) {
-			String result = test_string;
-			StringUtilities::TrimTrailingDotZeros(result);
-			RMLUI_ASSERT(result == expected);
-		};
-		
-		test("0.1", "0.1");
-		test("0.10", "0.1");
-		test("0.1000", "0.1");
-		test("0.01", "0.01");
-		test("0.", "0");
-		test("5.", "5");
-		test("5.5", "5.5");
-		test("5.50", "5.5");
-		test("5.501", "5.501");
-		test("10.0", "10");
-		test("11.0", "11");
-
-		// Some test cases for behavior that are probably not what you want.
-		//test("test0", "test");
-		//test("1000", "1");
-		//test(".", "");
-		//test("0", "");
-		//test(".0", "");
-		//test(" 11 2121 3.00", " 11 2121 3");
-		//test("11", "11");
-	}
-} test_trim_trailing_dot_zeros;
-#endif
-
 bool StringUtilities::StringCompareCaseInsensitive(const StringView lhs, const StringView rhs)
 bool StringUtilities::StringCompareCaseInsensitive(const StringView lhs, const StringView rhs)
 {
 {
 	if (lhs.size() != rhs.size())
 	if (lhs.size() != rhs.size())

+ 0 - 8
Tests/CMakeLists.txt

@@ -38,8 +38,6 @@ file(GLOB UnitTests_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/Source/UnitTests/*.cpp
 
 
 add_executable(UnitTests ${UnitTests_HDR_FILES} ${UnitTests_SRC_FILES})
 add_executable(UnitTests ${UnitTests_HDR_FILES} ${UnitTests_SRC_FILES})
 target_link_libraries(UnitTests RmlCore doctest::doctest ${sample_LIBRARIES})
 target_link_libraries(UnitTests RmlCore doctest::doctest ${sample_LIBRARIES})
-set_target_properties(UnitTests PROPERTIES CXX_STANDARD 14)
-
 add_common_target_options(UnitTests)
 add_common_target_options(UnitTests)
 
 
 if(MSVC)
 if(MSVC)
@@ -64,9 +62,6 @@ else()
 endif()
 endif()
 
 
 target_link_libraries(VisualTests RmlCore RmlDebugger lodepng::lodepng ${sample_LIBRARIES})
 target_link_libraries(VisualTests RmlCore RmlDebugger lodepng::lodepng ${sample_LIBRARIES})
-set_target_properties(VisualTests PROPERTIES CXX_STANDARD 14)
-
-# Enable compiler warnings
 add_common_target_options(VisualTests)
 add_common_target_options(VisualTests)
 
 
 if(VISUAL_TESTS_RML_DIRECTORIES)
 if(VISUAL_TESTS_RML_DIRECTORIES)
@@ -94,9 +89,6 @@ file(GLOB Benchmarks_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/Source/Benchmarks/*.c
 
 
 add_executable(Benchmarks ${Benchmarks_HDR_FILES} ${Benchmarks_SRC_FILES} ${TestsCommon_HDR_FILES} ${TestsCommon_SRC_FILES})
 add_executable(Benchmarks ${Benchmarks_HDR_FILES} ${Benchmarks_SRC_FILES} ${TestsCommon_HDR_FILES} ${TestsCommon_SRC_FILES})
 target_link_libraries(Benchmarks RmlCore RmlDebugger doctest::doctest nanobench::nanobench ${sample_LIBRARIES})
 target_link_libraries(Benchmarks RmlCore RmlDebugger doctest::doctest nanobench::nanobench ${sample_LIBRARIES})
-set_target_properties(Benchmarks PROPERTIES CXX_STANDARD 14)
-
-# Enable compiler warnings
 add_common_target_options(Benchmarks)
 add_common_target_options(Benchmarks)
 
 
 if(MSVC)
 if(MSVC)

+ 67 - 0
Tests/Source/UnitTests/StringUtilities.cpp

@@ -0,0 +1,67 @@
+/*
+ * This source file is part of RmlUi, the HTML/CSS Interface Middleware
+ *
+ * For the latest information, see http://github.com/mikke89/RmlUi
+ *
+ * Copyright (c) 2008-2010 CodePoint Ltd, Shift Technology Ltd
+ * Copyright (c) 2019 The RmlUi Team, and contributors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ */
+
+
+#include <RmlUi/Core/Types.h>
+#include <RmlUi/Core/StringUtilities.h>
+
+#include <doctest.h>
+
+using namespace Rml;
+
+
+TEST_CASE("StringUtilities::TrimTrailingDotZeros")
+{
+	auto RunTrimTrailingDotZeros = [](String string) {
+		StringUtilities::TrimTrailingDotZeros(string);
+		return string;
+	};
+
+	CHECK(RunTrimTrailingDotZeros("0.1") == "0.1");
+	CHECK(RunTrimTrailingDotZeros("0.10") == "0.1");
+	CHECK(RunTrimTrailingDotZeros("0.1000") == "0.1");
+	CHECK(RunTrimTrailingDotZeros("0.01") == "0.01");
+	CHECK(RunTrimTrailingDotZeros("0.") == "0");
+	CHECK(RunTrimTrailingDotZeros("5.") == "5");
+	CHECK(RunTrimTrailingDotZeros("5.5") == "5.5");
+	CHECK(RunTrimTrailingDotZeros("5.50") == "5.5");
+	CHECK(RunTrimTrailingDotZeros("5.501") == "5.501");
+	CHECK(RunTrimTrailingDotZeros("10.0") == "10");
+	CHECK(RunTrimTrailingDotZeros("11.0") == "11");
+
+	// Some test cases for behavior that are probably not what you want.
+	WARN(RunTrimTrailingDotZeros("test0") == "test");
+	WARN(RunTrimTrailingDotZeros("1000") == "1");
+	WARN(RunTrimTrailingDotZeros(".") == "");
+	WARN(RunTrimTrailingDotZeros("0") == "");
+	WARN(RunTrimTrailingDotZeros(".0") == "");
+	WARN(RunTrimTrailingDotZeros(" 11 2121 3.00") == " 11 2121 3");
+	WARN(RunTrimTrailingDotZeros("11") == "11");
+}
+
+