Skip to content

Commit b5c537c

Browse files
committed
add tests, update version
1 parent d6c6900 commit b5c537c

File tree

19 files changed

+2109
-15
lines changed

19 files changed

+2109
-15
lines changed

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ html
1212
# VSCode
1313
.vscode
1414

15-
# PlatformIO for testing
15+
# PlatformIO
1616
.pio
17-
test
1817
lib
1918
src/main.cpp
2019
include

Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = "Arduino List Library"
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = 2.1.4
41+
PROJECT_NUMBER = 3.0.0-alpha1
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

keywords.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,13 @@ addAll KEYWORD2
2121
addFirst KEYWORD2
2222
addLast KEYWORD2
2323
clear KEYWORD2
24-
getValue KEYWORD2
25-
getPointer KEYWORD2
24+
get KEYWORD2
25+
getMutableValue KEYWORD2
2626
remove KEYWORD2
2727
removeFirst KEYWORD2
2828
removeLast KEYWORD2
2929
removeAll KEYWORD2
3030
getSize KEYWORD2
3131
isMutable KEYWORD2
3232
isEmpty KEYWORD2
33-
toArray KEYWORD2
34-
fromArray KEYWORD2
35-
sort KEYWORD2
3633
equals KEYWORD2

library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "List",
3-
"version": "2.1.4",
3+
"version": "3.0.0",
44
"description": "The Ultimate Collection of Lists. This library extends the Arduino ecosystem with the functionality of several easy-to-use lists for numerous purposes.",
55
"keywords": [
66
"arduino",

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=List
2-
version=2.1.4
2+
version=3.0.0
33
author=Niklas Kaaf <[email protected]>
44
maintainer=Niklas Kaaf <[email protected]>
55
sentence=The Ultimate Collection of Lists

src/AbstractList.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828

2929
#include <stdlib.h>
3030

31-
// TODO: update keywords
32-
3331
/*!
3432
* @brief Abstract class from which all lists can be derived.
3533
*

src/DoubleLinkedList.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* easy-to-use list implementations. They are specially designed and optimized
66
* for different purposes.
77
*
8-
* Copyright (C) 2022 Niklas Kaaf
8+
* Copyright (C) 2022-2023 Niklas Kaaf
99
*
1010
* This library is free software; you can redistribute it and/or
1111
* modify it under the terms of the GNU Lesser General Public

src/List.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*
2323
* This file is part of the List library.
2424
*
25-
* Copyright (C) 2021-2022 Niklas Kaaf
25+
* Copyright (C) 2021-2023 Niklas Kaaf
2626
*
2727
* This library is free software; you can redistribute it and/or
2828
* modify it under the terms of the GNU Lesser General Public

src/SingleLinkedList.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* easy-to-use list implementations. They are specially designed and optimized
66
* for different purposes.
77
*
8-
* Copyright (C) 2021-2022 Niklas Kaaf
8+
* Copyright (C) 2021-2023 Niklas Kaaf
99
*
1010
* This library is free software; you can redistribute it and/or
1111
* modify it under the terms of the GNU Lesser General Public
Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,258 @@
1+
#include <Arduino.h>
2+
3+
#include "unity.h"
4+
5+
#include <List.hpp>
6+
7+
// ---------- In different scope (ds) ---------- //
8+
9+
void add_ds_rvalue_primitive(void)
10+
{
11+
List<int> list;
12+
13+
{
14+
list + 1;
15+
}
16+
TEST_ASSERT_EQUAL_INT(1, list[0]);
17+
TEST_ASSERT_EQUAL_INT(1, list.getSize());
18+
19+
{
20+
list + 2;
21+
}
22+
TEST_ASSERT_EQUAL_INT(1, list[0]);
23+
TEST_ASSERT_EQUAL_INT(2, list[1]);
24+
TEST_ASSERT_EQUAL_INT(2, list.getSize());
25+
}
26+
27+
void add_ds_lvalue_primitive(void)
28+
{
29+
List<int> list;
30+
31+
{
32+
int a = 1;
33+
list + a;
34+
35+
TEST_ASSERT_EQUAL_INT(1, a);
36+
a = 2;
37+
}
38+
TEST_ASSERT_EQUAL_INT(1, list[0]);
39+
TEST_ASSERT_EQUAL_INT(1, list.getSize());
40+
41+
{
42+
int b = 2;
43+
list + b;
44+
45+
TEST_ASSERT_EQUAL_INT(2, b);
46+
b = 3;
47+
}
48+
TEST_ASSERT_EQUAL_INT(1, list[0]);
49+
TEST_ASSERT_EQUAL_INT(2, list[1]);
50+
TEST_ASSERT_EQUAL_INT(2, list.getSize());
51+
}
52+
53+
void add_ds_rvalue_class(void)
54+
{
55+
List<String> list;
56+
57+
{
58+
list + "1";
59+
}
60+
TEST_ASSERT_EQUAL_STRING("1", list[0].c_str());
61+
TEST_ASSERT_EQUAL_INT(1, list.getSize());
62+
63+
{
64+
list + "2";
65+
}
66+
TEST_ASSERT_EQUAL_STRING("1", list[0].c_str());
67+
TEST_ASSERT_EQUAL_STRING("2", list[1].c_str());
68+
TEST_ASSERT_EQUAL_INT(2, list.getSize());
69+
}
70+
71+
void add_ds_lvalue_class(void)
72+
{
73+
List<String> list;
74+
75+
{
76+
String a = "1";
77+
list + a;
78+
79+
TEST_ASSERT_EQUAL_STRING("1", a.c_str());
80+
a = "2";
81+
}
82+
TEST_ASSERT_EQUAL_STRING("1", list[0].c_str());
83+
TEST_ASSERT_EQUAL_INT(1, list.getSize());
84+
85+
{
86+
String b = "2";
87+
list + b;
88+
89+
TEST_ASSERT_EQUAL_STRING("2", b.c_str());
90+
b = "3";
91+
}
92+
TEST_ASSERT_EQUAL_STRING("1", list[0].c_str());
93+
TEST_ASSERT_EQUAL_STRING("2", list[1].c_str());
94+
TEST_ASSERT_EQUAL_INT(2, list.getSize());
95+
}
96+
97+
// ---------- In same scope (ss) ---------- //
98+
99+
void add_ss_rvalue_primitive(void)
100+
{
101+
List<int> list;
102+
103+
list + 1;
104+
TEST_ASSERT_EQUAL_INT(1, list[0]);
105+
TEST_ASSERT_EQUAL_INT(1, list.getSize());
106+
107+
list + 2;
108+
TEST_ASSERT_EQUAL_INT(1, list[0]);
109+
TEST_ASSERT_EQUAL_INT(2, list[1]);
110+
TEST_ASSERT_EQUAL_INT(2, list.getSize());
111+
}
112+
113+
void add_ss_lvalue_primitive(void)
114+
{
115+
List<int> list;
116+
117+
int a = 1, b = 2;
118+
119+
list + a;
120+
121+
TEST_ASSERT_EQUAL_INT(1, a);
122+
a = 2;
123+
TEST_ASSERT_EQUAL_INT(1, list[0]);
124+
TEST_ASSERT_EQUAL_INT(1, list.getSize());
125+
126+
list + b;
127+
128+
TEST_ASSERT_EQUAL_INT(2, b);
129+
b = 3;
130+
TEST_ASSERT_EQUAL_INT(1, list[0]);
131+
TEST_ASSERT_EQUAL_INT(2, list[1]);
132+
TEST_ASSERT_EQUAL_INT(2, list.getSize());
133+
}
134+
135+
void add_ss_rvalue_class(void)
136+
{
137+
List<String> list;
138+
139+
list + "1";
140+
TEST_ASSERT_EQUAL_STRING("1", list[0].c_str());
141+
TEST_ASSERT_EQUAL_INT(1, list.getSize());
142+
143+
list + "2";
144+
TEST_ASSERT_EQUAL_STRING("1", list[0].c_str());
145+
TEST_ASSERT_EQUAL_STRING("2", list[1].c_str());
146+
TEST_ASSERT_EQUAL_INT(2, list.getSize());
147+
}
148+
149+
void add_ss_lvalue_class(void)
150+
{
151+
List<String> list;
152+
153+
String a = "1", b = "2";
154+
155+
list + a;
156+
157+
TEST_ASSERT_EQUAL_STRING("1", a.c_str());
158+
a = "2";
159+
TEST_ASSERT_EQUAL_STRING("1", list[0].c_str());
160+
TEST_ASSERT_EQUAL_INT(1, list.getSize());
161+
162+
list + b;
163+
164+
TEST_ASSERT_EQUAL_STRING("2", b.c_str());
165+
b = "3";
166+
TEST_ASSERT_EQUAL_STRING("1", list[0].c_str());
167+
TEST_ASSERT_EQUAL_STRING("2", list[1].c_str());
168+
TEST_ASSERT_EQUAL_INT(2, list.getSize());
169+
}
170+
171+
// ---------- void operator+(AbstractList<T> &list) ---------- //
172+
173+
void addAll_primitive(void)
174+
{
175+
List<int> fromList;
176+
List<int> toList;
177+
178+
toList.add(1);
179+
toList.add(2);
180+
toList.add(3);
181+
fromList.add(4);
182+
fromList.add(5);
183+
fromList.add(6);
184+
185+
toList + fromList;
186+
187+
TEST_ASSERT_EQUAL_INT(4, fromList[0]);
188+
TEST_ASSERT_EQUAL_INT(5, fromList[1]);
189+
TEST_ASSERT_EQUAL_INT(6, fromList[2]);
190+
TEST_ASSERT_EQUAL_INT(3, fromList.getSize());
191+
192+
fromList.clear();
193+
194+
TEST_ASSERT_EQUAL_INT(1, toList[0]);
195+
TEST_ASSERT_EQUAL_INT(2, toList[1]);
196+
TEST_ASSERT_EQUAL_INT(3, toList[2]);
197+
TEST_ASSERT_EQUAL_INT(4, toList[3]);
198+
TEST_ASSERT_EQUAL_INT(5, toList[4]);
199+
TEST_ASSERT_EQUAL_INT(6, toList[5]);
200+
TEST_ASSERT_EQUAL_INT(6, toList.getSize());
201+
}
202+
203+
void addAll_class(void)
204+
{
205+
List<String> fromList;
206+
List<String> toList;
207+
208+
toList.add("1");
209+
toList.add("2");
210+
toList.add("3");
211+
fromList.add("4");
212+
fromList.add("5");
213+
fromList.add("6");
214+
215+
toList + fromList;
216+
217+
TEST_ASSERT_EQUAL_STRING("4", fromList[0].c_str());
218+
TEST_ASSERT_EQUAL_STRING("5", fromList[1].c_str());
219+
TEST_ASSERT_EQUAL_STRING("6", fromList[2].c_str());
220+
TEST_ASSERT_EQUAL_INT(3, fromList.getSize());
221+
222+
fromList.clear();
223+
224+
TEST_ASSERT_EQUAL_STRING("1", toList[0].c_str());
225+
TEST_ASSERT_EQUAL_STRING("2", toList[1].c_str());
226+
TEST_ASSERT_EQUAL_STRING("3", toList[2].c_str());
227+
TEST_ASSERT_EQUAL_STRING("4", toList[3].c_str());
228+
TEST_ASSERT_EQUAL_STRING("5", toList[4].c_str());
229+
TEST_ASSERT_EQUAL_STRING("6", toList[5].c_str());
230+
TEST_ASSERT_EQUAL_INT(6, toList.getSize());
231+
}
232+
233+
void setup()
234+
{
235+
UNITY_BEGIN();
236+
237+
// different scope tests
238+
RUN_TEST(add_ds_rvalue_primitive);
239+
RUN_TEST(add_ds_lvalue_primitive);
240+
RUN_TEST(add_ds_rvalue_class);
241+
RUN_TEST(add_ds_lvalue_class);
242+
243+
// same scope tests
244+
RUN_TEST(add_ss_rvalue_primitive);
245+
RUN_TEST(add_ss_lvalue_primitive);
246+
RUN_TEST(add_ss_rvalue_class);
247+
RUN_TEST(add_ss_lvalue_class);
248+
249+
// ---------- void operator+(AbstractList<T> &list) ---------- //
250+
RUN_TEST(addAll_primitive);
251+
RUN_TEST(addAll_class);
252+
253+
UNITY_END();
254+
}
255+
256+
void loop()
257+
{
258+
}

0 commit comments

Comments
 (0)