scuffed-code/icu4c/source/test/cintltst/cformtst.c
2016-06-15 18:58:17 +00:00

93 lines
2.7 KiB
C

// Copyright (C) 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/********************************************************************
* COPYRIGHT:
* Copyright (c) 1997-2016, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************/
/********************************************************************************
*
* File CFORMTST.C
*
* Modification History:
* Name Description
* Madhu Katragadda Creation
*********************************************************************************
*/
/* FormatTest is a medium top level test for everything in the C FORMAT API */
#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
#include "cintltst.h"
#include "cformtst.h"
void addCalTest(TestNode**);
void addDateForTest(TestNode**);
void addDateTimePatternGeneratorTest(TestNode**);
void addDateIntervalFormatTest(TestNode**);
void addRelativeDateFormatTest(TestNode**);
void addNumForTest(TestNode**);
void addMsgForTest(TestNode**);
void addDateForRgrTest(TestNode**);
void addNumFrDepTest(TestNode**);
void addDtFrDepTest(TestNode**);
void addUtmsTest(TestNode**);
void addCurrencyTest(TestNode**);
void addPluralRulesTest(TestNode**);
void addURegionTest(TestNode** root);
void addUListFmtTest(TestNode** root);
void addFormatTest(TestNode** root);
void addFormatTest(TestNode** root)
{
addCalTest(root);
addDateForTest(root);
addDateTimePatternGeneratorTest(root);
addDateIntervalFormatTest(root);
#if !UCONFIG_NO_BREAK_ITERATION
addRelativeDateFormatTest(root);
#endif /* !UCONFIG_NO_BREAK_ITERATION */
addNumForTest(root);
addNumFrDepTest(root);
addMsgForTest(root);
addDateForRgrTest(root);
addDtFrDepTest(root);
addUtmsTest(root);
addCurrencyTest(root);
addPluralRulesTest(root);
addURegionTest(root);
addUListFmtTest(root);
}
/*Internal functions used*/
UChar* myDateFormat(UDateFormat* dat, UDate d1)
{
UChar *result1=NULL;
int32_t resultlength, resultlengthneeded;
UErrorCode status = U_ZERO_ERROR;
resultlength=0;
resultlengthneeded=udat_format(dat, d1, NULL, resultlength, NULL, &status);
if(status==U_BUFFER_OVERFLOW_ERROR)
{
status=U_ZERO_ERROR;
resultlength=resultlengthneeded+1;
result1=(UChar*)ctst_malloc(sizeof(UChar) * resultlength);
udat_format(dat, d1, result1, resultlength, NULL, &status);
}
if(U_FAILURE(status))
{
log_err("Error in formatting using udat_format(.....): %s\n", myErrorName(status));
return 0;
}
return result1;
}
#endif /* #if !UCONFIG_NO_FORMATTING */