public void TestCasting()
{
NSUInteger value;
short s = -123;
int i = -123456;
long l = -1234567890;
ushort us = 123;
uint ui = 123456;
ulong ul = 1234567890;
float f = 12345.6789f;
double d = 12345.6789d;
NSInteger nint = -123456;
//NSUInteger nuint = 123456;
CGFloat cgfloat = new CGFloat(12345.6789f);
value = s;
Assert.AreEqual(value, new NSUInteger((uint)s), "Value must be equal");
value = i;
Assert.AreEqual(value, new NSUInteger((uint)i), "Value must be equal");
value = l;
Assert.AreEqual(value, new NSUInteger((uint)l), "Value must be equal");
value = us;
Assert.AreEqual(value, new NSUInteger(us), "Value must be equal");
value = ui;
Assert.AreEqual(value, new NSUInteger(ui), "Value must be equal");
value = ul;
Assert.AreEqual(value, new NSUInteger((uint)ul), "Value must be equal");
value = (NSInteger) f;
Assert.AreEqual(value, new NSUInteger((uint)f), "Value must be equal");
value = (NSInteger) d;
Assert.AreEqual(value, new NSUInteger((uint)d), "Value must be equal");
value = nint;
Assert.AreEqual(value, new NSUInteger((uint)nint.value), "Value must be equal");
//value = nuint;
//Assert.AreEqual(value, new NSUInteger(nuint.value), "Value must be equal");
value = (NSInteger) cgfloat;
Assert.AreEqual(value, new NSUInteger((uint)cgfloat.value), "Value must be equal");
}