this repo has no description
at trunk 154 lines 4.3 kB view raw
1// Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com) 2#include "Python.h" 3 4#include "capi-fixture.h" 5#include "capi-testing.h" 6 7namespace py { 8namespace testing { 9 10using PyCTypeExtensionApiTest = ExtensionApi; 11 12TEST_F(PyCTypeExtensionApiTest, IsAlnum) { 13 EXPECT_TRUE(Py_ISALNUM('a')); 14 EXPECT_TRUE(Py_ISALNUM('z')); 15 EXPECT_TRUE(Py_ISALNUM('A')); 16 EXPECT_TRUE(Py_ISALNUM('Z')); 17 EXPECT_TRUE(Py_ISALNUM('0')); 18 EXPECT_TRUE(Py_ISALNUM('9')); 19 20 EXPECT_FALSE(Py_ISALNUM('\x00')); 21 EXPECT_FALSE(Py_ISALNUM('\t')); 22 EXPECT_FALSE(Py_ISALNUM('_')); 23 EXPECT_FALSE(Py_ISALNUM('\x80')); 24} 25 26TEST_F(PyCTypeExtensionApiTest, IsAlpha) { 27 EXPECT_TRUE(Py_ISALPHA('a')); 28 EXPECT_TRUE(Py_ISALPHA('z')); 29 EXPECT_TRUE(Py_ISALPHA('A')); 30 EXPECT_TRUE(Py_ISALPHA('Z')); 31 32 EXPECT_FALSE(Py_ISALPHA('0')); 33 EXPECT_FALSE(Py_ISALPHA('9')); 34 EXPECT_FALSE(Py_ISALPHA('\x00')); 35 EXPECT_FALSE(Py_ISALPHA('\t')); 36 EXPECT_FALSE(Py_ISALPHA('_')); 37 EXPECT_FALSE(Py_ISALPHA('\x80')); 38} 39 40TEST_F(PyCTypeExtensionApiTest, IsDigit) { 41 EXPECT_TRUE(Py_ISDIGIT('0')); 42 EXPECT_TRUE(Py_ISDIGIT('9')); 43 44 EXPECT_FALSE(Py_ISDIGIT('a')); 45 EXPECT_FALSE(Py_ISDIGIT('z')); 46 EXPECT_FALSE(Py_ISDIGIT('A')); 47 EXPECT_FALSE(Py_ISDIGIT('Z')); 48 EXPECT_FALSE(Py_ISDIGIT('\x00')); 49 EXPECT_FALSE(Py_ISDIGIT('\t')); 50 EXPECT_FALSE(Py_ISDIGIT('_')); 51 EXPECT_FALSE(Py_ISDIGIT('\x80')); 52} 53 54TEST_F(PyCTypeExtensionApiTest, IsLower) { 55 EXPECT_TRUE(Py_ISLOWER('a')); 56 EXPECT_TRUE(Py_ISLOWER('z')); 57 58 EXPECT_FALSE(Py_ISLOWER('A')); 59 EXPECT_FALSE(Py_ISLOWER('Z')); 60 EXPECT_FALSE(Py_ISLOWER('0')); 61 EXPECT_FALSE(Py_ISLOWER('9')); 62 EXPECT_FALSE(Py_ISLOWER('\x00')); 63 EXPECT_FALSE(Py_ISLOWER('\t')); 64 EXPECT_FALSE(Py_ISLOWER('_')); 65 EXPECT_FALSE(Py_ISLOWER('\x80')); 66} 67 68TEST_F(PyCTypeExtensionApiTest, IsSpace) { 69 EXPECT_TRUE(Py_ISSPACE('\t')); 70 EXPECT_TRUE(Py_ISSPACE('\n')); 71 EXPECT_TRUE(Py_ISSPACE('\v')); 72 EXPECT_TRUE(Py_ISSPACE('\f')); 73 EXPECT_TRUE(Py_ISSPACE('\r')); 74 EXPECT_TRUE(Py_ISSPACE(' ')); 75 76 // These are spaces in Unicode but not in pyctype.c 77 EXPECT_FALSE(Py_ISSPACE('\x1c')); 78 EXPECT_FALSE(Py_ISSPACE('\x1d')); 79 EXPECT_FALSE(Py_ISSPACE('\x1e')); 80 EXPECT_FALSE(Py_ISSPACE('\x1f')); 81 82 EXPECT_FALSE(Py_ISSPACE('a')); 83 EXPECT_FALSE(Py_ISSPACE('z')); 84 EXPECT_FALSE(Py_ISSPACE('A')); 85 EXPECT_FALSE(Py_ISSPACE('Z')); 86 EXPECT_FALSE(Py_ISSPACE('0')); 87 EXPECT_FALSE(Py_ISSPACE('9')); 88 EXPECT_FALSE(Py_ISSPACE('\x00')); 89 EXPECT_FALSE(Py_ISSPACE('_')); 90 EXPECT_FALSE(Py_ISSPACE('\x80')); 91} 92 93TEST_F(PyCTypeExtensionApiTest, IsUpper) { 94 EXPECT_TRUE(Py_ISUPPER('A')); 95 EXPECT_TRUE(Py_ISUPPER('Z')); 96 97 EXPECT_FALSE(Py_ISUPPER('a')); 98 EXPECT_FALSE(Py_ISUPPER('z')); 99 EXPECT_FALSE(Py_ISUPPER('0')); 100 EXPECT_FALSE(Py_ISUPPER('9')); 101 EXPECT_FALSE(Py_ISUPPER('\x00')); 102 EXPECT_FALSE(Py_ISUPPER('\t')); 103 EXPECT_FALSE(Py_ISUPPER('_')); 104 EXPECT_FALSE(Py_ISUPPER('\x80')); 105} 106 107TEST_F(PyCTypeExtensionApiTest, IsXDigit) { 108 EXPECT_TRUE(Py_ISXDIGIT('a')); 109 EXPECT_TRUE(Py_ISXDIGIT('f')); 110 EXPECT_TRUE(Py_ISXDIGIT('A')); 111 EXPECT_TRUE(Py_ISXDIGIT('F')); 112 EXPECT_TRUE(Py_ISXDIGIT('0')); 113 EXPECT_TRUE(Py_ISXDIGIT('9')); 114 115 EXPECT_FALSE(Py_ISXDIGIT('g')); 116 EXPECT_FALSE(Py_ISXDIGIT('z')); 117 EXPECT_FALSE(Py_ISXDIGIT('G')); 118 EXPECT_FALSE(Py_ISXDIGIT('Z')); 119 EXPECT_FALSE(Py_ISXDIGIT('\x00')); 120 EXPECT_FALSE(Py_ISXDIGIT('\t')); 121 EXPECT_FALSE(Py_ISXDIGIT('_')); 122 EXPECT_FALSE(Py_ISXDIGIT('\x80')); 123} 124 125TEST_F(PyCTypeExtensionApiTest, ToLower) { 126 EXPECT_EQ(Py_TOLOWER('A'), 'a'); 127 EXPECT_EQ(Py_TOLOWER('Z'), 'z'); 128 129 EXPECT_EQ(Py_TOLOWER('a'), 'a'); 130 EXPECT_EQ(Py_TOLOWER('z'), 'z'); 131 EXPECT_EQ(Py_TOLOWER('0'), '0'); 132 EXPECT_EQ(Py_TOLOWER('9'), '9'); 133 EXPECT_EQ(Py_TOLOWER('\x00'), '\x00'); 134 EXPECT_EQ(Py_TOLOWER('\t'), '\t'); 135 EXPECT_EQ(Py_TOLOWER('_'), '_'); 136 EXPECT_EQ(Py_TOLOWER('\x80'), 0x80); 137} 138 139TEST_F(PyCTypeExtensionApiTest, ToUpper) { 140 EXPECT_EQ(Py_TOUPPER('a'), 'A'); 141 EXPECT_EQ(Py_TOUPPER('z'), 'Z'); 142 143 EXPECT_EQ(Py_TOUPPER('A'), 'A'); 144 EXPECT_EQ(Py_TOUPPER('Z'), 'Z'); 145 EXPECT_EQ(Py_TOUPPER('0'), '0'); 146 EXPECT_EQ(Py_TOUPPER('9'), '9'); 147 EXPECT_EQ(Py_TOUPPER('\x00'), '\x00'); 148 EXPECT_EQ(Py_TOUPPER('\t'), '\t'); 149 EXPECT_EQ(Py_TOUPPER('_'), '_'); 150 EXPECT_EQ(Py_TOUPPER('\x80'), 0x80); 151} 152 153} // namespace testing 154} // namespace py