AUnit  1.7.1
Unit testing framework for Arduino platforms inspired by ArduinoUnit and Google Test.
Compare.h
Go to the documentation of this file.
1 /*
2 MIT License
3 
4 Copyright (c) 2018 Brian T. Park
5 
6 Permission is hereby granted, free of charge, to any person obtaining a copy
7 of this software and associated documentation files (the "Software"), to deal
8 in the Software without restriction, including without limitation the rights
9 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 copies of the Software, and to permit persons to whom the Software is
11 furnished to do so, subject to the following conditions:
12 
13 The above copyright notice and this permission notice shall be included in all
14 copies or substantial portions of the Software.
15 
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 SOFTWARE.
23 */
24 
25 // Significant portions of the design and implementation of this file came from
26 // https://github.com/mmurdoch/arduinounit/blob/master/src/ArduinoUnitUtility/Compare.h
27 
70 #ifndef AUNIT_COMPARE_H
71 #define AUNIT_COMPARE_H
72 
73 #include <stddef.h> // size_t
74 
75 class String;
76 class __FlashStringHelper;
77 
78 namespace aunit {
79 namespace internal {
80 
81 //---------------------------------------------------------------------------
82 // compareString()
83 //---------------------------------------------------------------------------
84 
85 int compareString(const char* a, const char* b);
86 
87 int compareString(const char* a, const String& b);
88 
89 int compareString(const char* a, const __FlashStringHelper* b);
90 
91 int compareString(const String& a, const char* b);
92 
93 int compareString(const String& a, const String& b);
94 
95 int compareString(const String& a, const __FlashStringHelper* b);
96 
97 int compareString(const __FlashStringHelper* a, const char* b);
98 
99 int compareString(const __FlashStringHelper* a, const __FlashStringHelper* b);
100 
101 int compareString(const __FlashStringHelper* a, const String& b);
102 
103 //---------------------------------------------------------------------------
104 // compareStringCase() - case insensitive versions of compareString()
105 //---------------------------------------------------------------------------
106 
107 int compareStringCase(const char* a, const char* b);
108 
109 int compareStringCase(const char* a, const String& b);
110 
111 int compareStringCase(const char* a, const __FlashStringHelper* b);
112 
113 int compareStringCase(const String& a, const char* b);
114 
115 int compareStringCase(const String& a, const String& b);
116 
117 int compareStringCase(const String& a, const __FlashStringHelper* b);
118 
119 int compareStringCase(const __FlashStringHelper* a, const char* b);
120 
121 int compareStringCase(const __FlashStringHelper* a,
122  const __FlashStringHelper* b);
123 
124 int compareStringCase(const __FlashStringHelper* a, const String& b);
125 
126 //---------------------------------------------------------------------------
127 // compareStringN()
128 //
129 // These functions are used to implement the TestRunner::exclude() and
130 // TestRunner::include() features.
131 //---------------------------------------------------------------------------
132 
134 int compareStringN(const char* a, const char* b, size_t n);
135 
137 int compareStringN(const char* a, const __FlashStringHelper* b, size_t n);
138 
140 int compareStringN(const __FlashStringHelper* a, const char* b, size_t n);
141 
143 int compareStringN(const __FlashStringHelper* a, const __FlashStringHelper* b,
144  size_t n);
145 
146 //---------------------------------------------------------------------------
147 // compareSubstring(haystack, needle)
148 //---------------------------------------------------------------------------
149 
150 bool compareSubstring(const char* haystack, const char* needle);
151 
152 bool compareSubstring(const char* haystack, const String& needle);
153 
154 bool compareSubstring(const char* haystack, const __FlashStringHelper* needle);
155 
156 bool compareSubstring(const String& haystack, const char* needle);
157 
158 bool compareSubstring(const String& haystack, const String& needle);
159 
160 bool compareSubstring(
161  const String& haystack, const __FlashStringHelper* needle);
162 
169 bool compareSubstring(
170  const __FlashStringHelper* haystack,
171  const char* needle);
172 
173 bool compareSubstring(
174  const __FlashStringHelper* haystack,
175  const String& needle);
176 
183 bool compareSubstring(
184  const __FlashStringHelper* haystack,
185  const __FlashStringHelper* needle);
186 
187 //---------------------------------------------------------------------------
188 // compareEqual()
189 //---------------------------------------------------------------------------
190 
191 bool compareEqual(bool a, bool b);
192 
193 bool compareEqual(char a, char b);
194 
195 bool compareEqual(int a, int b);
196 
197 bool compareEqual(unsigned int a, unsigned int b);
198 
199 bool compareEqual(long a, long b);
200 
201 bool compareEqual(unsigned long a, unsigned long b);
202 
203 bool compareEqual(long long a, long long b);
204 
205 bool compareEqual(unsigned long long a, unsigned long long b);
206 
207 bool compareEqual(double a, double b);
208 
209 bool compareEqual(const void* a, const void* b);
210 
211 bool compareEqual(const char* a, const char* b);
212 
213 bool compareEqual(const char* a, const String& b);
214 
215 bool compareEqual(const char* a, const __FlashStringHelper* b);
216 
217 bool compareEqual(const __FlashStringHelper* a, const char* b);
218 
219 bool compareEqual( const __FlashStringHelper* a, const __FlashStringHelper* b);
220 
221 bool compareEqual(const __FlashStringHelper* a, const String& b);
222 
223 bool compareEqual(const String& a, const char* b);
224 
225 bool compareEqual(const String& a, const String& b);
226 
227 bool compareEqual(const String& a, const __FlashStringHelper* b);
228 
229 //---------------------------------------------------------------------------
230 // compareLess()
231 //---------------------------------------------------------------------------
232 
233 bool compareLess(bool a, bool b);
234 
235 bool compareLess(char a, char b);
236 
237 bool compareLess(int a, int b);
238 
239 bool compareLess(unsigned int a, unsigned int b);
240 
241 bool compareLess(long a, long b);
242 
243 bool compareLess(unsigned long a, unsigned long b);
244 
245 bool compareLess(long long a, long long b);
246 
247 bool compareLess(unsigned long long a, unsigned long long b);
248 
249 bool compareLess(double a, double b);
250 
251 bool compareLess(const char* a, const char* b);
252 
253 bool compareLess(const char* a, const String& b);
254 
255 bool compareLess(const char* a, const __FlashStringHelper* b);
256 
257 bool compareLess(const __FlashStringHelper* a, const char* b);
258 
259 bool compareLess(const __FlashStringHelper* a, const __FlashStringHelper* b);
260 
261 bool compareLess(const __FlashStringHelper* a, const String& b);
262 
263 bool compareLess(const String& a, const char* b);
264 
265 bool compareLess(const String& a, const String& b);
266 
267 bool compareLess(const String& a, const __FlashStringHelper* b);
268 
269 //---------------------------------------------------------------------------
270 // compareMore()
271 //---------------------------------------------------------------------------
272 
273 bool compareMore(bool a, bool b);
274 
275 bool compareMore(char a, char b);
276 
277 bool compareMore(int a, int b);
278 
279 bool compareMore(unsigned int a, unsigned int b);
280 
281 bool compareMore(long a, long b);
282 
283 bool compareMore(unsigned long a, unsigned long b);
284 
285 bool compareMore(long long a, long long b);
286 
287 bool compareMore(unsigned long long a, unsigned long long b);
288 
289 bool compareMore(double a, double b);
290 
291 bool compareMore(const char* a, const char* b);
292 
293 bool compareMore(const char* a, const String& b);
294 
295 bool compareMore(const char* a, const __FlashStringHelper* b);
296 
297 bool compareMore(const __FlashStringHelper* a, const char* b);
298 
299 bool compareMore(const __FlashStringHelper* a, const __FlashStringHelper* b);
300 
301 bool compareMore(const __FlashStringHelper* a, const String& b);
302 
303 bool compareMore(const String& a, const char* b);
304 
305 bool compareMore(const String& a, const String& b);
306 
307 bool compareMore(const String& a, const __FlashStringHelper* b);
308 
309 //---------------------------------------------------------------------------
310 // compareLessOrEqual
311 //---------------------------------------------------------------------------
312 
313 bool compareLessOrEqual(bool a, bool b);
314 
315 bool compareLessOrEqual(char a, char b);
316 
317 bool compareLessOrEqual(int a, int b);
318 
319 bool compareLessOrEqual(unsigned int a, unsigned int b);
320 
321 bool compareLessOrEqual(long a, long b);
322 
323 bool compareLessOrEqual(unsigned long a, unsigned long b);
324 
325 bool compareLessOrEqual(long long a, long long b);
326 
327 bool compareLessOrEqual(unsigned long long a, unsigned long long b);
328 
329 bool compareLessOrEqual(double a, double b);
330 
331 bool compareLessOrEqual(const char* a, const char* b);
332 
333 bool compareLessOrEqual(const char* a, const String& b);
334 
335 bool compareLessOrEqual(const char* a, const __FlashStringHelper* b);
336 
337 bool compareLessOrEqual(const __FlashStringHelper* a, const char* b);
338 
339 bool compareLessOrEqual(
340  const __FlashStringHelper* a, const __FlashStringHelper* b);
341 
342 bool compareLessOrEqual(const __FlashStringHelper* a, const String& b);
343 
344 bool compareLessOrEqual(const String& a, const char* b);
345 
346 bool compareLessOrEqual(const String& a, const String& b);
347 
348 bool compareLessOrEqual(const String& a, const __FlashStringHelper* b);
349 
350 //---------------------------------------------------------------------------
351 // compareMoreOrEqual
352 //---------------------------------------------------------------------------
353 
354 bool compareMoreOrEqual(bool a, bool b);
355 
356 bool compareMoreOrEqual(char a, char b);
357 
358 bool compareMoreOrEqual(int a, int b);
359 
360 bool compareMoreOrEqual(unsigned int a, unsigned int b);
361 
362 bool compareMoreOrEqual(long a, long b);
363 
364 bool compareMoreOrEqual(unsigned long a, unsigned long b);
365 
366 bool compareMoreOrEqual(long long a, long long b);
367 
368 bool compareMoreOrEqual(unsigned long long a, unsigned long long b);
369 
370 bool compareMoreOrEqual(double a, double b);
371 
372 bool compareMoreOrEqual(const char* a, const char* b);
373 
374 bool compareMoreOrEqual(const char* a, const String& b);
375 
376 bool compareMoreOrEqual(const char* a, const __FlashStringHelper* b);
377 
378 bool compareMoreOrEqual(const __FlashStringHelper* a, const char* b);
379 
380 bool compareMoreOrEqual(
381  const __FlashStringHelper* a, const __FlashStringHelper* b);
382 
383 bool compareMoreOrEqual(const __FlashStringHelper* a, const String& b);
384 
385 bool compareMoreOrEqual(const String& a, const char* b);
386 
387 bool compareMoreOrEqual(const String& a, const String& b);
388 
389 bool compareMoreOrEqual(const String& a, const __FlashStringHelper* b);
390 
391 //---------------------------------------------------------------------------
392 // compareNotEqual
393 //---------------------------------------------------------------------------
394 
395 bool compareNotEqual(bool a, bool b);
396 
397 bool compareNotEqual(char a, char b);
398 
399 bool compareNotEqual(int a, int b);
400 
401 bool compareNotEqual(unsigned int a, unsigned int b);
402 
403 bool compareNotEqual(long a, long b);
404 
405 bool compareNotEqual(unsigned long a, unsigned long b);
406 
407 bool compareNotEqual(long long a, long long b);
408 
409 bool compareNotEqual(unsigned long long a, unsigned long long b);
410 
411 bool compareNotEqual(double a, double b);
412 
413 bool compareNotEqual(const void* a, const void* b);
414 
415 bool compareNotEqual(const char* a, const char* b);
416 
417 bool compareNotEqual(const char* a, const String& b);
418 
419 bool compareNotEqual(const char* a, const __FlashStringHelper* b);
420 
421 bool compareNotEqual(const __FlashStringHelper* a, const char* b);
422 
423 bool compareNotEqual(
424  const __FlashStringHelper* a, const __FlashStringHelper* b);
425 
426 bool compareNotEqual(const __FlashStringHelper* a, const String& b);
427 
428 bool compareNotEqual(const String& a, const char* b);
429 
430 bool compareNotEqual(const String& a, const String& b);
431 
432 bool compareNotEqual(const String& a, const __FlashStringHelper* b);
433 
434 //---------------------------------------------------------------------------
435 // compareStringCaseEqual
436 //---------------------------------------------------------------------------
437 
438 bool compareStringCaseEqual(const char* a, const char* b);
439 
440 bool compareStringCaseEqual(const char* a, const String& b);
441 
442 bool compareStringCaseEqual(const char* a, const __FlashStringHelper* b);
443 
444 bool compareStringCaseEqual(const __FlashStringHelper* a, const char* b);
445 
446 bool compareStringCaseEqual( const __FlashStringHelper* a,
447  const __FlashStringHelper* b);
448 
449 bool compareStringCaseEqual(const __FlashStringHelper* a, const String& b);
450 
451 bool compareStringCaseEqual(const String& a, const char* b);
452 
453 bool compareStringCaseEqual(const String& a, const String& b);
454 
455 bool compareStringCaseEqual(const String& a, const __FlashStringHelper* b);
456 
457 //---------------------------------------------------------------------------
458 // compareStringCaseNotEqual
459 //---------------------------------------------------------------------------
460 
461 bool compareStringCaseNotEqual(const char* a, const char* b);
462 
463 bool compareStringCaseNotEqual(const char* a, const String& b);
464 
465 bool compareStringCaseNotEqual(const char* a, const __FlashStringHelper* b);
466 
467 bool compareStringCaseNotEqual(const __FlashStringHelper* a, const char* b);
468 
469 bool compareStringCaseNotEqual( const __FlashStringHelper* a,
470  const __FlashStringHelper* b);
471 
472 bool compareStringCaseNotEqual(const __FlashStringHelper* a, const String& b);
473 
474 bool compareStringCaseNotEqual(const String& a, const char* b);
475 
476 bool compareStringCaseNotEqual(const String& a, const String& b);
477 
478 bool compareStringCaseNotEqual(const String& a, const __FlashStringHelper* b);
479 
480 //---------------------------------------------------------------------------
481 // compareNear
482 //---------------------------------------------------------------------------
483 
484 bool compareNear(int a, int b, int error);
485 
486 bool compareNear(unsigned int a, unsigned int b, unsigned int error);
487 
488 bool compareNear(long a, long b, long error);
489 
490 bool compareNear(unsigned long a, unsigned long b, unsigned long error);
491 
492 bool compareNear(double a, double b, double error);
493 
494 //---------------------------------------------------------------------------
495 // compareNotNear
496 //---------------------------------------------------------------------------
497 
498 bool compareNotNear(int a, int b, int error);
499 
500 bool compareNotNear(unsigned int a, unsigned int b, unsigned int error);
501 
502 bool compareNotNear(long a, long b, long error);
503 
504 bool compareNotNear(unsigned long a, unsigned long b, unsigned long error);
505 
506 bool compareNotNear(double a, double b, double error);
507 
508 }
509 }
510 
511 #endif