1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#import <Foundation/Foundation.h>
#import "Testing.h"
#ifndef M_PI
#define M_PI 3.14159265358979323846264338327950288
#endif
int main()
{
NSAutoreleasePool *pool = [NSAutoreleasePool new];
float flt=M_PI;
double dbl=M_PI;
PASS(NSSwapShort(0x1234) == (unsigned short)0x3412, "NSSwapShort works");
if (sizeof(long) == 4)
{
PASS(NSSwapLong(0x12345678L) == 0x78563412UL, "NSSwapLong works");
}
else if (sizeof(long) == 8)
{
PASS(NSSwapLongLong(0x123456789abcdef0LL) == 0xf0debc9a78563412LL,
"NSSwapLongLong works");
}
if (sizeof(long long) == 8)
{
PASS(NSSwapLongLong(0x123456789abcdef0LL) == 0xf0debc9a78563412LL,
"NSSwapLongLong works");
}
PASS(NSSwapBigFloatToHost(*((NSSwappedFloat *)&flt))
== ((NSHostByteOrder() == NS_LittleEndian)
? (float)-40331460896358400.0
: (float)M_PI),
"NSSwapBigFloatToHost works");
PASS(NSSwapLittleFloatToHost(*((NSSwappedFloat *)&flt))
== ((NSHostByteOrder() == NS_BigEndian)
? (float)-40331460896358400.0
: (float)M_PI),
"NSSwapLittleFloatToHost works");
PASS(NSSwapBigDoubleToHost(*((NSSwappedDouble *)&dbl))
== ((NSHostByteOrder() == NS_LittleEndian)
? 3.20737563067636581208678536384e-192
: M_PI),
"NSSwapBigDoubleToHost works");
PASS(NSSwapLittleDoubleToHost(*((NSSwappedDouble *)&dbl))
== ((NSHostByteOrder() == NS_BigEndian)
? 3.20737563067636581208678536384e-192
: M_PI),
"NSSwapLittleDoubleToHost wworks");
[pool release]; pool = nil;
return 0;
}
|