| 905 |
CHECK(!RE("(\\d+)").FullMatch("4294967296", &v)); |
CHECK(!RE("(\\d+)").FullMatch("4294967296", &v)); |
| 906 |
} |
} |
| 907 |
#ifdef HAVE_LONG_LONG |
#ifdef HAVE_LONG_LONG |
| 908 |
|
# if defined(__MINGW__) || defined(__MINGW32__) |
| 909 |
|
# define LLD "%I64d" |
| 910 |
|
# else |
| 911 |
|
# define LLD "%lld" |
| 912 |
|
# endif |
| 913 |
{ |
{ |
| 914 |
long long v; |
long long v; |
| 915 |
static const long long max_value = 0x7fffffffffffffffLL; |
static const long long max_value = 0x7fffffffffffffffLL; |
| 919 |
CHECK(RE("(-?\\d+)").FullMatch("100", &v)); CHECK_EQ(v, 100); |
CHECK(RE("(-?\\d+)").FullMatch("100", &v)); CHECK_EQ(v, 100); |
| 920 |
CHECK(RE("(-?\\d+)").FullMatch("-100",&v)); CHECK_EQ(v, -100); |
CHECK(RE("(-?\\d+)").FullMatch("-100",&v)); CHECK_EQ(v, -100); |
| 921 |
|
|
| 922 |
snprintf(buf, sizeof(buf), "%lld", max_value); |
snprintf(buf, sizeof(buf), LLD, max_value); |
| 923 |
CHECK(RE("(-?\\d+)").FullMatch(buf,&v)); CHECK_EQ(v, max_value); |
CHECK(RE("(-?\\d+)").FullMatch(buf,&v)); CHECK_EQ(v, max_value); |
| 924 |
|
|
| 925 |
snprintf(buf, sizeof(buf), "%lld", min_value); |
snprintf(buf, sizeof(buf), LLD, min_value); |
| 926 |
CHECK(RE("(-?\\d+)").FullMatch(buf,&v)); CHECK_EQ(v, min_value); |
CHECK(RE("(-?\\d+)").FullMatch(buf,&v)); CHECK_EQ(v, min_value); |
| 927 |
|
|
| 928 |
snprintf(buf, sizeof(buf), "%lld", max_value); |
snprintf(buf, sizeof(buf), LLD, max_value); |
| 929 |
assert(buf[strlen(buf)-1] != '9'); |
assert(buf[strlen(buf)-1] != '9'); |
| 930 |
buf[strlen(buf)-1]++; |
buf[strlen(buf)-1]++; |
| 931 |
CHECK(!RE("(-?\\d+)").FullMatch(buf, &v)); |
CHECK(!RE("(-?\\d+)").FullMatch(buf, &v)); |
| 932 |
|
|
| 933 |
snprintf(buf, sizeof(buf), "%lld", min_value); |
snprintf(buf, sizeof(buf), LLD, min_value); |
| 934 |
assert(buf[strlen(buf)-1] != '9'); |
assert(buf[strlen(buf)-1] != '9'); |
| 935 |
buf[strlen(buf)-1]++; |
buf[strlen(buf)-1]++; |
| 936 |
CHECK(!RE("(-?\\d+)").FullMatch(buf, &v)); |
CHECK(!RE("(-?\\d+)").FullMatch(buf, &v)); |