#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) {
} else {
fprintf(stderr, "# (no output)\n");
}
-
+
if(listmode && testName!=NULL) {
fprintf(stderr, "ERR: no -l mode when specific test with -t\n");
usage(progname);
runTests();
-
+
if(out!=NULL) {
#ifndef SKIP_INFO
fprintf(stderr, "Error in tests: %s\n", u_errorName(setupStatus));
return 1;
}
-
+
return 0;
}
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:
double sieveTime = uprv_getSieveTime(NULL);
double st;
double me;
-
+
fflush(stdout);
fflush(stderr);
int32_t iter = t.runTests(&st,&me);
}
fflush(stdout);
fflush(stderr);
-
+
double stn = st/sieveTime;
printf("%s\t%.9f\t%.9f +/- %.9f, @ %d iter\n", t.getName(),stn,st,me,iter);
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),
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);
}
}
#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;
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)
#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;
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) */
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),
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;
}
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)
: HowExpensiveTest("(n/a)",FILE, LINE),
fExpect(expect),
fFmt(0),
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;
}
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),
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)) {
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); \
#ifndef SKIP_NUMFORMAT_TESTS
// format tests
- {
-
+ {
+
DO_NumFmtInt64Test("0000","0001",1);
DO_NumFmtInt64Test("0000","0000",0);
StringPiece sp3456("3456");
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);