19893902eceba7f01dd1521349d33866f77254d78Jordan Rose//===- unittests/Basic/CharInfoTest.cpp -- ASCII classification tests -----===// 29893902eceba7f01dd1521349d33866f77254d78Jordan Rose// 39893902eceba7f01dd1521349d33866f77254d78Jordan Rose// The LLVM Compiler Infrastructure 49893902eceba7f01dd1521349d33866f77254d78Jordan Rose// 59893902eceba7f01dd1521349d33866f77254d78Jordan Rose// This file is distributed under the University of Illinois Open Source 69893902eceba7f01dd1521349d33866f77254d78Jordan Rose// License. See LICENSE.TXT for details. 79893902eceba7f01dd1521349d33866f77254d78Jordan Rose// 89893902eceba7f01dd1521349d33866f77254d78Jordan Rose//===----------------------------------------------------------------------===// 99893902eceba7f01dd1521349d33866f77254d78Jordan Rose 109893902eceba7f01dd1521349d33866f77254d78Jordan Rose#include "clang/Basic/CharInfo.h" 119893902eceba7f01dd1521349d33866f77254d78Jordan Rose#include "gtest/gtest.h" 129893902eceba7f01dd1521349d33866f77254d78Jordan Rose 139893902eceba7f01dd1521349d33866f77254d78Jordan Roseusing namespace llvm; 149893902eceba7f01dd1521349d33866f77254d78Jordan Roseusing namespace clang; 159893902eceba7f01dd1521349d33866f77254d78Jordan Rose 169893902eceba7f01dd1521349d33866f77254d78Jordan Rose// Check that the CharInfo table has been constructed reasonably. 179893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, validateInfoTable) { 189893902eceba7f01dd1521349d33866f77254d78Jordan Rose using namespace charinfo; 199893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_SPACE, InfoTable[(unsigned)' ']); 209893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_HORZ_WS, InfoTable[(unsigned)'\t']); 219893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_HORZ_WS, InfoTable[(unsigned)'\f']); // ?? 229893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_HORZ_WS, InfoTable[(unsigned)'\v']); // ?? 239893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_VERT_WS, InfoTable[(unsigned)'\n']); 249893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_VERT_WS, InfoTable[(unsigned)'\r']); 259893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_UNDER, InfoTable[(unsigned)'_']); 269893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_PERIOD, InfoTable[(unsigned)'.']); 279893902eceba7f01dd1521349d33866f77254d78Jordan Rose 289893902eceba7f01dd1521349d33866f77254d78Jordan Rose for (unsigned i = 'a'; i <= 'f'; ++i) { 299893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_XLOWER, InfoTable[i]); 309893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_XUPPER, InfoTable[i+'A'-'a']); 319893902eceba7f01dd1521349d33866f77254d78Jordan Rose } 329893902eceba7f01dd1521349d33866f77254d78Jordan Rose 339893902eceba7f01dd1521349d33866f77254d78Jordan Rose for (unsigned i = 'g'; i <= 'z'; ++i) { 349893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_LOWER, InfoTable[i]); 359893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_UPPER, InfoTable[i+'A'-'a']); 369893902eceba7f01dd1521349d33866f77254d78Jordan Rose } 379893902eceba7f01dd1521349d33866f77254d78Jordan Rose 389893902eceba7f01dd1521349d33866f77254d78Jordan Rose for (unsigned i = '0'; i <= '9'; ++i) 399893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_EQ((unsigned)CHAR_DIGIT, InfoTable[i]); 409893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 419893902eceba7f01dd1521349d33866f77254d78Jordan Rose 429893902eceba7f01dd1521349d33866f77254d78Jordan Rose// Check various predicates. 439893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isASCII) { 449893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isASCII('\0')); 459893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isASCII('\n')); 469893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isASCII(' ')); 479893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isASCII('a')); 489893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isASCII('\x7f')); 499893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isASCII('\x80')); 509893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isASCII('\xc2')); 519893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isASCII('\xff')); 529893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 539893902eceba7f01dd1521349d33866f77254d78Jordan Rose 549893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isIdentifierHead) { 559893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierHead('a')); 569893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierHead('A')); 579893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierHead('z')); 589893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierHead('Z')); 599893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierHead('_')); 609893902eceba7f01dd1521349d33866f77254d78Jordan Rose 619893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierHead('0')); 629893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierHead('.')); 639893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierHead('`')); 649893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierHead('\0')); 659893902eceba7f01dd1521349d33866f77254d78Jordan Rose 669893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierHead('$')); 679893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierHead('$', /*AllowDollar=*/true)); 689893902eceba7f01dd1521349d33866f77254d78Jordan Rose 699893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierHead('\x80')); 709893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierHead('\xc2')); 719893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierHead('\xff')); 729893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 739893902eceba7f01dd1521349d33866f77254d78Jordan Rose 749893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isIdentifierBody) { 759893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierBody('a')); 769893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierBody('A')); 779893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierBody('z')); 789893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierBody('Z')); 799893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierBody('_')); 809893902eceba7f01dd1521349d33866f77254d78Jordan Rose 819893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierBody('0')); 829893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierBody('.')); 839893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierBody('`')); 849893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierBody('\0')); 859893902eceba7f01dd1521349d33866f77254d78Jordan Rose 869893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierBody('$')); 879893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isIdentifierBody('$', /*AllowDollar=*/true)); 889893902eceba7f01dd1521349d33866f77254d78Jordan Rose 899893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierBody('\x80')); 909893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierBody('\xc2')); 919893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isIdentifierBody('\xff')); 929893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 939893902eceba7f01dd1521349d33866f77254d78Jordan Rose 949893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isHorizontalWhitespace) { 959893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('a')); 969893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('_')); 979893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('0')); 989893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('.')); 999893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('`')); 1009893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('\0')); 1019893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('\x7f')); 1029893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1039893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isHorizontalWhitespace(' ')); 1049893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isHorizontalWhitespace('\t')); 1059893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isHorizontalWhitespace('\f')); // ?? 1069893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isHorizontalWhitespace('\v')); // ?? 1079893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1089893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('\n')); 1099893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('\r')); 1109893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1119893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('\x80')); 1129893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('\xc2')); 1139893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHorizontalWhitespace('\xff')); 1149893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 1159893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1169893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isVerticalWhitespace) { 1179893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('a')); 1189893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('_')); 1199893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('0')); 1209893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('.')); 1219893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('`')); 1229893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('\0')); 1239893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('\x7f')); 1249893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1259893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace(' ')); 1269893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('\t')); 1279893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('\f')); // ?? 1289893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('\v')); // ?? 1299893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1309893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isVerticalWhitespace('\n')); 1319893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isVerticalWhitespace('\r')); 1329893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1339893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('\x80')); 1349893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('\xc2')); 1359893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isVerticalWhitespace('\xff')); 1369893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 1379893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1389893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isWhitespace) { 1399893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('a')); 1409893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('_')); 1419893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('0')); 1429893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('.')); 1439893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('`')); 1449893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('\0')); 1459893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('\x7f')); 1469893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1479893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isWhitespace(' ')); 1489893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isWhitespace('\t')); 1499893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isWhitespace('\f')); 1509893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isWhitespace('\v')); 1519893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1529893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isWhitespace('\n')); 1539893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isWhitespace('\r')); 1549893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1559893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('\x80')); 1569893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('\xc2')); 1579893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isWhitespace('\xff')); 1589893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 1599893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1609893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isDigit) { 1619893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isDigit('0')); 1629893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isDigit('9')); 1639893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1649893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('a')); 1659893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('A')); 1669893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1679893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('z')); 1689893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('Z')); 1699893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1709893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('.')); 1719893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('_')); 1729893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1739893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('/')); 1749893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('\0')); 1759893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1769893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('\x80')); 1779893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('\xc2')); 1789893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isDigit('\xff')); 1799893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 1809893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1819893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isHexDigit) { 1829893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isHexDigit('0')); 1839893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isHexDigit('9')); 1849893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1859893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isHexDigit('a')); 1869893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isHexDigit('A')); 1879893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1889893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('z')); 1899893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('Z')); 1909893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1919893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('.')); 1929893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('_')); 1939893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1949893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('/')); 1959893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('\0')); 1969893902eceba7f01dd1521349d33866f77254d78Jordan Rose 1979893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('\x80')); 1989893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('\xc2')); 1999893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isHexDigit('\xff')); 2009893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 2019893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2029893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isLetter) { 2039893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('0')); 2049893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('9')); 2059893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2069893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isLetter('a')); 2079893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isLetter('A')); 2089893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2099893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isLetter('z')); 2109893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isLetter('Z')); 2119893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2129893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('.')); 2139893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('_')); 2149893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2159893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('/')); 2169893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('(')); 2179893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('\0')); 2189893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2199893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('\x80')); 2209893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('\xc2')); 2219893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLetter('\xff')); 2229893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 2239893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2249893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isLowercase) { 2259893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('0')); 2269893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('9')); 2279893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2289893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isLowercase('a')); 2299893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('A')); 2309893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2319893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isLowercase('z')); 2329893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('Z')); 2339893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2349893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('.')); 2359893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('_')); 2369893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2379893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('/')); 2389893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('(')); 2399893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('\0')); 2409893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2419893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('\x80')); 2429893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('\xc2')); 2439893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isLowercase('\xff')); 2449893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 2459893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2469893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isUppercase) { 2479893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('0')); 2489893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('9')); 2499893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2509893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('a')); 2519893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isUppercase('A')); 2529893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2539893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('z')); 2549893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isUppercase('Z')); 2559893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2569893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('.')); 2579893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('_')); 2589893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2599893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('/')); 2609893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('(')); 2619893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('\0')); 2629893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2639893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('\x80')); 2649893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('\xc2')); 2659893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isUppercase('\xff')); 2669893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 2679893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2689893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isAlphanumeric) { 2699893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isAlphanumeric('0')); 2709893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isAlphanumeric('9')); 2719893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2729893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isAlphanumeric('a')); 2739893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isAlphanumeric('A')); 2749893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2759893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isAlphanumeric('z')); 2769893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isAlphanumeric('Z')); 2779893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2789893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isAlphanumeric('.')); 2799893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isAlphanumeric('_')); 2809893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2819893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isAlphanumeric('/')); 2829893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isAlphanumeric('(')); 2839893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isAlphanumeric('\0')); 2849893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2859893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isAlphanumeric('\x80')); 2869893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isAlphanumeric('\xc2')); 2879893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isAlphanumeric('\xff')); 2889893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 2899893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2909893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isPunctuation) { 2919893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('0')); 2929893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('9')); 2939893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2949893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('a')); 2959893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('A')); 2969893902eceba7f01dd1521349d33866f77254d78Jordan Rose 2979893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('z')); 2989893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('Z')); 2999893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3009893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPunctuation('.')); 3019893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPunctuation('_')); 3029893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3039893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPunctuation('/')); 3049893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPunctuation('(')); 3059893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3069893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation(' ')); 3079893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('\n')); 3089893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('\0')); 3099893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3109893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('\x80')); 3119893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('\xc2')); 3129893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPunctuation('\xff')); 3139893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 3149893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3159893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isPrintable) { 3169893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('0')); 3179893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('9')); 3189893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3199893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('a')); 3209893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('A')); 3219893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3229893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('z')); 3239893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('Z')); 3249893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3259893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('.')); 3269893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('_')); 3279893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3289893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('/')); 3299893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable('(')); 3309893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3319893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPrintable(' ')); 3329893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPrintable('\t')); 3339893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPrintable('\n')); 3349893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPrintable('\0')); 3359893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3369893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPrintable('\x80')); 3379893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPrintable('\xc2')); 3389893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPrintable('\xff')); 3399893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 3409893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3419893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isPreprocessingNumberBody) { 3429893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPreprocessingNumberBody('0')); 3439893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPreprocessingNumberBody('9')); 3449893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3459893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPreprocessingNumberBody('a')); 3469893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPreprocessingNumberBody('A')); 3479893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3489893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPreprocessingNumberBody('z')); 3499893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPreprocessingNumberBody('Z')); 3509893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPreprocessingNumberBody('.')); 3519893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isPreprocessingNumberBody('_')); 3529893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3539893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPreprocessingNumberBody('/')); 3549893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPreprocessingNumberBody('(')); 3559893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPreprocessingNumberBody('\0')); 3569893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3579893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPreprocessingNumberBody('\x80')); 3589893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPreprocessingNumberBody('\xc2')); 3599893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isPreprocessingNumberBody('\xff')); 3609893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 3619893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3629893902eceba7f01dd1521349d33866f77254d78Jordan RoseTEST(CharInfoTest, isRawStringDelimBody) { 3639893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('0')); 3649893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('9')); 3659893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3669893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('a')); 3679893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('A')); 3689893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3699893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('z')); 3709893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('Z')); 3719893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('.')); 3729893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('_')); 3739893902eceba7f01dd1521349d33866f77254d78Jordan Rose 3749893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_TRUE(isRawStringDelimBody('/')); 3759893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isRawStringDelimBody('(')); 3769893902eceba7f01dd1521349d33866f77254d78Jordan Rose EXPECT_FALSE(isRawStringDelimBody('\0')); 3773f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 3783f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isRawStringDelimBody('\x80')); 3793f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isRawStringDelimBody('\xc2')); 3803f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isRawStringDelimBody('\xff')); 3813f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose} 3823f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 3833f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan RoseTEST(CharInfoTest, toLowercase) { 3843f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('0', toLowercase('0')); 3853f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('9', toLowercase('9')); 3863f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 3873f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('a', toLowercase('a')); 3883f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('a', toLowercase('A')); 3893f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 3903f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('z', toLowercase('z')); 3913f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('z', toLowercase('Z')); 3923f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 3933f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('.', toLowercase('.')); 3943f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('_', toLowercase('_')); 3953f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 3963f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('/', toLowercase('/')); 3973f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('\0', toLowercase('\0')); 3983f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose} 3993f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4003f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan RoseTEST(CharInfoTest, toUppercase) { 4013f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('0', toUppercase('0')); 4023f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('9', toUppercase('9')); 4033f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4043f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('A', toUppercase('a')); 4053f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('A', toUppercase('A')); 4063f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4073f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('Z', toUppercase('z')); 4083f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('Z', toUppercase('Z')); 4093f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4103f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('.', toUppercase('.')); 4113f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('_', toUppercase('_')); 4123f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4133f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('/', toUppercase('/')); 4143f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_EQ('\0', toUppercase('\0')); 4153f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose} 4163f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4173f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan RoseTEST(CharInfoTest, isValidIdentifier) { 4183f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("")); 4193f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4203f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose // 1 character 4213f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier(".")); 4223f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("\n")); 4233f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier(" ")); 4243f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("\x80")); 4253f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("\xc2")); 4263f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("\xff")); 4273f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("$")); 4283f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("1")); 4293f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4303f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_")); 4313f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("a")); 4323f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("z")); 4333f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("A")); 4343f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("Z")); 4353f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4363f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose // 2 characters, '_' suffix 4373f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("._")); 4383f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("\n_")); 4393f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier(" _")); 4403f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("\x80_")); 4413f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("\xc2_")); 4423f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("\xff_")); 4433f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("$_")); 4443f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("1_")); 4453f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4463f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("__")); 4473f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("a_")); 4483f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("z_")); 4493f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("A_")); 4503f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("Z_")); 4513f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4523f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose // 2 characters, '_' prefix 4533f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_.")); 4543f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_\n")); 4553f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_ ")); 4563f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_\x80")); 4573f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_\xc2")); 4583f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_\xff")); 4593f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_$")); 4603f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_1")); 4613f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4623f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("__")); 4633f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_a")); 4643f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_z")); 4653f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_A")); 4663f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_Z")); 4673f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4683f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose // 3 characters, '__' prefix 4693f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("__.")); 4703f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("__\n")); 4713f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("__ ")); 4723f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("__\x80")); 4733f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("__\xc2")); 4743f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("__\xff")); 4753f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("__$")); 4763f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("__1")); 4773f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4783f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("___")); 4793f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("__a")); 4803f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("__z")); 4813f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("__A")); 4823f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("__Z")); 4833f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4843f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose // 3 characters, '_' prefix and suffix 4853f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_._")); 4863f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_\n_")); 4873f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_ _")); 4883f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_\x80_")); 4893f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_\xc2_")); 4903f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_\xff_")); 4913f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_FALSE(isValidIdentifier("_$_")); 4923f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_1_")); 4933f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose 4943f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("___")); 4953f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_a_")); 4963f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_z_")); 4973f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_A_")); 4983f6f51e28231f65de9c2dd150a2d757b2162cfa3Jordan Rose EXPECT_TRUE(isValidIdentifier("_Z_")); 4999893902eceba7f01dd1521349d33866f77254d78Jordan Rose} 500