| Index: source/test/perf/howExpensiveIs/howExpensiveIs.cpp
|
| diff --git a/source/test/perf/howExpensiveIs/howExpensiveIs.cpp b/source/test/perf/howExpensiveIs/howExpensiveIs.cpp
|
| index 1d15e04a383b4f137e7db14dc6a576eafe06cb03..be59fc301088f4cf51f7669249f37e8aa066b462 100644
|
| --- a/source/test/perf/howExpensiveIs/howExpensiveIs.cpp
|
| +++ b/source/test/perf/howExpensiveIs/howExpensiveIs.cpp
|
| @@ -1,6 +1,6 @@
|
| /*
|
| **********************************************************************
|
| - * Copyright (c) 2011-2012,International Business Machines
|
| + * Copyright (c) 2011-2014,International Business Machines
|
| * Corporation and others. All Rights Reserved.
|
| **********************************************************************
|
| */
|
| @@ -13,6 +13,7 @@
|
| #include "unicode/ustring.h"
|
| #include "unicode/decimfmt.h"
|
| #include "unicode/udat.h"
|
| +U_NAMESPACE_USE
|
|
|
| #if U_PLATFORM_IMPLEMENTS_POSIX
|
| #include <unistd.h>
|
| @@ -28,6 +29,9 @@ void runTests(void);
|
| #define ITERATIONS 5
|
| #endif
|
|
|
| +#ifndef TEST_LOCALE
|
| +#define TEST_LOCALE "en_US"
|
| +#endif
|
|
|
| FILE *out = NULL;
|
| UErrorCode setupStatus = U_ZERO_ERROR;
|
| @@ -62,7 +66,7 @@ int main(int argc, char * const * argv){
|
|
|
| #if U_PLATFORM_IMPLEMENTS_POSIX
|
| int c;
|
| - extern int optind;
|
| + //extern int optind;
|
| extern char *optarg;
|
| while((c=getopt(argc,argv,"lf:t:")) != EOF) {
|
| switch(c) {
|
| @@ -113,7 +117,7 @@ int main(int argc, char * const * argv){
|
| } else {
|
| fprintf(stderr, "# (no output)\n");
|
| }
|
| -
|
| +
|
| if(listmode && testName!=NULL) {
|
| fprintf(stderr, "ERR: no -l mode when specific test with -t\n");
|
| usage(progname);
|
| @@ -122,7 +126,7 @@ int main(int argc, char * const * argv){
|
|
|
|
|
| runTests();
|
| -
|
| +
|
|
|
| if(out!=NULL) {
|
| #ifndef SKIP_INFO
|
| @@ -136,7 +140,7 @@ int main(int argc, char * const * argv){
|
| fprintf(stderr, "Error in tests: %s\n", u_errorName(setupStatus));
|
| return 1;
|
| }
|
| -
|
| +
|
| return 0;
|
| }
|
|
|
| @@ -147,10 +151,10 @@ protected:
|
| HowExpensiveTest(const char *name, const char *file, int32_t line) : fName(name), fFile(file), fLine(line) {}
|
| protected:
|
| /**
|
| - * @return number of iterations
|
| + * @return number of iterations
|
| */
|
| virtual int32_t run() = 0;
|
| - virtual void warmup() { run(); }
|
| + virtual void warmup() { run(); }
|
| public:
|
| virtual const char *getName() { return fName; }
|
| public:
|
| @@ -200,7 +204,7 @@ void runTestOn(HowExpensiveTest &t) {
|
| double sieveTime = uprv_getSieveTime(NULL);
|
| double st;
|
| double me;
|
| -
|
| +
|
| fflush(stdout);
|
| fflush(stderr);
|
| int32_t iter = t.runTests(&st,&me);
|
| @@ -210,7 +214,7 @@ void runTestOn(HowExpensiveTest &t) {
|
| }
|
| fflush(stdout);
|
| fflush(stderr);
|
| -
|
| +
|
| double stn = st/sieveTime;
|
|
|
| printf("%s\t%.9f\t%.9f +/- %.9f, @ %d iter\n", t.getName(),stn,st,me,iter);
|
| @@ -272,13 +276,13 @@ public:
|
| }
|
| protected:
|
| virtual UNumberFormat* initFmt() {
|
| - return unum_open(UNUM_PATTERN_DECIMAL, fPat.getTerminatedBuffer(), -1, "en_US", 0, &setupStatus);
|
| + return unum_open(UNUM_PATTERN_DECIMAL, fPat.getTerminatedBuffer(), -1, TEST_LOCALE, 0, &setupStatus);
|
| }
|
| virtual const char *getClassName() {
|
| return "NumTest";
|
| }
|
| public:
|
| - NumTest(const char *pat, const char *num, double expect, const char *FILE, int LINE)
|
| + NumTest(const char *pat, const char *num, double expect, const char *FILE, int LINE)
|
| : HowExpensiveTest("(n/a)",FILE, LINE),
|
| fExpect(expect),
|
| fFmt(0),
|
| @@ -299,7 +303,7 @@ public:
|
| double trial = unum_parseDouble(fFmt,fStr,fLen, NULL, &setupStatus);
|
| if(U_SUCCESS(setupStatus) && trial!=fExpect) {
|
| setupStatus = U_INTERNAL_PROGRAM_ERROR;
|
| - printf("%s:%d: warmup() %s got %.8f expected %.8f\n",
|
| + printf("%s:%d: warmup() %s got %.8f expected %.8f\n",
|
| fFile,fLine,getName(),trial,fExpect);
|
| }
|
| }
|
| @@ -318,7 +322,7 @@ public:
|
| #define DO_NumTest(p,n,x) { NumTest t(p,n,x,__FILE__,__LINE__); runTestOn(t); }
|
|
|
|
|
| -class AttrNumTest : public NumTest
|
| +class AttrNumTest : public NumTest
|
| {
|
| private:
|
| UNumberFormatAttribute fAttr;
|
| @@ -330,7 +334,7 @@ protected:
|
| return name2;
|
| }
|
| public:
|
| - AttrNumTest(const char *pat, const char *num, double expect, const char *FILE, int LINE, UNumberFormatAttribute attr, int32_t newValue)
|
| + AttrNumTest(const char *pat, const char *num, double expect, const char *FILE, int LINE, UNumberFormatAttribute attr, int32_t newValue)
|
| : NumTest(pat,num,expect,FILE,LINE),
|
| fAttr(attr),
|
| fAttrValue(newValue)
|
| @@ -346,7 +350,7 @@ public:
|
| #define DO_AttrNumTest(p,n,x,a,v) { AttrNumTest t(p,n,x,__FILE__,__LINE__,a,v); runTestOn(t); }
|
|
|
|
|
| -class NOXNumTest : public NumTest
|
| +class NOXNumTest : public NumTest
|
| {
|
| private:
|
| UNumberFormatAttribute fAttr;
|
| @@ -358,7 +362,7 @@ protected:
|
| return name2;
|
| }
|
| public:
|
| - NOXNumTest(const char *pat, const char *num, double expect, const char *FILE, int LINE /*, UNumberFormatAttribute attr, int32_t newValue */)
|
| + NOXNumTest(const char *pat, const char *num, double expect, const char *FILE, int LINE /*, UNumberFormatAttribute attr, int32_t newValue */)
|
| : NumTest(pat,num,expect,FILE,LINE) /* ,
|
| fAttr(attr),
|
| fAttrValue(newValue) */
|
| @@ -400,13 +404,13 @@ public:
|
| }
|
| protected:
|
| virtual UNumberFormat* initFmt() {
|
| - return unum_open(UNUM_PATTERN_DECIMAL, fPat.getTerminatedBuffer(), -1, "en_US", 0, &setupStatus);
|
| + return unum_open(UNUM_PATTERN_DECIMAL, fPat.getTerminatedBuffer(), -1, TEST_LOCALE, 0, &setupStatus);
|
| }
|
| virtual const char *getClassName() {
|
| return "NumFmtTest";
|
| }
|
| public:
|
| - NumFmtTest(const char *pat, const char *num, double expect, const char *FILE, int LINE)
|
| + NumFmtTest(const char *pat, const char *num, double expect, const char *FILE, int LINE)
|
| : HowExpensiveTest("(n/a)",FILE, LINE),
|
| fExpect(expect),
|
| fFmt(0),
|
| @@ -426,13 +430,13 @@ public:
|
| UChar buf[100];
|
| if(U_SUCCESS(setupStatus)) {
|
| int32_t trial = unum_formatDouble(fFmt,fExpect, buf, 100, NULL, &setupStatus);
|
| - if(!U_SUCCESS(setupStatus)
|
| + if(!U_SUCCESS(setupStatus)
|
| || trial!=fLen
|
| ||trial<=0
|
| || u_strncmp(fStr,buf,trial) ) {
|
| char strBuf[200];
|
| u_strToUTF8(strBuf,200,NULL,buf,trial+1,&setupStatus);
|
| - printf("%s:%d: warmup() %s got %s expected %s, err %s\n",
|
| + printf("%s:%d: warmup() %s got %s expected %s, err %s\n",
|
| fFile,fLine,getName(),strBuf,fCStr, u_errorName(setupStatus));
|
| setupStatus = U_INTERNAL_PROGRAM_ERROR;
|
| }
|
| @@ -454,9 +458,17 @@ public:
|
|
|
| #define DO_NumFmtTest(p,n,x) { NumFmtTest t(p,n,x,__FILE__,__LINE__); runTestOn(t); }
|
|
|
| -
|
| class NumFmtInt64Test : public HowExpensiveTest {
|
| +public:
|
| + enum EMode {
|
| + kDefault,
|
| + kPattern,
|
| + kApplyPattern,
|
| + kGroupOff,
|
| + kApplyGroupOff
|
| + };
|
| private:
|
| + EMode fMode;
|
| int64_t fExpect;
|
| UNumberFormat *fFmt;
|
| UnicodeString fPat;
|
| @@ -477,14 +489,53 @@ public:
|
| }
|
| protected:
|
| virtual UNumberFormat* initFmt() {
|
| - return unum_open(UNUM_PATTERN_DECIMAL, fPat.getTerminatedBuffer(), -1, "en_US", 0, &setupStatus);
|
| + switch(fMode) {
|
| + case kPattern:
|
| + return unum_open(UNUM_PATTERN_DECIMAL, fPat.getTerminatedBuffer(), -1, TEST_LOCALE, 0, &setupStatus);
|
| + case kApplyPattern:
|
| + {
|
| + UNumberFormat *fmt = unum_open(UNUM_DECIMAL, NULL, -1, TEST_LOCALE, 0, &setupStatus);
|
| + unum_applyPattern(fmt, FALSE, fPat.getTerminatedBuffer(), -1, NULL, &setupStatus);
|
| + return fmt;
|
| + }
|
| + case kGroupOff:
|
| + {
|
| + UNumberFormat *fmt = unum_open(UNUM_PATTERN_DECIMAL, fPat.getTerminatedBuffer(), -1, TEST_LOCALE, 0, &setupStatus);
|
| + unum_setAttribute(fmt, UNUM_GROUPING_USED, UNUM_NO);
|
| + return fmt;
|
| + }
|
| + case kApplyGroupOff:
|
| + {
|
| + UNumberFormat *fmt = unum_open(UNUM_DECIMAL, NULL, -1, TEST_LOCALE, 0, &setupStatus);
|
| + unum_applyPattern(fmt, FALSE, fPat.getTerminatedBuffer(), -1, NULL, &setupStatus);
|
| + unum_setAttribute(fmt, UNUM_GROUPING_USED, UNUM_NO);
|
| + return fmt;
|
| + }
|
| + default:
|
| + case kDefault:
|
| + return unum_open(UNUM_DEFAULT, NULL, -1, TEST_LOCALE, 0, &setupStatus);
|
| + }
|
| }
|
| virtual const char *getClassName() {
|
| - return "NumFmtInt64Test";
|
| + switch(fMode) {
|
| + case EMode::kDefault:
|
| + return "NumFmtInt64Test (default)";
|
| + case EMode::kPattern:
|
| + return "NumFmtInt64Test (pattern)";
|
| + case EMode::kApplyPattern:
|
| + return "NumFmtInt64Test (applypattern)";
|
| + case EMode::kGroupOff:
|
| + return "NumFmtInt64Test (pattern, group=off)";
|
| + case EMode::kApplyGroupOff:
|
| + return "NumFmtInt64Test (applypattern, group=off)";
|
| + default:
|
| + return "NumFmtInt64Test (? ? ?)";
|
| + }
|
| }
|
| public:
|
| - NumFmtInt64Test(const char *pat, const char *num, int64_t expect, const char *FILE, int LINE)
|
| + NumFmtInt64Test(const char *pat, const char *num, int64_t expect, const char *FILE, int LINE, EMode mode)
|
| : HowExpensiveTest("(n/a)",FILE, LINE),
|
| + fMode(mode),
|
| fExpect(expect),
|
| fFmt(0),
|
| fPat(pat, -1, US_INV),
|
| @@ -503,13 +554,13 @@ public:
|
| UChar buf[100];
|
| if(U_SUCCESS(setupStatus)) {
|
| int32_t trial = unum_formatInt64(fFmt,fExpect, buf, 100, NULL, &setupStatus);
|
| - if(!U_SUCCESS(setupStatus)
|
| + if(!U_SUCCESS(setupStatus)
|
| || trial!=fLen
|
| ||trial<=0
|
| || u_strncmp(fStr,buf,trial) ) {
|
| char strBuf[200];
|
| u_strToUTF8(strBuf,200,NULL,buf,trial+1,&setupStatus);
|
| - printf("%s:%d: warmup() %s got %s (len %d) expected %s (len %d), err %s\n",
|
| + printf("%s:%d: warmup() %s got %s (len %d) expected %s (len %d), err %s\n",
|
| fFile,fLine,getName(),strBuf,trial,fCStr,fLen, u_errorName(setupStatus));
|
| setupStatus = U_INTERNAL_PROGRAM_ERROR;
|
| }
|
| @@ -529,7 +580,18 @@ public:
|
| virtual ~NumFmtInt64Test(){}
|
| };
|
|
|
| -#define DO_NumFmtInt64Test(p,n,x) { NumFmtInt64Test t(p,n,x,__FILE__,__LINE__); runTestOn(t); }
|
| +/**
|
| + * unum_open .. with pattern, == new DecimalFormat(pattern)
|
| + */
|
| +#define DO_NumFmtInt64Test(p,n,x) { NumFmtInt64Test t(p,n,x,__FILE__,__LINE__,NumFmtInt64Test::EMode::kPattern); runTestOn(t); }
|
| +/**
|
| + * unum_open(UNUM_DECIMAL), then
|
| + */
|
| +#define DO_NumFmtInt64Test_apply(p,n,x) { NumFmtInt64Test t(p,n,x,__FILE__,__LINE__,NumFmtInt64Test::EMode::kApplyPattern); runTestOn(t); }
|
| +
|
| +#define DO_NumFmtInt64Test_default(p,n,x) { NumFmtInt64Test t(p,n,x,__FILE__,__LINE__,NumFmtInt64Test::EMode::kDefault); runTestOn(t); }
|
| +#define DO_NumFmtInt64Test_gr0(p,n,x) { NumFmtInt64Test t(p,n,x,__FILE__,__LINE__,NumFmtInt64Test::EMode::kGroupOff); runTestOn(t); }
|
| +#define DO_NumFmtInt64Test_applygr0(p,n,x) { NumFmtInt64Test t(p,n,x,__FILE__,__LINE__,NumFmtInt64Test::EMode::kApplyGroupOff); runTestOn(t); }
|
|
|
|
|
| class NumFmtStringPieceTest : public HowExpensiveTest {
|
| @@ -563,7 +625,7 @@ protected:
|
| return "NumFmtStringPieceTest";
|
| }
|
| public:
|
| - NumFmtStringPieceTest(const char *pat, const char *num, const StringPiece& expect, const char *FILE, int LINE)
|
| + NumFmtStringPieceTest(const char *pat, const char *num, const StringPiece& expect, const char *FILE, int LINE)
|
| : HowExpensiveTest("(n/a)",FILE, LINE),
|
| fExpect(expect),
|
| fFmt(0),
|
| @@ -584,20 +646,22 @@ public:
|
| if(U_SUCCESS(setupStatus)) {
|
| buf.remove();
|
| ((const DecimalFormat*)fFmt)->format(fExpect, buf, NULL, setupStatus);
|
| - if(!U_SUCCESS(setupStatus)
|
| + if(!U_SUCCESS(setupStatus)
|
| || fString!=buf
|
| ) {
|
| char strBuf[200];
|
| u_strToUTF8(strBuf,200,NULL,buf.getTerminatedBuffer(),buf.length()+1,&setupStatus);
|
| - printf("%s:%d: warmup() %s got %s (len %d) expected %s (len %d), err %s\n",
|
| + printf("%s:%d: warmup() %s got %s (len %d) expected %s (len %d), err %s\n",
|
| fFile,fLine,getName(),strBuf,buf.length(),fCStr,fLen, u_errorName(setupStatus));
|
| setupStatus = U_INTERNAL_PROGRAM_ERROR;
|
| }
|
| }
|
| }
|
| -
|
| +
|
| int32_t run() {
|
| +#if U_DEBUG
|
| int32_t trial;
|
| +#endif
|
| int i=0;
|
| UnicodeString buf;
|
| if(U_SUCCESS(setupStatus)) {
|
| @@ -623,20 +687,20 @@ static UChar strbeng[] = {0x09E8,0x09E8,0x09E8,0x09E8, 0 };
|
| UNumberFormat *NumParseTest_fmt;
|
|
|
| // TODO: de-uglify.
|
| -QuickTest(NumParseTest,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, "en_US", 0, &setupStatus); },{ int32_t i; static UChar str[] = { 0x31 };double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,str,1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
| +QuickTest(NumParseTest,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, TEST_LOCALE, 0, &setupStatus); },{ int32_t i; static UChar str[] = { 0x31 };double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,str,1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
|
|
| -QuickTest(NumParseTestdot,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, "en_US", 0, &setupStatus); },{ int32_t i; double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,strdot,1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
| -QuickTest(NumParseTestspc,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, "en_US", 0, &setupStatus); },{ int32_t i; double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,strspc,1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
| -QuickTest(NumParseTestgrp,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, "en_US", 0, &setupStatus); },{ int32_t i; double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,strgrp,-1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
| +QuickTest(NumParseTestdot,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, TEST_LOCALE, 0, &setupStatus); },{ int32_t i; double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,strdot,1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
| +QuickTest(NumParseTestspc,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, TEST_LOCALE, 0, &setupStatus); },{ int32_t i; double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,strspc,1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
| +QuickTest(NumParseTestgrp,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, TEST_LOCALE, 0, &setupStatus); },{ int32_t i; double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,strgrp,-1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
|
|
| -QuickTest(NumParseTestbeng,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, "en_US", 0, &setupStatus); },{ int32_t i; double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,strbeng,-1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
| +QuickTest(NumParseTestbeng,{ static UChar pattern[] = { 0x23 }; NumParseTest_fmt = unum_open(UNUM_PATTERN_DECIMAL, pattern, 1, TEST_LOCALE, 0, &setupStatus); },{ int32_t i; double val; for(i=0;i<U_LOTS_OF_TIMES;i++) { val=unum_parse(NumParseTest_fmt,strbeng,-1,NULL,&setupStatus); } return i; },{unum_close(NumParseTest_fmt);})
|
|
|
| UDateFormat *DateFormatTest_fmt = NULL;
|
| UDate sometime = 100000000.0;
|
| UChar onekbuf[1024];
|
| const int32_t onekbuf_len = sizeof(onekbuf)/sizeof(onekbuf[0]);
|
|
|
| -
|
| +
|
| QuickTest(DateFormatTestBasic, \
|
| { \
|
| DateFormatTest_fmt = udat_open(UDAT_DEFAULT, UDAT_DEFAULT, NULL, NULL, -1, NULL, -1, &setupStatus); \
|
| @@ -663,8 +727,8 @@ QuickTest(NullTest,{},{int j=U_LOTS_OF_TIMES;while(--j);return U_LOTS_OF_TIMES;}
|
| QuickTest(RandomTest,{},{timespec ts; ts.tv_sec=rand()%4; int j=U_LOTS_OF_TIMES;while(--j) { ts.tv_nsec=100000+(rand()%10000)*1000000; nanosleep(&ts,NULL); return j;} return U_LOTS_OF_TIMES;},{})
|
| #endif
|
|
|
| -OpenCloseTest(pattern,unum,open,{},(UNUM_PATTERN_DECIMAL,pattern,1,"en_US",0,&setupStatus),{})
|
| -OpenCloseTest(default,unum,open,{},(UNUM_DEFAULT,NULL,-1,"en_US",0,&setupStatus),{})
|
| +OpenCloseTest(pattern,unum,open,{},(UNUM_PATTERN_DECIMAL,pattern,1,TEST_LOCALE,0,&setupStatus),{})
|
| +OpenCloseTest(default,unum,open,{},(UNUM_DEFAULT,NULL,-1,TEST_LOCALE,0,&setupStatus),{})
|
| #if !UCONFIG_NO_CONVERSION
|
| #include "unicode/ucnv.h"
|
| OpenCloseTest(gb18030,ucnv,open,{},("gb18030",&setupStatus),{})
|
| @@ -726,8 +790,8 @@ void runTests() {
|
|
|
| #ifndef SKIP_NUMFORMAT_TESTS
|
| // format tests
|
| - {
|
| -
|
| + {
|
| +
|
| DO_NumFmtInt64Test("0000","0001",1);
|
| DO_NumFmtInt64Test("0000","0000",0);
|
| StringPiece sp3456("3456");
|
| @@ -742,16 +806,33 @@ void runTests() {
|
| StringPiece spPI("123.456");
|
| DO_NumFmtStringPieceTest("#.0000","123.4560",spPI);
|
| DO_NumFmtStringPieceTest("#.00","123.46",spPI);
|
| -
|
| +
|
| DO_NumFmtTest("#","0",0.0);
|
| DO_NumFmtTest("#","12345",12345);
|
| DO_NumFmtTest("#","-2",-2);
|
| DO_NumFmtTest("+#","+2",2);
|
| +
|
| DO_NumFmtInt64Test("#","-682",-682);
|
| DO_NumFmtInt64Test("#","0",0);
|
| DO_NumFmtInt64Test("#","12345",12345);
|
| + DO_NumFmtInt64Test("#,###","12,345",12345);
|
| DO_NumFmtInt64Test("#","1234",1234);
|
| DO_NumFmtInt64Test("#","123",123);
|
| + DO_NumFmtInt64Test("#,###","123",123);
|
| + DO_NumFmtInt64Test_apply("#","123",123);
|
| + DO_NumFmtInt64Test_apply("#","12345",12345);
|
| + DO_NumFmtInt64Test_apply("#,###","123",123);
|
| + DO_NumFmtInt64Test_apply("#,###","12,345",12345);
|
| + DO_NumFmtInt64Test_default("","123",123);
|
| + DO_NumFmtInt64Test_default("","12,345",12345);
|
| + DO_NumFmtInt64Test_applygr0("#","123",123);
|
| + DO_NumFmtInt64Test_applygr0("#","12345",12345);
|
| + DO_NumFmtInt64Test_applygr0("#,###","123",123);
|
| + DO_NumFmtInt64Test_applygr0("#,###","12345",12345);
|
| + DO_NumFmtInt64Test_gr0("#","123",123);
|
| + DO_NumFmtInt64Test_gr0("#","12345",12345);
|
| + DO_NumFmtInt64Test_gr0("#,###","123",123);
|
| + DO_NumFmtInt64Test_gr0("#,###","12345",12345);
|
| DO_NumFmtInt64Test("#","-2",-2);
|
| DO_NumFmtInt64Test("+#","+2",2);
|
| }
|
|
|