mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 09:04:13 +00:00
tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32293 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
c7c3b61563
commit
cbb6d76966
1 changed files with 82 additions and 71 deletions
|
@ -2,6 +2,12 @@
|
|||
#import "Testing.h"
|
||||
#import "ObjectTesting.h"
|
||||
|
||||
#if defined(GS_USE_ICU)
|
||||
#define NSLOCALE_SUPPORTED GS_USE_ICU
|
||||
#else
|
||||
#define NSLOCALE_SUPPORTED 1 /* Assume Apple support */
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
NSNumberFormatter *fmt;
|
||||
|
@ -10,98 +16,103 @@ int main()
|
|||
|
||||
START_SET(YES)
|
||||
|
||||
PASS(NSNumberFormatterBehavior10_4
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"default behavior is NSNumberFormatterBehavior10_4")
|
||||
PASS(NSNumberFormatterBehavior10_4
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"default behavior is NSNumberFormatterBehavior10_4")
|
||||
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: NSNumberFormatterBehavior10_0];
|
||||
PASS(NSNumberFormatterBehavior10_0
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"default behavior can be changed to NSNumberFormatterBehavior10_0")
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: NSNumberFormatterBehavior10_0];
|
||||
PASS(NSNumberFormatterBehavior10_0
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"default behavior can be changed to NSNumberFormatterBehavior10_0")
|
||||
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: NSNumberFormatterBehaviorDefault];
|
||||
PASS(NSNumberFormatterBehavior10_4
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"NSNumberFormatterBehaviorDefault gives NSNumberFormatterBehavior10_4")
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: NSNumberFormatterBehaviorDefault];
|
||||
PASS(NSNumberFormatterBehavior10_4
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"NSNumberFormatterBehaviorDefault gives NSNumberFormatterBehavior10_4")
|
||||
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: NSNumberFormatterBehavior10_0];
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: 1234];
|
||||
PASS(NSNumberFormatterBehavior10_0
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"unknown behavior is ignored")
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: NSNumberFormatterBehavior10_0];
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: 1234];
|
||||
PASS(NSNumberFormatterBehavior10_0
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"unknown behavior is ignored")
|
||||
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: NSNumberFormatterBehavior10_4];
|
||||
PASS(NSNumberFormatterBehavior10_4
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"default behavior can be changed to NSNumberFormatterBehavior10_4")
|
||||
[NSNumberFormatter
|
||||
setDefaultFormatterBehavior: NSNumberFormatterBehavior10_4];
|
||||
PASS(NSNumberFormatterBehavior10_4
|
||||
== [NSNumberFormatter defaultFormatterBehavior],
|
||||
"default behavior can be changed to NSNumberFormatterBehavior10_4")
|
||||
|
||||
|
||||
fmt = [[[NSNumberFormatter alloc] init] autorelease];
|
||||
fmt = [[[NSNumberFormatter alloc] init] autorelease];
|
||||
|
||||
PASS(NSNumberFormatterBehavior10_4 == [fmt formatterBehavior],
|
||||
"a new formatter gets the current default behavior")
|
||||
[fmt setFormatterBehavior: NSNumberFormatterBehaviorDefault];
|
||||
PASS(NSNumberFormatterBehaviorDefault == [fmt formatterBehavior],
|
||||
"a new formatter can have the default behavior set")
|
||||
PASS(NSNumberFormatterBehavior10_4 == [fmt formatterBehavior],
|
||||
"a new formatter gets the current default behavior")
|
||||
[fmt setFormatterBehavior: NSNumberFormatterBehaviorDefault];
|
||||
PASS(NSNumberFormatterBehaviorDefault == [fmt formatterBehavior],
|
||||
"a new formatter can have the default behavior set")
|
||||
|
||||
num = [[[NSNumber alloc] initWithFloat: 1234.567] autorelease];
|
||||
num = [[[NSNumber alloc] initWithFloat: 1234.567] autorelease];
|
||||
|
||||
str = [fmt stringFromNumber: num];
|
||||
PASS_EQUAL(str, @"1235", "default 10.4 format same as Cocoa");
|
||||
str = [fmt stringFromNumber: [NSDecimalNumber notANumber]];
|
||||
PASS_EQUAL(str, @"NaN", "notANumber special case")
|
||||
|
||||
[fmt setMaximumFractionDigits: 2];
|
||||
str = [fmt stringFromNumber: num];
|
||||
num = nil;
|
||||
PASS_RUNS(({
|
||||
[fmt getObjectValue: &num forString: @"0.00" errorDescription: &str];}),
|
||||
"getObjectValue:forString:errorDescription: runs")
|
||||
PASS_EQUAL(num, [NSNumber numberWithFloat: 0.0],
|
||||
"getObjectValue inited with 0.00")
|
||||
|
||||
PASS_EQUAL(str, @"1234.57", "round up for fractional part >0.5");
|
||||
START_SET(NSLOCALE_SUPPORTED)
|
||||
|
||||
num = [[[NSNumber alloc] initWithFloat: 1234.432] autorelease];
|
||||
str = [fmt stringFromNumber: num];
|
||||
str = [fmt stringFromNumber: num];
|
||||
PASS_EQUAL(str, @"1235", "default 10.4 format same as Cocoa")
|
||||
|
||||
PASS_EQUAL(str, @"1234.43", "round down for fractional part <0.5");
|
||||
[fmt setMaximumFractionDigits: 2];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
[fmt setNumberStyle: NSNumberFormatterNoStyle];
|
||||
[fmt setMaximumFractionDigits: 0];
|
||||
[fmt setFormatWidth: 6];
|
||||
[fmt setPositivePrefix: @"+"];
|
||||
[fmt setPaddingCharacter: @"0"];
|
||||
[fmt setPaddingPosition: NSNumberFormatterPadBeforePrefix];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
PASS_EQUAL(str, @"0+1234", "numeric and space padding OK");
|
||||
PASS_EQUAL(str, @"1234.57", "round up for fractional part >0.5")
|
||||
|
||||
num = [[[NSNumber alloc] initWithFloat: 1234.56] autorelease];
|
||||
[fmt setNumberStyle: NSNumberFormatterCurrencyStyle];
|
||||
[fmt setLocale: [[NSLocale alloc] initWithLocaleIdentifier: @"pt_BR"]];
|
||||
[fmt setPositiveSuffix: @"c"];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
PASS_EQUAL(str, @"R$1.235c", "prefix and suffix used properly");
|
||||
num = [[[NSNumber alloc] initWithFloat: 1234.432] autorelease];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
num = [[[NSNumber alloc] initWithFloat: -1234.56] autorelease];
|
||||
str = [fmt stringFromNumber: num];
|
||||
PASS_EQUAL(str, @"1234.43", "round down for fractional part <0.5")
|
||||
|
||||
PASS_EQUAL(str, @"(R$1.235)", "negativeFormat used for -ve number");
|
||||
[fmt setNumberStyle: NSNumberFormatterNoStyle];
|
||||
[fmt setMaximumFractionDigits: 0];
|
||||
[fmt setFormatWidth: 6];
|
||||
[fmt setPositivePrefix: @"+"];
|
||||
[fmt setPaddingCharacter: @"0"];
|
||||
[fmt setPaddingPosition: NSNumberFormatterPadBeforePrefix];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
PASS_EQUAL(str, @"0+1234", "numeric and space padding OK")
|
||||
|
||||
str = [fmt stringFromNumber: [NSDecimalNumber notANumber]];
|
||||
num = [[[NSNumber alloc] initWithFloat: 1234.56] autorelease];
|
||||
[fmt setNumberStyle: NSNumberFormatterCurrencyStyle];
|
||||
[fmt setLocale: [[NSLocale alloc] initWithLocaleIdentifier: @"pt_BR"]];
|
||||
[fmt setPositiveSuffix: @"c"];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
PASS_EQUAL(str, @"R$1.235c", "prefix and suffix used properly")
|
||||
|
||||
PASS_EQUAL(str, @"NaN", "notANumber special case");
|
||||
num = [[[NSNumber alloc] initWithFloat: -1234.56] autorelease];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
[fmt setNumberStyle: NSNumberFormatterNoStyle];
|
||||
[fmt setMaximumFractionDigits: 0];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
PASS_EQUAL(str, @"-1235", "format string of length 1");
|
||||
PASS_EQUAL(str, @"(R$1.235)", "negativeFormat used for -ve number")
|
||||
|
||||
[fmt setNumberStyle: NSNumberFormatterNoStyle];
|
||||
[fmt setMaximumFractionDigits: 0];
|
||||
str = [fmt stringFromNumber: num];
|
||||
|
||||
PASS_EQUAL(str, @"-1235", "format string of length 1")
|
||||
|
||||
END_SET("ICU library not available when base was built")
|
||||
|
||||
num = nil;
|
||||
PASS_RUNS(({[fmt getObjectValue: &num forString: @"0.00" errorDescription: &str];}),
|
||||
"getObjectValue:forString:errorDescription: runs")
|
||||
PASS_EQUAL(num, [NSNumber numberWithFloat: 0.0],
|
||||
"getObjectValue inited with 0.00")
|
||||
END_SET("NSNumberFormatter 10.4")
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue