mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-29 11:31:11 +00:00
59 lines
1.5 KiB
Objective-C
59 lines
1.5 KiB
Objective-C
#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;
|
|
}
|