134 int compareString(
const char* a,
const char* b) {
135 if (a == b) {
return 0; }
136 if (a ==
nullptr) {
return -1; }
137 if (b ==
nullptr) {
return 1; }
141 int compareString(
const char* a,
const String& b) {
142 if (a ==
nullptr) {
return -1; }
143 return strcmp(a, b.c_str());
146 int compareString(
const char* a,
const __FlashStringHelper* b) {
147 if (a == (
const char*) b) {
return 0; }
148 if (a ==
nullptr) {
return -1; }
149 if (b ==
nullptr) {
return 1; }
150 return strcmp_P(a, (
const char*) b);
153 int compareString(
const String& a,
const char* b) {
154 return -compareString(b, a);
157 int compareString(
const String& a,
const String& b) {
158 return strcmp(a.c_str(), b.c_str());
161 int compareString(
const String& a,
const __FlashStringHelper* b) {
162 if (b ==
nullptr) {
return 1; }
163 return strcmp_P(a.c_str(), (
const char*) b);
166 int compareString(
const __FlashStringHelper* a,
const char* b) {
167 return -compareString(b, a);
170 int compareString(
const __FlashStringHelper* a,
const String& b) {
171 return -compareString(b, a);
177 int compareString(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
178 if (a == b) {
return 0; }
179 if (a ==
nullptr) {
return -1; }
180 if (b ==
nullptr) {
return 1; }
181 const char* aa =
reinterpret_cast<const char*
>(a);
182 const char* bb =
reinterpret_cast<const char*
>(b);
185 uint8_t ca = pgm_read_byte(aa);
186 uint8_t cb = pgm_read_byte(bb);
187 if (ca != cb)
return (
int) ca - (int) cb;
188 if (ca ==
'\0')
return 0;
198 int compareStringCase(
const char* a,
const char* b) {
199 if (a == b) {
return 0; }
200 if (a ==
nullptr) {
return -1; }
201 if (b ==
nullptr) {
return 1; }
202 return strcasecmp(a, b);
205 int compareStringCase(
const char* a,
const String& b) {
206 if (a ==
nullptr) {
return -1; }
207 return strcasecmp(a, b.c_str());
210 int compareStringCase(
const char* a,
const __FlashStringHelper* b) {
211 if (a == (
const char*) b) {
return 0; }
212 if (a ==
nullptr) {
return -1; }
213 if (b ==
nullptr) {
return 1; }
214 return strcasecmp_P(a, (
const char*) b);
217 int compareStringCase(
const String& a,
const char* b) {
218 return -compareStringCase(b, a);
221 int compareStringCase(
const String& a,
const String& b) {
222 return strcasecmp(a.c_str(), b.c_str());
225 int compareStringCase(
const String& a,
const __FlashStringHelper* b) {
226 if (b ==
nullptr) {
return 1; }
227 return strcasecmp_P(a.c_str(), (
const char*) b);
230 int compareStringCase(
const __FlashStringHelper* a,
const char* b) {
231 return -compareStringCase(b, a);
234 int compareStringCase(
const __FlashStringHelper* a,
const String& b) {
235 return -compareStringCase(b, a);
241 int compareStringCase(
const __FlashStringHelper* a,
242 const __FlashStringHelper* b) {
243 if (a == b) {
return 0; }
244 if (a ==
nullptr) {
return -1; }
245 if (b ==
nullptr) {
return 1; }
246 const char* aa =
reinterpret_cast<const char*
>(a);
247 const char* bb =
reinterpret_cast<const char*
>(b);
250 uint8_t ca = pgm_read_byte(aa);
251 uint8_t cb = pgm_read_byte(bb);
252 uint8_t la = tolower(ca);
253 uint8_t lb = tolower(cb);
254 if (la != lb)
return (
int) la - (int) lb;
255 if (ca ==
'\0')
return 0;
269 int compareStringN(
const char* a,
const char* b,
size_t n) {
270 if (a == b) {
return 0; }
271 if (a ==
nullptr) {
return -1; }
272 if (b ==
nullptr) {
return 1; }
273 return strncmp(a, b, n);
276 int compareStringN(
const char* a,
const __FlashStringHelper* b,
size_t n) {
277 if (a == (
const char*) b) {
return 0; }
278 if (a ==
nullptr) {
return -1; }
279 if (b ==
nullptr) {
return 1; }
280 return strncmp_P(a, (
const char*) b, n);
283 int compareStringN(
const __FlashStringHelper* a,
const char* b,
size_t n) {
284 return -compareStringN(b, a, n);
290 int compareStringN(
const __FlashStringHelper* a,
const __FlashStringHelper* b,
292 if (a == b) {
return 0; }
293 if (a ==
nullptr) {
return -1; }
294 if (b ==
nullptr) {
return 1; }
295 const char* aa =
reinterpret_cast<const char*
>(a);
296 const char* bb =
reinterpret_cast<const char*
>(b);
299 uint8_t ca = pgm_read_byte(aa);
300 uint8_t cb = pgm_read_byte(bb);
301 if (ca != cb)
return (
int) ca - (int) cb;
302 if (ca ==
'\0')
return 0;
314 bool compareEqual(
bool a,
bool b) {
318 bool compareEqual(
char a,
char b) {
322 bool compareEqual(
int a,
int b) {
326 bool compareEqual(
unsigned int a,
unsigned int b) {
330 bool compareEqual(
long a,
long b) {
334 bool compareEqual(
unsigned long a,
unsigned long b) {
338 bool compareEqual(
double a,
double b) {
342 bool compareEqual(
const char* a,
const char* b) {
343 return compareString(a, b) == 0;
346 bool compareEqual(
const char* a,
const String& b) {
347 return compareString(a, b) == 0;
350 bool compareEqual(
const char* a,
const __FlashStringHelper* b) {
351 return compareString(a, b) == 0;
354 bool compareEqual(
const __FlashStringHelper* a,
const char* b) {
355 return compareString(a, b) == 0;
358 bool compareEqual(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
359 return compareString(a, b) == 0;
362 bool compareEqual(
const __FlashStringHelper* a,
const String& b) {
363 return compareString(a, b) == 0;
366 bool compareEqual(
const String& a,
const char* b) {
367 return compareString(a, b) == 0;
370 bool compareEqual(
const String& a,
const String& b) {
371 return compareString(a, b) == 0;
374 bool compareEqual(
const String& a,
const __FlashStringHelper* b) {
375 return compareString(a, b) == 0;
382 bool compareLess(
bool a,
bool b) {
386 bool compareLess(
char a,
char b) {
390 bool compareLess(
int a,
int b) {
394 bool compareLess(
unsigned int a,
unsigned int b) {
398 bool compareLess(
long a,
long b) {
402 bool compareLess(
unsigned long a,
unsigned long b) {
406 bool compareLess(
double a,
double b) {
410 bool compareLess(
const char* a,
const char* b) {
411 return compareString(a, b) < 0;
414 bool compareLess(
const char* a,
const String& b) {
415 return compareString(a, b) < 0;
418 bool compareLess(
const char* a,
const __FlashStringHelper* b) {
419 return compareString(a, b) < 0;
422 bool compareLess(
const __FlashStringHelper* a,
const char* b) {
423 return compareString(a, b) < 0;
427 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
428 return compareString(a, b) < 0;
431 bool compareLess(
const __FlashStringHelper* a,
const String& b) {
432 return compareString(a, b) < 0;
435 bool compareLess(
const String& a,
const char* b) {
436 return compareString(a, b) < 0;
439 bool compareLess(
const String& a,
const String& b) {
440 return compareString(a, b) < 0;
443 bool compareLess(
const String& a,
const __FlashStringHelper* b) {
444 return compareString(a, b) < 0;
451 bool compareMore(
bool a,
bool b) {
455 bool compareMore(
char a,
char b) {
459 bool compareMore(
int a,
int b) {
463 bool compareMore(
unsigned int a,
unsigned int b) {
467 bool compareMore(
long a,
long b) {
471 bool compareMore(
unsigned long a,
unsigned long b) {
475 bool compareMore(
double a,
double b) {
479 bool compareMore(
const char* a,
const char* b) {
480 return compareString(a, b) > 0;
483 bool compareMore(
const char* a,
const String& b) {
484 return compareString(a, b) > 0;
487 bool compareMore(
const char* a,
const __FlashStringHelper* b) {
488 return compareString(a, b) > 0;
491 bool compareMore(
const __FlashStringHelper* a,
const char* b) {
492 return compareString(a, b) > 0;
495 bool compareMore(
const __FlashStringHelper* a,
const __FlashStringHelper* b) {
496 return compareString(a, b) > 0;
499 bool compareMore(
const __FlashStringHelper* a,
const String& b) {
500 return compareString(a, b) > 0;
503 bool compareMore(
const String& a,
const char* b) {
504 return compareString(a, b) > 0;
507 bool compareMore(
const String& a,
const String& b) {
508 return compareString(a, b) > 0;
511 bool compareMore(
const String& a,
const __FlashStringHelper* b) {
512 return compareString(a, b) > 0;
519 bool compareLessOrEqual(
bool a,
bool b) {
523 bool compareLessOrEqual(
char a,
char b) {
527 bool compareLessOrEqual(
int a,
int b) {
531 bool compareLessOrEqual(
unsigned int a,
unsigned int b) {
535 bool compareLessOrEqual(
long a,
long b) {
539 bool compareLessOrEqual(
unsigned long a,
unsigned long b) {
543 bool compareLessOrEqual(
double a,
double b) {
547 bool compareLessOrEqual(
const char* a,
const char* b) {
548 return compareString(a, b) <= 0;
551 bool compareLessOrEqual(
const char* a,
const String& b) {
552 return compareString(a, b) <= 0;
555 bool compareLessOrEqual(
const char* a,
const __FlashStringHelper* b) {
556 return compareString(a, b) <= 0;
559 bool compareLessOrEqual(
const __FlashStringHelper* a,
const char* b) {
560 return compareString(a, b) <= 0;
563 bool compareLessOrEqual(
564 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
565 return compareString(a, b) <= 0;
568 bool compareLessOrEqual(
const __FlashStringHelper* a,
const String& b) {
569 return compareString(a, b) <= 0;
572 bool compareLessOrEqual(
const String& a,
const char* b) {
573 return compareString(a, b) <= 0;
576 bool compareLessOrEqual(
const String& a,
const String& b) {
577 return compareString(a, b) <= 0;
580 bool compareLessOrEqual(
const String& a,
const __FlashStringHelper* b) {
581 return compareString(a, b) <= 0;
588 bool compareMoreOrEqual(
bool a,
bool b) {
592 bool compareMoreOrEqual(
char a,
char b) {
596 bool compareMoreOrEqual(
int a,
int b) {
600 bool compareMoreOrEqual(
unsigned int a,
unsigned int b) {
604 bool compareMoreOrEqual(
long a,
long b) {
608 bool compareMoreOrEqual(
unsigned long a,
unsigned long b) {
612 bool compareMoreOrEqual(
double a,
double b) {
616 bool compareMoreOrEqual(
const char* a,
const char* b) {
617 return compareString(a, b) >= 0;
620 bool compareMoreOrEqual(
const char* a,
const String& b) {
621 return compareString(a, b) >= 0;
624 bool compareMoreOrEqual(
const char* a,
const __FlashStringHelper* b) {
625 return compareString(a, b) >= 0;
628 bool compareMoreOrEqual(
const __FlashStringHelper* a,
const char* b) {
629 return compareString(a, b) >= 0;
632 bool compareMoreOrEqual(
633 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
634 return compareString(a, b) >= 0;
637 bool compareMoreOrEqual(
const __FlashStringHelper* a,
const String& b) {
638 return compareString(a, b) >= 0;
641 bool compareMoreOrEqual(
const String& a,
const char* b) {
642 return compareString(a, b) >= 0;
645 bool compareMoreOrEqual(
const String& a,
const String& b) {
646 return compareString(a, b) >= 0;
649 bool compareMoreOrEqual(
const String& a,
const __FlashStringHelper* b) {
650 return compareString(a, b) >= 0;
657 bool compareNotEqual(
bool a,
bool b) {
661 bool compareNotEqual(
char a,
char b) {
665 bool compareNotEqual(
int a,
int b) {
669 bool compareNotEqual(
unsigned int a,
unsigned int b) {
673 bool compareNotEqual(
long a,
long b) {
677 bool compareNotEqual(
unsigned long a,
unsigned long b) {
681 bool compareNotEqual(
double a,
double b) {
685 bool compareNotEqual(
const char* a,
const char* b) {
686 return compareString(a, b) != 0;
689 bool compareNotEqual(
const char* a,
const String& b) {
690 return compareString(a, b) != 0;
693 bool compareNotEqual(
const char* a,
const __FlashStringHelper* b) {
694 return compareString(a, b) != 0;
697 bool compareNotEqual(
const __FlashStringHelper* a,
const char* b) {
698 return compareString(a, b) != 0;
701 bool compareNotEqual(
702 const __FlashStringHelper* a,
const __FlashStringHelper* b) {
703 return compareString(a, b) != 0;
706 bool compareNotEqual(
const __FlashStringHelper* a,
const String& b) {
707 return compareString(a, b) != 0;
710 bool compareNotEqual(
const String& a,
const char* b) {
711 return compareString(a, b) != 0;
714 bool compareNotEqual(
const String& a,
const String& b) {
715 return compareString(a, b) != 0;
718 bool compareNotEqual(
const String& a,
const __FlashStringHelper* b) {
719 return compareString(a, b) != 0;
726 bool compareStringCaseEqual(
const char* a,
const char* b) {
727 return compareStringCase(a, b) == 0;
730 bool compareStringCaseEqual(
const char* a,
const String& b) {
731 return compareStringCase(a, b) == 0;
734 bool compareStringCaseEqual(
const char* a,
const __FlashStringHelper* b) {
735 return compareStringCase(a, b) == 0;
738 bool compareStringCaseEqual(
const __FlashStringHelper* a,
const char* b) {
739 return compareStringCase(a, b) == 0;
742 bool compareStringCaseEqual(
const __FlashStringHelper* a,
743 const __FlashStringHelper* b) {
744 return compareStringCase(a, b) == 0;
747 bool compareStringCaseEqual(
const __FlashStringHelper* a,
const String& b) {
748 return compareStringCase(a, b) == 0;
751 bool compareStringCaseEqual(
const String& a,
const char* b) {
752 return compareStringCase(a, b) == 0;
755 bool compareStringCaseEqual(
const String& a,
const String& b) {
756 return compareStringCase(a, b) == 0;
759 bool compareStringCaseEqual(
const String& a,
const __FlashStringHelper* b) {
760 return compareStringCase(a, b) == 0;
767 bool compareStringCaseNotEqual(
const char* a,
const char* b) {
768 return compareStringCase(a, b) != 0;
771 bool compareStringCaseNotEqual(
const char* a,
const String& b) {
772 return compareStringCase(a, b) != 0;
775 bool compareStringCaseNotEqual(
const char* a,
const __FlashStringHelper* b) {
776 return compareStringCase(a, b) != 0;
779 bool compareStringCaseNotEqual(
const __FlashStringHelper* a,
const char* b) {
780 return compareStringCase(a, b) != 0;
783 bool compareStringCaseNotEqual(
const __FlashStringHelper* a,
784 const __FlashStringHelper* b) {
785 return compareStringCase(a, b) != 0;
788 bool compareStringCaseNotEqual(
const __FlashStringHelper* a,
const String& b) {
789 return compareStringCase(a, b) != 0;
792 bool compareStringCaseNotEqual(
const String& a,
const char* b) {
793 return compareStringCase(a, b) != 0;
796 bool compareStringCaseNotEqual(
const String& a,
const String& b) {
797 return compareStringCase(a, b) != 0;
800 bool compareStringCaseNotEqual(
const String& a,
const __FlashStringHelper* b) {
801 return compareStringCase(a, b) != 0;
808 bool compareNear(
int a,
int b,
int error) {
809 return abs(a - b) <= error;
812 bool compareNear(
unsigned int a,
unsigned int b,
unsigned int error) {
813 return abs(a - b) <= error;
816 bool compareNear(
long a,
long b,
long error) {
817 return abs(a - b) <= error;
820 bool compareNear(
unsigned long a,
unsigned long b,
unsigned long error) {
821 return abs(a - b) <= error;
824 bool compareNear(
double a,
double b,
double error) {
825 return fabs(a - b) <= error;
828 bool compareNotNear(
int a,
int b,
int error) {
829 return !compareNear(a, b, error);
832 bool compareNotNear(
unsigned int a,
unsigned int b,
unsigned int error) {
833 return !compareNear(a, b, error);
836 bool compareNotNear(
long a,
long b,
long error) {
837 return !compareNear(a, b, error);
840 bool compareNotNear(
unsigned long a,
unsigned long b,
unsigned long error) {
841 return !compareNear(a, b, error);
844 bool compareNotNear(
double a,
double b,
double error) {
845 return !compareNear(a, b, error);
This file provides overloaded compareXxx(a, b) functions which are used by the various assertXxx(a...
Various macros to smooth over the differences among the various platforms with regards to their suppo...