forked from arduino/ArduinoCore-API
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_replace.cpp
89 lines (74 loc) · 3.1 KB
/
test_replace.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
* Copyright (c) 2020 Arduino. All rights reserved.
*/
/**************************************************************************************
* INCLUDE
**************************************************************************************/
#include <catch.hpp>
#include <String.h>
#include "StringPrinter.h"
/**************************************************************************************
* TEST CODE
**************************************************************************************/
TEST_CASE ("Testing String::replace(char, char) when string is empty", "[String-replace-01]")
{
arduino::String str;
str.replace('a', 'b');
REQUIRE(str.length() == 0);
}
TEST_CASE ("Testing String::replace(char, char) when string contains elements != 'find'", "[String-replace-02]")
{
arduino::String str("Hello Arduino!");
str.replace('Z', '0');
REQUIRE(str == "Hello Arduino!");
}
TEST_CASE ("Testing String::replace(char, char) when string contains elements = 'find'", "[String-replace-03]")
{
arduino::String str("Hello Arduino!");
str.replace('o', '0');
str.replace('e', '3');
str.replace('i', '1');
REQUIRE(str == "H3ll0 Ardu1n0!");
}
TEST_CASE ("Testing String::replace(String, String) when string does not contain substr 'find'", "[String-replace-04]")
{
arduino::String str("Hello Arduino!");
str.replace(arduino::String("Zulu"), arduino::String("11"));
REQUIRE(str == "Hello Arduino!");
}
TEST_CASE ("Testing String::replace(String, String) when string contains substr 'find'", "[String-replace-05]")
{
arduino::String str("Hello Arduino!");
str.replace(arduino::String("ll"), arduino::String("11"));
REQUIRE(str == "He11o Arduino!");
}
TEST_CASE ("Testing String::replace(String, String) substr 'find' larger than 'replace'", "[String-replace-06]")
{
arduino::String str("Hello Arduino!");
str.replace(arduino::String("llo"), arduino::String("11"));
REQUIRE(str == "He11 Arduino!");
}
TEST_CASE ("Testing String::replace(String, String) substr 'find' smaller than 'replace'", "[String-replace-07]")
{
arduino::String str("Hello Arduino!");
str.replace(arduino::String("ll"), arduino::String("111"));
REQUIRE(str == "He111o Arduino!");
}
TEST_CASE ("Testing String::replace(String, String) substr 'find' smaller than 'replace' multiple occurencies", "[String-replace-08]")
{
arduino::String str("Hello Arduino! Hello, Hello, Hello");
str.replace(arduino::String("ll"), arduino::String("lll"));
REQUIRE(str == "Helllo Arduino! Helllo, Helllo, Helllo");
}
TEST_CASE ("Testing String::replace(String, String) substr 'find' same length as 'replace' multiple occurencies", "[String-replace-09]")
{
arduino::String str("Hello Arduino! Hello, Hello, Hello");
str.replace(arduino::String("ll"), arduino::String("11"));
REQUIRE(str == "He11o Arduino! He11o, He11o, He11o");
}
TEST_CASE ("Testing String::replace(String, String) substr 'find' larger than 'replace' multiple occurencies", "[String-replace-10]")
{
arduino::String str("Helllo Arduino! Helllo, Helllo, Helllo");
str.replace(arduino::String("lll"), arduino::String("ll"));
REQUIRE(str == "Hello Arduino! Hello, Hello, Hello");
}