xamarin-macios/tests/monotouch-test/NativeTypesTest.cs

154 строки
5.6 KiB
C#
Исходник Обычный вид История

2016-05-26 16:06:52 +03:00
//
// Unit tests for native types (nint, nuint, nfloat)
//
// Authors:
// Rolf Bjarne Kvinge <rolf@xamarin.com>
//
// Copyright 2014 Xamarin Inc. All rights reserved.
//
#if XAMCORE_2_0
using System;
using System.Globalization;
using Foundation;
using ObjCRuntime;
using Security;
using NUnit.Framework;
using RectangleF=CoreGraphics.CGRect;
using SizeF=CoreGraphics.CGSize;
using PointF=CoreGraphics.CGPoint;
namespace MonoTouchFixtures.System {
[TestFixture]
[Preserve (AllMembers = true)]
public class NativeTypes {
[Test]
public void CompareTo ()
{
Assert.That (((nint)0).CompareTo ((nint)0), Is.EqualTo (0), "compareto 1");
Assert.That (((nint)0).CompareTo ((nint)1), Is.EqualTo (-1), "compareto 2");
Assert.That (((nint)1).CompareTo ((nint)0), Is.EqualTo (1), "compareto 3");
Assert.That (((nint)0).CompareTo ((object)(nint)0), Is.EqualTo (0), "compareto 4");
Assert.That (((nint)0).CompareTo ((object)(nint)1), Is.EqualTo (-1), "compareto 5");
Assert.That (((nint)1).CompareTo ((object)(nint)0), Is.EqualTo (1), "compareto 6");
Assert.That (((nint)1).CompareTo (null), Is.EqualTo (1), "compareto 7");
Assert.That (((nuint)0).CompareTo ((nuint)0), Is.EqualTo (0), "compareto nuint 1");
Assert.That (((nuint)0).CompareTo ((nuint)1), Is.EqualTo (-1), "compareto nuint 2");
Assert.That (((nuint)1).CompareTo ((nuint)0), Is.EqualTo (1), "compareto nuint 3");
Assert.That (((nuint)0).CompareTo ((object)(nuint)0), Is.EqualTo (0), "compareto nuint 4");
Assert.That (((nuint)0).CompareTo ((object)(nuint)1), Is.EqualTo (-1), "compareto nuint 5");
Assert.That (((nuint)1).CompareTo ((object)(nuint)0), Is.EqualTo (1), "compareto nuint 6");
Assert.That (((nuint)1).CompareTo (null), Is.EqualTo (1), "compareto nuint 7");
Assert.That (((nfloat)0).CompareTo ((nfloat)0), Is.EqualTo (0), "compareto nfloat 1");
Assert.That (((nfloat)0).CompareTo ((nfloat)1), Is.EqualTo (-1), "compareto nfloat 2");
Assert.That (((nfloat)1).CompareTo ((nfloat)0), Is.EqualTo (1), "compareto nfloat 3");
Assert.That (((nfloat)0).CompareTo ((object)(nfloat)0), Is.EqualTo (0), "compareto nfloat 4");
Assert.That (((nfloat)0).CompareTo ((object)(nfloat)1), Is.EqualTo (-1), "compareto nfloat 5");
Assert.That (((nfloat)1).CompareTo ((object)(nfloat)0), Is.EqualTo (1), "compareto nfloat 6");
Assert.That (((nfloat)1).CompareTo (null), Is.EqualTo (1), "compareto nfloat 7");
}
[Test]
public void Equals ()
{
Assert.IsTrue (((nint) 0).Equals ((nint) 0), "eq nint 1");
Assert.IsTrue (((nint) 0).Equals ((object) (nint) 0), "eq nint 2");
Assert.IsFalse (((nint) 0).Equals (null), "eq nint 3");
Assert.IsTrue (((nuint) 0).Equals ((nuint) 0), "eq nuint 1");
Assert.IsTrue (((nuint) 0).Equals ((object) (nuint) 0), "eq nuint 2");
Assert.IsFalse (((nuint) 0).Equals (null), "eq nuint 3");
Assert.IsTrue (((nfloat) 0).Equals ((nfloat) 0), "eq nfloat 1");
Assert.IsTrue (((nfloat) 0).Equals ((object) (nfloat) 0), "eq nfloat 2");
Assert.IsFalse (((nfloat) 0).Equals (null), "eq nfloat 3");
}
[Test]
public void IsInfinity ()
{
Assert.IsTrue (nfloat.IsInfinity (nfloat.PositiveInfinity), "PositiveInfinity");
Assert.IsTrue (nfloat.IsInfinity (nfloat.NegativeInfinity), "NegativeInfinity");
Assert.IsTrue (!nfloat.IsInfinity (12), "12");
Assert.IsTrue (!nfloat.IsInfinity (nfloat.NaN), "NaN");
}
[Test]
public void IsNan ()
{
Assert.IsTrue (nfloat.IsNaN (nfloat.NaN), "Nan");
Assert.IsTrue (!nfloat.IsNaN (12), "12");
Assert.IsTrue (!nfloat.IsNaN (nfloat.PositiveInfinity), "PositiveInfinity");
Assert.IsTrue (!nfloat.IsNaN (nfloat.PositiveInfinity), "NegativeInfinity");
}
[Test]
public void IsNegativeInfinity ()
{
Assert.IsTrue (nfloat.IsNegativeInfinity (nfloat.NegativeInfinity), "IsNegativeInfinity");
Assert.IsTrue (!nfloat.IsNegativeInfinity (12), "12");
Assert.IsTrue (!nfloat.IsNegativeInfinity (nfloat.NaN), "NaN");
}
[Test]
public void IsPositiveInfinity ()
{
Assert.IsTrue (nfloat.IsPositiveInfinity (nfloat.PositiveInfinity), "PositiveInfinity");
Assert.IsTrue (!nfloat.IsPositiveInfinity (12), "12");
Assert.IsTrue (!nfloat.IsPositiveInfinity (nfloat.NaN), "NaN");
}
[Test]
public void PositiveInfinity_Cast ()
{
float f = float.PositiveInfinity;
Assert.IsTrue (float.IsPositiveInfinity (f), "float PositiveInfinity");
nfloat n = (nfloat) f; // no-op on 32 bits arch
Assert.IsTrue (nfloat.IsPositiveInfinity (n), "nfloat PositiveInfinity 1");
double d = double.PositiveInfinity;
Assert.IsTrue (double.IsPositiveInfinity (d), "double PositiveInfinity");
n = (nfloat) d; // no-op on 64 bits arch
Assert.IsTrue (nfloat.IsPositiveInfinity (n), "nfloat PositiveInfinity 2");
}
[Test]
public void NegativeInfinity_Cast ()
{
float f = float.NegativeInfinity;
Assert.IsTrue (float.IsNegativeInfinity (f), "float NegativeInfinity");
nfloat n = (nfloat) f; // no-op on 32 bits arch
Assert.IsTrue (nfloat.IsNegativeInfinity (n), "nfloat NegativeInfinity 1");
double d = double.NegativeInfinity;
Assert.IsTrue (double.IsNegativeInfinity (d), "double NegativeInfinity");
n = (nfloat) d; // no-op on 64 bits arch
Assert.IsTrue (nfloat.IsNegativeInfinity (n), "nfloat NegativeInfinity 2");
}
[Test]
public void NaN_Cast ()
{
float f = float.NaN;
Assert.IsTrue (float.IsNaN (f), "float NaN");
nfloat n = (nfloat) f; // no-op on 32 bits arch
Assert.IsTrue (nfloat.IsNaN (n), "nfloat NaN 1");
double d = double.NaN;
Assert.IsTrue (double.IsNaN (d), "double NaN");
n = (nfloat) d; // no-op on 64 bits arch
Assert.IsTrue (nfloat.IsNaN (n), "nfloat NaN 2");
}
}
}
#endif