AUnit
1.7.1
Unit testing framework for Arduino platforms inspired by ArduinoUnit and Google Test.
|
This file provides overloaded compareXxx(a, b) functions which are used by the various assertXxx(a, b) macros. More...
#include <stddef.h>
Go to the source code of this file.
Functions | |
int | aunit::internal::compareString (const char *a, const char *b) |
int | aunit::internal::compareString (const char *a, const String &b) |
int | aunit::internal::compareString (const char *a, const __FlashStringHelper *b) |
int | aunit::internal::compareString (const String &a, const char *b) |
int | aunit::internal::compareString (const String &a, const String &b) |
int | aunit::internal::compareString (const String &a, const __FlashStringHelper *b) |
int | aunit::internal::compareString (const __FlashStringHelper *a, const char *b) |
int | aunit::internal::compareString (const __FlashStringHelper *a, const __FlashStringHelper *b) |
int | aunit::internal::compareString (const __FlashStringHelper *a, const String &b) |
int | aunit::internal::compareStringCase (const char *a, const char *b) |
int | aunit::internal::compareStringCase (const char *a, const String &b) |
int | aunit::internal::compareStringCase (const char *a, const __FlashStringHelper *b) |
int | aunit::internal::compareStringCase (const String &a, const char *b) |
int | aunit::internal::compareStringCase (const String &a, const String &b) |
int | aunit::internal::compareStringCase (const String &a, const __FlashStringHelper *b) |
int | aunit::internal::compareStringCase (const __FlashStringHelper *a, const char *b) |
int | aunit::internal::compareStringCase (const __FlashStringHelper *a, const __FlashStringHelper *b) |
int | aunit::internal::compareStringCase (const __FlashStringHelper *a, const String &b) |
int | aunit::internal::compareStringN (const char *a, const char *b, size_t n) |
Compare only the first n characters of 'a' or 'b'. | |
int | aunit::internal::compareStringN (const char *a, const __FlashStringHelper *b, size_t n) |
Compare only the first n characters of 'a' or 'b'. | |
int | aunit::internal::compareStringN (const __FlashStringHelper *a, const char *b, size_t n) |
Compare only the first n characters of 'a' or 'b'. | |
int | aunit::internal::compareStringN (const __FlashStringHelper *a, const __FlashStringHelper *b, size_t n) |
Compare only the first n characters of 'a' or 'b'. | |
bool | aunit::internal::compareSubstring (const char *haystack, const char *needle) |
bool | aunit::internal::compareSubstring (const char *haystack, const String &needle) |
bool | aunit::internal::compareSubstring (const char *haystack, const __FlashStringHelper *needle) |
bool | aunit::internal::compareSubstring (const String &haystack, const char *needle) |
bool | aunit::internal::compareSubstring (const String &haystack, const String &needle) |
bool | aunit::internal::compareSubstring (const String &haystack, const __FlashStringHelper *needle) |
bool | aunit::internal::compareSubstring (const __FlashStringHelper *haystack, const char *needle) |
An inefficient O(M*N) implementation of strstr() for PROGMEM strings. More... | |
bool | aunit::internal::compareSubstring (const __FlashStringHelper *haystack, const String &needle) |
bool | aunit::internal::compareSubstring (const __FlashStringHelper *haystack, const __FlashStringHelper *needle) |
An inefficient O(M*N) implementation of strstr() for PROGMEM strings. More... | |
bool | aunit::internal::compareEqual (bool a, bool b) |
bool | aunit::internal::compareEqual (char a, char b) |
bool | aunit::internal::compareEqual (int a, int b) |
bool | aunit::internal::compareEqual (unsigned int a, unsigned int b) |
bool | aunit::internal::compareEqual (long a, long b) |
bool | aunit::internal::compareEqual (unsigned long a, unsigned long b) |
bool | aunit::internal::compareEqual (long long a, long long b) |
bool | aunit::internal::compareEqual (unsigned long long a, unsigned long long b) |
bool | aunit::internal::compareEqual (double a, double b) |
bool | aunit::internal::compareEqual (const void *a, const void *b) |
bool | aunit::internal::compareEqual (const char *a, const char *b) |
bool | aunit::internal::compareEqual (const char *a, const String &b) |
bool | aunit::internal::compareEqual (const char *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareEqual (const __FlashStringHelper *a, const char *b) |
bool | aunit::internal::compareEqual (const __FlashStringHelper *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareEqual (const __FlashStringHelper *a, const String &b) |
bool | aunit::internal::compareEqual (const String &a, const char *b) |
bool | aunit::internal::compareEqual (const String &a, const String &b) |
bool | aunit::internal::compareEqual (const String &a, const __FlashStringHelper *b) |
bool | aunit::internal::compareLess (bool a, bool b) |
bool | aunit::internal::compareLess (char a, char b) |
bool | aunit::internal::compareLess (int a, int b) |
bool | aunit::internal::compareLess (unsigned int a, unsigned int b) |
bool | aunit::internal::compareLess (long a, long b) |
bool | aunit::internal::compareLess (unsigned long a, unsigned long b) |
bool | aunit::internal::compareLess (long long a, long long b) |
bool | aunit::internal::compareLess (unsigned long long a, unsigned long long b) |
bool | aunit::internal::compareLess (double a, double b) |
bool | aunit::internal::compareLess (const char *a, const char *b) |
bool | aunit::internal::compareLess (const char *a, const String &b) |
bool | aunit::internal::compareLess (const char *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareLess (const __FlashStringHelper *a, const char *b) |
bool | aunit::internal::compareLess (const __FlashStringHelper *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareLess (const __FlashStringHelper *a, const String &b) |
bool | aunit::internal::compareLess (const String &a, const char *b) |
bool | aunit::internal::compareLess (const String &a, const String &b) |
bool | aunit::internal::compareLess (const String &a, const __FlashStringHelper *b) |
bool | aunit::internal::compareMore (bool a, bool b) |
bool | aunit::internal::compareMore (char a, char b) |
bool | aunit::internal::compareMore (int a, int b) |
bool | aunit::internal::compareMore (unsigned int a, unsigned int b) |
bool | aunit::internal::compareMore (long a, long b) |
bool | aunit::internal::compareMore (unsigned long a, unsigned long b) |
bool | aunit::internal::compareMore (long long a, long long b) |
bool | aunit::internal::compareMore (unsigned long long a, unsigned long long b) |
bool | aunit::internal::compareMore (double a, double b) |
bool | aunit::internal::compareMore (const char *a, const char *b) |
bool | aunit::internal::compareMore (const char *a, const String &b) |
bool | aunit::internal::compareMore (const char *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareMore (const __FlashStringHelper *a, const char *b) |
bool | aunit::internal::compareMore (const __FlashStringHelper *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareMore (const __FlashStringHelper *a, const String &b) |
bool | aunit::internal::compareMore (const String &a, const char *b) |
bool | aunit::internal::compareMore (const String &a, const String &b) |
bool | aunit::internal::compareMore (const String &a, const __FlashStringHelper *b) |
bool | aunit::internal::compareLessOrEqual (bool a, bool b) |
bool | aunit::internal::compareLessOrEqual (char a, char b) |
bool | aunit::internal::compareLessOrEqual (int a, int b) |
bool | aunit::internal::compareLessOrEqual (unsigned int a, unsigned int b) |
bool | aunit::internal::compareLessOrEqual (long a, long b) |
bool | aunit::internal::compareLessOrEqual (unsigned long a, unsigned long b) |
bool | aunit::internal::compareLessOrEqual (long long a, long long b) |
bool | aunit::internal::compareLessOrEqual (unsigned long long a, unsigned long long b) |
bool | aunit::internal::compareLessOrEqual (double a, double b) |
bool | aunit::internal::compareLessOrEqual (const char *a, const char *b) |
bool | aunit::internal::compareLessOrEqual (const char *a, const String &b) |
bool | aunit::internal::compareLessOrEqual (const char *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareLessOrEqual (const __FlashStringHelper *a, const char *b) |
bool | aunit::internal::compareLessOrEqual (const __FlashStringHelper *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareLessOrEqual (const __FlashStringHelper *a, const String &b) |
bool | aunit::internal::compareLessOrEqual (const String &a, const char *b) |
bool | aunit::internal::compareLessOrEqual (const String &a, const String &b) |
bool | aunit::internal::compareLessOrEqual (const String &a, const __FlashStringHelper *b) |
bool | aunit::internal::compareMoreOrEqual (bool a, bool b) |
bool | aunit::internal::compareMoreOrEqual (char a, char b) |
bool | aunit::internal::compareMoreOrEqual (int a, int b) |
bool | aunit::internal::compareMoreOrEqual (unsigned int a, unsigned int b) |
bool | aunit::internal::compareMoreOrEqual (long a, long b) |
bool | aunit::internal::compareMoreOrEqual (unsigned long a, unsigned long b) |
bool | aunit::internal::compareMoreOrEqual (long long a, long long b) |
bool | aunit::internal::compareMoreOrEqual (unsigned long long a, unsigned long long b) |
bool | aunit::internal::compareMoreOrEqual (double a, double b) |
bool | aunit::internal::compareMoreOrEqual (const char *a, const char *b) |
bool | aunit::internal::compareMoreOrEqual (const char *a, const String &b) |
bool | aunit::internal::compareMoreOrEqual (const char *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareMoreOrEqual (const __FlashStringHelper *a, const char *b) |
bool | aunit::internal::compareMoreOrEqual (const __FlashStringHelper *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareMoreOrEqual (const __FlashStringHelper *a, const String &b) |
bool | aunit::internal::compareMoreOrEqual (const String &a, const char *b) |
bool | aunit::internal::compareMoreOrEqual (const String &a, const String &b) |
bool | aunit::internal::compareMoreOrEqual (const String &a, const __FlashStringHelper *b) |
bool | aunit::internal::compareNotEqual (bool a, bool b) |
bool | aunit::internal::compareNotEqual (char a, char b) |
bool | aunit::internal::compareNotEqual (int a, int b) |
bool | aunit::internal::compareNotEqual (unsigned int a, unsigned int b) |
bool | aunit::internal::compareNotEqual (long a, long b) |
bool | aunit::internal::compareNotEqual (unsigned long a, unsigned long b) |
bool | aunit::internal::compareNotEqual (long long a, long long b) |
bool | aunit::internal::compareNotEqual (unsigned long long a, unsigned long long b) |
bool | aunit::internal::compareNotEqual (double a, double b) |
bool | aunit::internal::compareNotEqual (const void *a, const void *b) |
bool | aunit::internal::compareNotEqual (const char *a, const char *b) |
bool | aunit::internal::compareNotEqual (const char *a, const String &b) |
bool | aunit::internal::compareNotEqual (const char *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareNotEqual (const __FlashStringHelper *a, const char *b) |
bool | aunit::internal::compareNotEqual (const __FlashStringHelper *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareNotEqual (const __FlashStringHelper *a, const String &b) |
bool | aunit::internal::compareNotEqual (const String &a, const char *b) |
bool | aunit::internal::compareNotEqual (const String &a, const String &b) |
bool | aunit::internal::compareNotEqual (const String &a, const __FlashStringHelper *b) |
bool | aunit::internal::compareStringCaseEqual (const char *a, const char *b) |
bool | aunit::internal::compareStringCaseEqual (const char *a, const String &b) |
bool | aunit::internal::compareStringCaseEqual (const char *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareStringCaseEqual (const __FlashStringHelper *a, const char *b) |
bool | aunit::internal::compareStringCaseEqual (const __FlashStringHelper *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareStringCaseEqual (const __FlashStringHelper *a, const String &b) |
bool | aunit::internal::compareStringCaseEqual (const String &a, const char *b) |
bool | aunit::internal::compareStringCaseEqual (const String &a, const String &b) |
bool | aunit::internal::compareStringCaseEqual (const String &a, const __FlashStringHelper *b) |
bool | aunit::internal::compareStringCaseNotEqual (const char *a, const char *b) |
bool | aunit::internal::compareStringCaseNotEqual (const char *a, const String &b) |
bool | aunit::internal::compareStringCaseNotEqual (const char *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareStringCaseNotEqual (const __FlashStringHelper *a, const char *b) |
bool | aunit::internal::compareStringCaseNotEqual (const __FlashStringHelper *a, const __FlashStringHelper *b) |
bool | aunit::internal::compareStringCaseNotEqual (const __FlashStringHelper *a, const String &b) |
bool | aunit::internal::compareStringCaseNotEqual (const String &a, const char *b) |
bool | aunit::internal::compareStringCaseNotEqual (const String &a, const String &b) |
bool | aunit::internal::compareStringCaseNotEqual (const String &a, const __FlashStringHelper *b) |
bool | aunit::internal::compareNear (int a, int b, int error) |
bool | aunit::internal::compareNear (unsigned int a, unsigned int b, unsigned int error) |
bool | aunit::internal::compareNear (long a, long b, long error) |
bool | aunit::internal::compareNear (unsigned long a, unsigned long b, unsigned long error) |
bool | aunit::internal::compareNear (double a, double b, double error) |
bool | aunit::internal::compareNotNear (int a, int b, int error) |
bool | aunit::internal::compareNotNear (unsigned int a, unsigned int b, unsigned int error) |
bool | aunit::internal::compareNotNear (long a, long b, long error) |
bool | aunit::internal::compareNotNear (unsigned long a, unsigned long b, unsigned long error) |
bool | aunit::internal::compareNotNear (double a, double b, double error) |
This file provides overloaded compareXxx(a, b) functions which are used by the various assertXxx(a, b) macros.
We wanted to allow users to use the assertXxx() macros with all combinations of the 3 types of strings available in the Arduino platform:
Clearly, there are 9 binary combinations these string types, so we define 9 compareString(a, b) functions.
For other primitive types, I depend on implicit conversion rules to reduce the overloaded types to 7:
Therefore, there are 16 overloaded versions of each of the compareXxx(a, b) functions.
There are 6 compareXxx() functions corresponding to (==, !=, <, >, <=, >=). Many of them are implemented using the primitive logical operators for the respective primitive types. The compare functions for string types are implemented using compareString().
All versions of compareString() and compareStringN() accept nullptr arguments (in constrast to strcmp() and strncmp() where their behavior for nullptr are undefined by the C standard.) If both arguments are nullptr, then the strings are considered equal (returns 0). Otherwise, the nullptr is arbitrarily defined to be less than all non-null strings, including the empty string.
Definition in file Compare.h.
bool aunit::internal::compareSubstring | ( | const __FlashStringHelper * | haystack, |
const __FlashStringHelper * | needle | ||
) |
An inefficient O(M*N) implementation of strstr() for PROGMEM strings.
The KMP algorithm https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm is faster, but this brute force implementation is probably good enough.
Definition at line 374 of file Compare.cpp.
bool aunit::internal::compareSubstring | ( | const __FlashStringHelper * | haystack, |
const char * | needle | ||
) |
An inefficient O(M*N) implementation of strstr() for PROGMEM strings.
The KMP algorithm https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm is faster, but this brute force implementation is probably good enough.
Definition at line 342 of file Compare.cpp.