Skip to content

Commit 9db653a

Browse files
committed
Revise tests, add checks and rename data consistently.
1 parent 2906a53 commit 9db653a

File tree

6 files changed

+129
-122
lines changed

6 files changed

+129
-122
lines changed

test/app/array.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,28 +48,28 @@ class ArrayTest : public TestGroup
4848
Serial.print(_F("Array of double"));
4949

5050
Serial.print(" iterator: {");
51-
for(auto f : fstrArrayDouble) {
51+
for(auto f : doubleArray) {
5252
Serial.print(f);
5353
Serial.print(", ");
5454
}
5555
Serial.println(" }");
5656

57-
Serial.printf(_F("Array[double] length = %u, size = %u"), fstrArrayDouble.length(), fstrArrayDouble.size());
58-
for(unsigned i = 0; i < fstrArrayDouble.length(); ++i) {
59-
Serial.printf(_F(" arr[%u] = %f\n"), i, fstrArrayDouble[i]);
57+
Serial.printf(_F("Array[double] length = %u, size = %u"), doubleArray.length(), doubleArray.size());
58+
for(unsigned i = 0; i < doubleArray.length(); ++i) {
59+
Serial.printf(_F(" arr[%u] = %f\n"), i, doubleArray[i]);
6060
}
6161

62-
FSTR::println(Serial, fstrArrayDouble);
62+
FSTR::println(Serial, doubleArray);
6363

6464
//
6565

6666
Serial.println();
6767
Serial.print(_F("Multi-dimensional array"));
6868

69-
FSTR::println(Serial, fstrArrayMulti);
69+
FSTR::println(Serial, tableArray);
7070

7171
Serial.println(" iterator: {");
72-
for(auto row : fstrArrayMulti) {
72+
for(auto row : tableArray) {
7373
Serial.print(" { ");
7474
for(auto v : row.values) {
7575
Serial.print(v);
@@ -79,8 +79,8 @@ class ArrayTest : public TestGroup
7979
}
8080
Serial.println(" }");
8181

82-
// FSTR::println(Serial, fstrArrayint64);
83-
for(auto v : fstrArrayint64) {
82+
// FSTR::println(Serial, int64Array);
83+
for(auto v : int64Array) {
8484
Serial.print(v, HEX);
8585
Serial.print(", ");
8686
}

test/app/data.cpp

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,20 @@ DEFINE_FSTR(externalFSTR1, EXTERNAL_FSTR1_TEXT)
3232
* Array
3333
*/
3434

35-
DEFINE_FSTR_ARRAY(fstrArrayDouble, double, PI, 53.0, 100, 1e8, 47);
36-
DEFINE_FSTR_ARRAY(fstrArrayint64, int64_t, 1, 2, 3, 4, 5);
37-
38-
// A multi-dimensional Array (table)
39-
DEFINE_FSTR_ARRAY(fstrArrayMulti, TableRow_Float_3, {1, 2, 3}, {4, 5, 6}, {7, 8, 9});
40-
41-
DEFINE_FSTR_ARRAY(row1, float, 1, 2, 3);
42-
DEFINE_FSTR_ARRAY(row2, float, 4, 5, 6, 7, 8, 9, 10);
35+
DEFINE_FSTR_ARRAY(doubleArray, double, PI, 53.0, 100, 1e8, 47);
36+
DEFINE_FSTR_ARRAY(int64Array, int64_t, 1, 2, 3, 4, 5);
37+
DEFINE_FSTR_ARRAY(tableArray, TableRow_Float_3, {1, 2, 3}, {4, 5, 6}, {7, 8, 9});
4338

4439
/**
4540
* Vector
4641
*/
4742

4843
DEFINE_FSTR_LOCAL(data1, "Test string #1");
4944
DEFINE_FSTR_LOCAL(data2, "Test string #2");
50-
DEFINE_FSTR_VECTOR(table, FlashString, &data1, &data2);
45+
DEFINE_FSTR_VECTOR(stringVector, FSTR::String, &data1, nullptr, &data2);
5146

47+
DEFINE_FSTR_ARRAY(row1, float, 1, 2, 3);
48+
DEFINE_FSTR_ARRAY(row2, float, 4, 5, 6, 7, 8, 9, 10);
5249
DEFINE_FSTR_VECTOR(arrayVector, FSTR::Array<float>, &row1, &row2);
5350

5451
/**
@@ -57,16 +54,13 @@ DEFINE_FSTR_VECTOR(arrayVector, FSTR::Array<float>, &row1, &row2);
5754

5855
DEFINE_FSTR_MAP(arrayMap, int, FSTR::Array<float>, {1, &row1}, {2, &row2});
5956

60-
// Map of `FlashString => FlashString`
57+
// Map of `String => String`
6158

62-
// Define the keys
6359
DEFINE_FSTR_LOCAL(key1, "key1");
6460
DEFINE_FSTR_LOCAL(key2, "key2");
65-
// Import a couple of files as content
6661
IMPORT_FSTR(FS_content1, COMPONENT_PATH "/files/content1.txt");
6762
IMPORT_FSTR(FS_content2, COMPONENT_PATH "/files/content2.txt");
68-
// Define the mapping
69-
DEFINE_FSTR_MAP(stringMap, FlashString, FlashString, {&key1, &FS_content1}, {&key2, &FS_content2});
63+
DEFINE_FSTR_MAP(stringMap, FSTR::String, FSTR::String, {&key1, &FS_content1}, {&key2, &FS_content2});
7064

71-
DEFINE_FSTR_MAP(enumMap, MapKey, FlashString, {KeyA, &FS_content1}, {KeyB, &FS_content2});
72-
DEFINE_FSTR_MAP(tableMap, FlashString, FSTR::Vector<FlashString>, {&key1, &table});
65+
DEFINE_FSTR_MAP(enumMap, MapKey, FSTR::String, {KeyA, &FS_content1}, {KeyB, &FS_content2});
66+
DEFINE_FSTR_MAP(vectorMap, FSTR::String, FSTR::Vector<FSTR::String>, {&key1, &stringVector});

test/app/data.h

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,33 +38,30 @@ DECLARE_FSTR(externalFSTR1);
3838
* Array
3939
*/
4040

41-
DECLARE_FSTR_ARRAY(fstrArrayDouble, double);
42-
DECLARE_FSTR_ARRAY(fstrArrayint64, int64_t);
41+
DECLARE_FSTR_ARRAY(doubleArray, double);
42+
DECLARE_FSTR_ARRAY(int64Array, int64_t);
4343

4444
using TableRow_Float_3 = FSTR::TableRow<float, 3>;
45-
DECLARE_FSTR_ARRAY(fstrArrayMulti, TableRow_Float_3);
46-
47-
DECLARE_FSTR_VECTOR(arrayVector, FSTR::Array<float>);
48-
DECLARE_FSTR_MAP(arrayMap, int, FSTR::Array<float>);
45+
DECLARE_FSTR_ARRAY(tableArray, TableRow_Float_3);
4946

5047
/**
5148
* Vector
5249
*/
5350

54-
DECLARE_FSTR_VECTOR(table, FlashString);
51+
DECLARE_FSTR_VECTOR(stringVector, FSTR::String);
52+
DECLARE_FSTR_VECTOR(arrayVector, FSTR::Array<float>);
5553

5654
/**
5755
* Map
5856
*/
5957

60-
DECLARE_FSTR_MAP(stringMap, FlashString, FlashString);
61-
6258
enum MapKey : uint8_t {
6359
KeyA = 10,
6460
KeyB = 20,
6561
KeyC = 123,
6662
};
6763

68-
DECLARE_FSTR_MAP(enumMap, MapKey, FlashString);
69-
70-
DECLARE_FSTR_MAP(tableMap, FlashString, FSTR::Vector<FlashString>);
64+
DECLARE_FSTR_MAP(enumMap, MapKey, FSTR::String);
65+
DECLARE_FSTR_MAP(stringMap, FSTR::String, FSTR::String);
66+
DECLARE_FSTR_MAP(arrayMap, int, FSTR::Array<float>);
67+
DECLARE_FSTR_MAP(vectorMap, FSTR::String, FSTR::Vector<FSTR::String>);

test/app/map.cpp

Lines changed: 72 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,39 @@ class MapTest : public TestGroup
3131

3232
void execute() override
3333
{
34-
Serial.println();
35-
Serial.println(_F("Map of FlashString => FlashString"));
34+
TEST_CASE("Map of String => String")
35+
{
36+
stringMap.printTo(Serial);
3637

37-
stringMap.printTo(Serial);
38+
Serial.printf(_F("stringMap[%u]\n"), stringMap.length());
3839

39-
Serial.printf(_F(" stringMap[%u]\n"), stringMap.length());
40+
TEST_CASE("for-loop")
41+
{
42+
for(unsigned i = 0; i < stringMap.length(); ++i) {
43+
auto pair = stringMap.valueAt(i);
44+
Serial.printf(_F(" stringMap[%u]: '%s' => %u chars\n"), i, String(pair.key()).c_str(),
45+
pair.content().length());
46+
}
47+
}
4048

41-
Serial.println(_F(" for-loop:"));
42-
for(unsigned i = 0; i < stringMap.length(); ++i) {
43-
auto pair = stringMap.valueAt(i);
44-
Serial.printf(_F(" stringMap[%u]: '%s' => %u chars\n"), i, String(pair.key()).c_str(),
45-
pair.content().length());
49+
TEST_CASE("lookup")
50+
{
51+
Serial.print(_F("stringMap['key1']: "));
52+
FSTR::println(Serial, stringMap["key1"]);
53+
REQUIRE(stringMap["key1"]);
54+
REQUIRE(!stringMap["key1"].content().isNull());
55+
Serial.print(_F("stringMap['key2']: "));
56+
FSTR::println(Serial, stringMap["key2"]);
57+
REQUIRE(stringMap["key2"]);
58+
REQUIRE(!stringMap["key2"].content().isNull());
59+
Serial.print(_F("stringMap['non-existent']: "));
60+
FSTR::println(Serial, stringMap["key20"]);
61+
REQUIRE(!stringMap["key20"]);
62+
REQUIRE(stringMap["key20"].content().isNull());
63+
}
4664
}
47-
Serial.println(_F(" lookup:"));
48-
Serial.print(_F(" stringMap['key1']: "));
49-
FSTR::println(Serial, stringMap["key1"]);
50-
Serial.print(_F(" stringMap['key2']: "));
51-
FSTR::println(Serial, stringMap["key2"]);
52-
Serial.print(_F(" stringMap['non-existent']: "));
53-
FSTR::println(Serial, stringMap["key20"]);
5465

55-
Serial.println();
56-
Serial.println(_F("Map[0] as integer array"));
66+
TEST_CASE("Map[0] as Array<int64>")
5767
{
5868
auto& arr = stringMap.valueAt(0).content().as<FSTR::Array<int64_t>>();
5969
for(auto v : arr) {
@@ -64,55 +74,57 @@ class MapTest : public TestGroup
6474
// FSTR::println(Serial, arr);
6575
}
6676

67-
//
68-
69-
Serial.println();
70-
Serial.println(_F("Map of enum MapKey => FlashString"));
71-
72-
Serial.printf(_F(" enumMap[%u]\n"), enumMap.length());
77+
TEST_CASE("Map of enum MapKey => String")
78+
{
79+
Serial.printf(_F("enumMap[%u]\n"), enumMap.length());
7380

74-
Serial.println(_F(" for-loop:"));
75-
for(unsigned i = 0; i < enumMap.length(); ++i) {
76-
auto pair = enumMap.valueAt(i);
77-
Serial.printf(_F(" enumMap[%u] = {%s, %u chars}\r\n"), i, String(pair.key()).c_str(),
78-
pair.content().length());
81+
Serial.println(_F(" for-loop:"));
82+
for(unsigned i = 0; i < enumMap.length(); ++i) {
83+
auto pair = enumMap.valueAt(i);
84+
Serial.printf(_F(" enumMap[%u] = {%s, %u chars}\r\n"), i, String(pair.key()).c_str(),
85+
pair.content().length());
86+
}
87+
Serial.println(_F("lookup:"));
88+
Serial.print(_F(" enumMap[A]: "));
89+
FSTR::println(Serial, enumMap[KeyA]);
90+
Serial.print(_F(" enumMap[B]: "));
91+
FSTR::println(Serial, enumMap[KeyB]);
92+
Serial.print(_F(" enumMap[C]: "));
93+
FSTR::println(Serial, enumMap[KeyC]);
7994
}
80-
Serial.println(_F(" lookup:"));
81-
Serial.print(_F(" enumMap[A]: "));
82-
FSTR::println(Serial, enumMap[KeyA]);
83-
Serial.print(_F(" enumMap[B]: "));
84-
FSTR::println(Serial, enumMap[KeyB]);
85-
Serial.print(_F(" enumMap[C]: "));
86-
FSTR::println(Serial, enumMap[KeyC]);
8795

88-
//
89-
90-
Serial.println();
91-
Serial.println(_F("Map of FlashString => Vector<FlashString>"));
96+
TEST_CASE("Map of String => Vector<String>")
97+
{
98+
Serial.printf(_F("vectorMap[%u]\n"), vectorMap.length());
9299

93-
Serial.printf(_F(" tableMap[%u]\n"), tableMap.length());
100+
TEST_CASE("Iterator")
101+
{
102+
for(auto pair : vectorMap) {
103+
Serial.printf(_F(" \"%s\" => %u items\r\n"), String(pair.key()).c_str(), pair.content().length());
104+
}
105+
}
94106

95-
Serial.println(_F(" Iterator:"));
96-
for(auto pair : tableMap) {
97-
Serial.printf(_F(" \"%s\" => %u items\r\n"), String(pair.key()).c_str(), pair.content().length());
98-
}
107+
TEST_CASE("for-loop")
108+
{
109+
for(unsigned i = 0; i < vectorMap.length(); ++i) {
110+
auto pair = vectorMap.valueAt(i);
111+
Serial.printf(_F(" vectorMap[%u] = {'%s', %u items}\r\n"), i, String(pair.key()).c_str(),
112+
pair.content().length());
113+
}
114+
}
99115

100-
Serial.println(_F(" for-loop:"));
101-
for(unsigned i = 0; i < tableMap.length(); ++i) {
102-
auto pair = tableMap.valueAt(i);
103-
Serial.printf(_F(" tableMap[%u] = {'%s', %u items}\r\n"), i, String(pair.key()).c_str(),
104-
pair.content().length());
116+
TEST_CASE("lookup")
117+
{
118+
auto printTableMapEntry = [&](const char* key) {
119+
int i = vectorMap.indexOf(key);
120+
auto pair = vectorMap.valueAt(i);
121+
Serial.printf(_F("vectorMap[\"%s\"] = %s, %u items\n"), key, pair ? "OK" : "NOT FOUND",
122+
pair.content().length());
123+
};
124+
printTableMapEntry("key1");
125+
printTableMapEntry("key2");
126+
}
105127
}
106-
107-
Serial.println(_F(" lookup:"));
108-
auto printTableMapEntry = [&](const char* key) {
109-
int i = tableMap.indexOf(key);
110-
auto pair = tableMap.valueAt(i);
111-
Serial.printf(_F(" tableMap[\"%s\"] = %s, %u items\n"), key, pair ? "OK" : "NOT FOUND",
112-
pair.content().length());
113-
};
114-
printTableMapEntry("key1");
115-
printTableMapEntry("key2");
116128
}
117129
};
118130

test/app/string.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class StringTest : public TestGroup
5555

5656
TEST_CASE("inline")
5757
{
58-
#define INLINE_TEXT "This is an inline\0 FlashString\0\0"
58+
#define INLINE_TEXT "This is an inline\0 Flash String\0\0"
5959
auto str = FS(INLINE_TEXT);
6060
REQUIRE(str == F(INLINE_TEXT));
6161
}
@@ -126,7 +126,7 @@ class StringTest : public TestGroup
126126

127127
TEST_CASE("FSTR_ARRAY")
128128
{
129-
// Define a FlashString and load it into a stack buffer in one operation (non-reusable!)
129+
// Define a String and load it into a stack buffer in one operation (non-reusable!)
130130
Serial.print("> FSTR_ARRAY: ");
131131
FSTR_ARRAY(fsarr, DEMO_TEST_TEXT);
132132
Serial.print('"');
@@ -145,7 +145,7 @@ class StringTest : public TestGroup
145145
char data[5];
146146
} demoArray1 PROGMEM = {{5}, {1, 2, 3, 4, 5}};
147147
// Use a reference for convenience
148-
const auto& fstrArray = demoArray1.object.as<FlashString>();
148+
const auto& fstrArray = demoArray1.object.as<FSTR::String>();
149149
// fstrArray can be now be used in calls to functions, etc.
150150
String arr(fstrArray);
151151
for(unsigned i = 0; i < arr.length(); ++i) {

test/app/vector.cpp

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -31,32 +31,36 @@ class VectorTest : public TestGroup
3131

3232
void execute() override
3333
{
34-
Serial.print("arrayVector: ");
35-
arrayVector.printTo(Serial);
36-
Serial.println();
37-
38-
//
39-
40-
Serial.println();
41-
Serial.println(_F("Vector<String>"));
34+
TEST_CASE("Vector<Array<float>>")
35+
{
36+
arrayVector.printTo(Serial);
37+
Serial.println();
38+
}
4239

43-
table.printTo(Serial);
44-
Serial.println();
40+
TEST_CASE("Vector<String>")
41+
{
42+
stringVector.printTo(Serial);
43+
Serial.println();
4544

46-
Serial.printf(_F("table[%u]\n"), table.length());
45+
Serial.printf(_F("table[%u]\n"), stringVector.length());
4746

48-
Serial.println(_F(" iterator:"));
49-
for(auto& obj : table) {
50-
Serial.println(obj);
51-
Serial.printf(_F(" .length() = %u\n"), obj.length());
52-
}
47+
TEST_CASE("iterator")
48+
{
49+
for(auto& obj : stringVector) {
50+
Serial.println(obj);
51+
Serial.printf(_F(" .length() = %u\n"), obj.length());
52+
}
53+
}
5354

54-
Serial.println(_F(" for-loop:"));
55-
for(unsigned i = 0; i < table.length(); ++i) {
56-
Serial.printf(_F(" fstr[%u] = "), i);
57-
auto& content = table[i];
58-
Serial.println(content);
59-
Serial.printf(_F(" .length() = %u\n"), content.length());
55+
TEST_CASE("for-loop")
56+
{
57+
for(unsigned i = 0; i < stringVector.length(); ++i) {
58+
Serial.printf(_F("fstr[%u] = "), i);
59+
auto& content = stringVector[i];
60+
Serial.println(content);
61+
Serial.printf(_F(" .length() = %u\n"), content.length());
62+
}
63+
}
6064
}
6165
}
6266
};

0 commit comments

Comments
 (0)