@@ -16,10 +16,11 @@ #include "config.h" #include #include +#include #import "OFString.h" #import "OFArray.h" #import "OFURL.h" #import "OFAutoreleasePool.h" @@ -293,10 +294,25 @@ [@" xbCDE" hexadecimalValue] == 0xBCDE && [@"$CdEf" hexadecimalValue] == 0xCDEF && [@"\rFeh " hexadecimalValue] == 0xFE && [@"\r\t" hexadecimalValue] == 0) + /* + * These test numbers can be generated without rounding if we have IEEE + * floating point numbers, thus we can use == on then. + */ + TEST(@"-[floatValue]", + [@"\t-0.25 " floatValue] == -0.25 && + [@"\r-INFINITY\n" floatValue] == -INFINITY && + isnan([@" NAN\t\t" floatValue])) + + TEST(@"-[doubleValue]", + [@"\t-0.000000059604644775390625 " doubleValue] == + -0.000000059604644775390625L && + [@"\r-INFINITY\n" doubleValue] == -INFINITY && + isnan([@" NAN\t\t" doubleValue])) + EXPECT_EXCEPTION(@"Detect invalid characters in -[decimalValue] #1", OFInvalidFormatException, [@"abc" decimalValue]) EXPECT_EXCEPTION(@"Detect invalid characters in -[decimalValue] #2", OFInvalidFormatException, [@"0a" decimalValue]) EXPECT_EXCEPTION(@"Detect invalid characters in -[decimalValue] #3", @@ -308,10 +324,24 @@ OFInvalidFormatException, [@"0x" hexadecimalValue]) EXPECT_EXCEPTION(@"Detect invalid chars in -[hexadecimalValue] #3", OFInvalidFormatException, [@"$" hexadecimalValue]) EXPECT_EXCEPTION(@"Detect invalid chars in -[hexadecimalValue] #4", OFInvalidFormatException, [@"$ " hexadecimalValue]) + + EXPECT_EXCEPTION(@"Detect invalid chars in -[floatValue] #1", + OFInvalidFormatException, [@"0,0" floatValue]) + EXPECT_EXCEPTION(@"Detect invalid chars in -[floatValue] #2", + OFInvalidFormatException, [@"0.0a" floatValue]) + EXPECT_EXCEPTION(@"Detect invalid chars in -[floatValue] #3", + OFInvalidFormatException, [@"0 0" floatValue]) + + EXPECT_EXCEPTION(@"Detect invalid chars in -[doubleValue] #1", + OFInvalidFormatException, [@"0,0" floatValue]) + EXPECT_EXCEPTION(@"Detect invalid chars in -[doubleValue] #2", + OFInvalidFormatException, [@"0.0a" floatValue]) + EXPECT_EXCEPTION(@"Detect invalid chars in -[doubleValue] #3", + OFInvalidFormatException, [@"0 0" floatValue]) EXPECT_EXCEPTION(@"Detect out of range in -[decimalValue]", OFOutOfRangeException, [@"12345678901234567890123456789012345678901234567890" @"12345678901234567890123456789012345678901234567890"