locale.c
来自「Wine-20031016」· C语言 代码 · 共 1,205 行 · 第 1/4 页
C
1,205 行
STRINGSA("ddd',' MMM dd ''''yy",""); /* Buffer too small */ ret = GetDateFormatA(lcid, 0, &curtime, input, buffer, 2); EXPECT_BUFFER; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("ddd',' MMM dd ''''yy","5/4/2002"); /* Default to DATE_SHORTDATE */ ret = GetDateFormat(lcid, NUO, &curtime, NULL, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("ddd',' MMM dd ''''yy", "Saturday, May 04, 2002"); /* DATE_LONGDATE */ ret = GetDateFormat(lcid, NUO|DATE_LONGDATE, &curtime, NULL, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; /* test for expected DATE_YEARMONTH behavior with null format */ /* NT4 returns ERROR_INVALID_FLAGS for DATE_YEARMONTH */ STRINGSA("ddd',' MMM dd ''''yy", ""); /* DATE_YEARMONTH */ ret = GetDateFormat(lcid, NUO|DATE_YEARMONTH, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_FLAGS; EXPECT_LEN(0); EXPECT_EQA; /* Test that using invalid DATE_* flags results in the correct error */ /* and return values */ STRINGSA("m/d/y", ""); /* Invalid flags */ ret = GetDateFormat(lcid, DATE_YEARMONTH|DATE_SHORTDATE|DATE_LONGDATE, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_FLAGS; EXPECT_LEN(0); EXPECT_EQA;}static void test_GetDateFormatW(){ int ret; SYSTEMTIME curtime; WCHAR buffer[BUFFER_SIZE], input[BUFFER_SIZE], Expected[BUFFER_SIZE]; LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT); STRINGSW("",""); /* If flags is not zero then format must be NULL */ ret = GetDateFormatW(LOCALE_SYSTEM_DEFAULT, DATE_LONGDATE, NULL, input, buffer, COUNTOF(buffer)); if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) return; EXPECT_FLAGS; EXPECT_LEN(0); EXPECT_EQW; STRINGSW("",""); /* NULL buffer, len > 0 */ ret = GetDateFormatW (lcid, 0, NULL, input, NULL, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQW; STRINGSW("",""); /* NULL buffer, len == 0 */ ret = GetDateFormatW (lcid, 0, NULL, input, NULL, 0); EXPECT_VALID; EXPECT_LENW; EXPECT_EQW; curtime.wYear = 2002; curtime.wMonth = 10; curtime.wDay = 23; curtime.wDayOfWeek = 45612; /* Should be 3 - Wednesday */ curtime.wHour = 65432; /* Invalid */ curtime.wMinute = 34512; /* Invalid */ curtime.wSecond = 65535; /* Invalid */ curtime.wMilliseconds = 12345; STRINGSW("dddd d MMMM yyyy","Wednesday 23 October 2002"); /* Incorrect DOW and time */ ret = GetDateFormatW (lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENW; EXPECT_EQW;}#define CY_POS_LEFT 0#define CY_POS_RIGHT 1#define CY_POS_LEFT_SPACE 2#define CY_POS_RIGHT_SPACE 3static void test_GetCurrencyFormatA(){ static char szDot[] = { '.', '\0' }; static char szComma[] = { ',', '\0' }; static char szDollar[] = { '$', '\0' }; int ret; LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT); char buffer[BUFFER_SIZE], Expected[BUFFER_SIZE], input[BUFFER_SIZE]; CURRENCYFMTA format; memset(&format, 0, sizeof(format)); STRINGSA("23",""); /* NULL output, length > 0 --> Error */ ret = GetCurrencyFormatA(lcid, 0, input, NULL, NULL, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("23,53",""); /* Invalid character --> Error */ ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("--",""); /* Double '-' --> Error */ ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("0-",""); /* Trailing '-' --> Error */ ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("0..",""); /* Double '.' --> Error */ ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA(" 0.1",""); /* Leading space --> Error */ ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("1234","$"); /* Length too small --> Write up to length chars */ ret = GetCurrencyFormatA(lcid, NUO, input, NULL, buffer, 2); EXPECT_BUFFER; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("2353",""); /* Format and flags given --> Error */ ret = GetCurrencyFormatA(lcid, NUO, input, &format, buffer, COUNTOF(buffer)); EXPECT_INVALIDFLAGS; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("2353",""); /* Invalid format --> Error */ ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("2353","$2,353.00"); /* Valid number */ ret = GetCurrencyFormatA(lcid, NUO, input, NULL, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("-2353","($2,353.00)"); /* Valid negative number */ ret = GetCurrencyFormatA(lcid, NUO, input, NULL, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("2353.1","$2,353.10"); /* Valid real number */ ret = GetCurrencyFormatA(lcid, NUO, input, NULL, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("2353.111","$2,353.11"); /* Too many DP --> Truncated */ ret = GetCurrencyFormatA(lcid, NUO, input, NULL, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("2353.119","$2,353.12"); /* Too many DP --> Rounded */ ret = GetCurrencyFormatA(lcid, NUO, input, NULL, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NumDigits = 0; /* No decimal separator */ format.LeadingZero = 0; format.Grouping = 0; /* No grouping char */ format.NegativeOrder = 0; format.PositiveOrder = CY_POS_LEFT; format.lpDecimalSep = szDot; format.lpThousandSep = szComma; format.lpCurrencySymbol = szDollar; STRINGSA("2353","$2353"); /* No decimal or grouping chars expected */ ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NumDigits = 1; /* 1 DP --> Expect decimal separator */ STRINGSA("2353","$2353.0"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.Grouping = 2; /* Group by 100's */ STRINGSA("2353","$23,53.0"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.LeadingZero = 1; /* Always provide leading zero */ STRINGSA(".5","$0.5"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.PositiveOrder = CY_POS_RIGHT; STRINGSA("1","1.0$"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.PositiveOrder = CY_POS_LEFT_SPACE; STRINGSA("1","$ 1.0"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.PositiveOrder = CY_POS_RIGHT_SPACE; STRINGSA("1","1.0 $"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 0; STRINGSA("-1","($1.0)"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 1; STRINGSA("-1","-$1.0"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 2; STRINGSA("-1","$-1.0"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 3; STRINGSA("-1","$1.0-"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 4; STRINGSA("-1","(1.0$)"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 5; STRINGSA("-1","-1.0$"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 6; STRINGSA("-1","1.0-$"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 7; STRINGSA("-1","1.0$-"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 8; STRINGSA("-1","-1.0 $"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 9; STRINGSA("-1","-$ 1.0"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 10; STRINGSA("-1","1.0 $-"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 11; STRINGSA("-1","$ 1.0-"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 12; STRINGSA("-1","$ -1.0"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 13; STRINGSA("-1","1.0- $"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 14; STRINGSA("-1","($ 1.0)"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; format.NegativeOrder = 15; STRINGSA("-1","(1.0 $)"); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA;}#define NEG_PARENS 0 /* "(1.1)" */#define NEG_LEFT 1 /* "-1.1" */#define NEG_LEFT_SPACE 2 /* "- 1.1" */#define NEG_RIGHT 3 /* "1.1-" */#define NEG_RIGHT_SPACE 4 /* "1.1 -" */static void test_GetNumberFormatA(){ static char szDot[] = { '.', '\0' }; static char szComma[] = { ',', '\0' }; int ret; LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT); char buffer[BUFFER_SIZE], Expected[BUFFER_SIZE], input[BUFFER_SIZE]; NUMBERFMTA format; memset(&format, 0, sizeof(format)); STRINGSA("23",""); /* NULL output, length > 0 --> Error */ ret = GetNumberFormatA(lcid, 0, input, NULL, NULL, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("23,53",""); /* Invalid character --> Error */ ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("--",""); /* Double '-' --> Error */ ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("0-",""); /* Trailing '-' --> Error */ ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("0..",""); /* Double '.' --> Error */ ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA(" 0.1",""); /* Leading space --> Error */ ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("1234","1"); /* Length too small --> Write up to length chars */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?