Files
adriadri6972 d3d9c5f833 upload project
2025-07-31 15:21:08 +02:00

154 lines
5.5 KiB
C#

using NUnit.Framework;
namespace UnityEngine.XR.ARKit.Tests
{
[TestFixture]
class OSVersionTestFixture
{
void GreaterThan(int major, int minor, int point)
{
Assert.That(new OSVersion(major + 1, minor, point) > new OSVersion(major, minor, point));
Assert.That(!(new OSVersion(major, minor, point) > new OSVersion(major + 1, minor, point)));
Assert.That(new OSVersion(major, minor + 1, point) > new OSVersion(major, minor, point));
Assert.That(!(new OSVersion(major, minor, point) > new OSVersion(major, minor + 1, point)));
Assert.That(new OSVersion(major, minor, point + 1) > new OSVersion(major, minor, point));
Assert.That(!(new OSVersion(major, minor, point) > new OSVersion(major, minor, point + 1)));
}
void LessThan(int major, int minor, int point)
{
Assert.That(new OSVersion(major - 1, minor, point) < new OSVersion(major, minor, point));
Assert.That(!(new OSVersion(major, minor, point) < new OSVersion(major - 1, minor, point)));
Assert.That(new OSVersion(major, minor - 1, point) < new OSVersion(major, minor, point));
Assert.That(!(new OSVersion(major, minor, point) < new OSVersion(major, minor - 1, point)));
Assert.That(new OSVersion(major, minor, point - 1) < new OSVersion(major, minor, point));
Assert.That(!(new OSVersion(major, minor, point) < new OSVersion(major, minor, point - 1)));
}
void LessThanOrEqualTo(int major, int minor, int point)
{
Assert.That(new OSVersion(major, minor, point) <= new OSVersion(major, minor, point));
LessThan(major, minor, point);
}
void GreaterThanOrEqualTo(int major, int minor, int point)
{
Assert.That(new OSVersion(major, minor, point) >= new OSVersion(major, minor, point));
GreaterThan(major, minor, point);
}
void EqualTo(int major, int minor, int point)
{
Assert.That(new OSVersion(major, minor, point) == new OSVersion(major, minor, point));
Assert.That(!(new OSVersion(major + 1, minor, point) == new OSVersion(major, minor, point)));
Assert.That(!(new OSVersion(major, minor + 1, point) == new OSVersion(major, minor, point)));
Assert.That(!(new OSVersion(major, minor, point + 1) == new OSVersion(major, minor, point)));
}
void NotEqualTo(int major, int minor, int point)
{
Assert.That(!(new OSVersion(major, minor, point) != new OSVersion(major, minor, point)));
Assert.That(new OSVersion(major + 1, minor, point) != new OSVersion(major, minor, point));
Assert.That(new OSVersion(major, minor + 1, point) != new OSVersion(major, minor, point));
Assert.That(new OSVersion(major, minor, point + 1) != new OSVersion(major, minor, point));
}
void TestStringParser(int major, int minor, int point)
{
var version = new OSVersion(major, minor, point);
var versionString = version.ToString();
Assert.That(OSVersion.Parse(versionString).Equals(version));
// Add unicode characters
Assert.That(OSVersion.Parse("iPhone version 中文" + versionString + "عربى -/@!@#$23").Equals(version));
}
[Test]
public void GreaterThan()
{
GreaterThan(1, 2, 3);
}
[Test]
public void GreaterThanOrEqualTo()
{
GreaterThanOrEqualTo(1, 2, 3);
}
[Test]
public void LessThan()
{
LessThan(2, 3, 4);
}
[Test]
public void LessThanOrEqualTo()
{
LessThanOrEqualTo(2, 3, 4);
}
[Test]
public void EqualTo()
{
EqualTo(1, 2, 3);
}
[Test]
public void NotEqualTo()
{
NotEqualTo(1, 2, 3);
}
[Test]
public void StringParser()
{
for (int point = 0; point < 10; ++point)
{
TestStringParser(0, 1, point);
TestStringParser(12, 0, point);
TestStringParser(9, 0, point);
TestStringParser(0, 99, point);
TestStringParser(999, 999, point);
TestStringParser(0, 0, point);
}
Assert.That(OSVersion.Parse("iOS 12.2") == new OSVersion(12, 2));
Assert.That(OSVersion.Parse("iOS 12.3.1") == new OSVersion(12, 3, 1));
// We do a lot of tests against iOS 12, so let's actually check that.
Assert.That(OSVersion.Parse("12") >= new OSVersion(12));
Assert.That(OSVersion.Parse("12.0") >= new OSVersion(12));
Assert.That(OSVersion.Parse("12.1") >= new OSVersion(12));
Assert.That(OSVersion.Parse("12.1.1") >= new OSVersion(12));
}
[Test]
public void IgnoresLeadingZeroes()
{
Assert.That(OSVersion.Parse("0012.02.004") == new OSVersion(12, 2, 4));
}
[Test]
public void StopsParsingAtFirstInvalidCharacter()
{
Assert.That(OSVersion.Parse("12.2 .4") == new OSVersion(12, 2));
}
[Test]
public void HandlesNull()
{
Assert.That(OSVersion.Parse(null) == new OSVersion(0));
}
[Test]
public void HandlesEmptyString()
{
Assert.That(OSVersion.Parse("") == new OSVersion(0));
}
}
}