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 + -
显示快捷键?