| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Numerics;
- using NUnit.Framework;
- namespace SharpGLTF
- {
- using System.Numerics;
- using Schema2;
- [TestFixture]
- [Category("Core")]
- public class InternalExtensionsTests
- {
- internal static int _WordPadded(int length)
- {
- var padding = (length & 3);
- return length + (padding == 0 ? 0 : 4 - padding);
- }
- [Test]
- public void TestPadding()
- {
- Assert.That(_WordPadded(1), Is.EqualTo(4));
- Assert.That(_WordPadded(2), Is.EqualTo(4));
- Assert.That(_WordPadded(3), Is.EqualTo(4));
- Assert.That(_WordPadded(4), Is.EqualTo(4));
- Assert.That(_WordPadded(5), Is.EqualTo(8));
- }
- [Test]
- public void TestAsNullableExtensions()
- {
- // the AsNullable extensions are a bit tricky;
- // they should default to null regardless of the value being inside or outside the bounds of min-max
- // but if after the min.max has affected the value, the default-to-null check still applies.
- Assert.That(5.AsNullable(5), Is.EqualTo(null));
- Assert.That(0.AsNullable(3, 1, 5), Is.EqualTo(1));
- Assert.That(1.AsNullable(3, 1, 5), Is.EqualTo(1));
- Assert.That(2.AsNullable(3, 1, 5), Is.EqualTo(2));
- Assert.That(3.AsNullable(3, 1, 5), Is.EqualTo(null));
- Assert.That(4.AsNullable(3, 1, 5), Is.EqualTo(4));
- Assert.That(5.AsNullable(3, 1, 5), Is.EqualTo(5));
- Assert.That(6.AsNullable(3, 1, 5), Is.EqualTo(5));
- // vectors
- Assert.That(Vector2.Zero.AsNullable(Vector2.One, Vector2.One, Vector2.One * 2), Is.EqualTo(null));
- Assert.That(new Vector2(3).AsNullable(Vector2.One, Vector2.One, Vector2.One * 2), Is.EqualTo(new Vector2(2)));
- Assert.That(Vector3.Zero.AsNullable(Vector3.One, Vector3.One, Vector3.One * 2), Is.EqualTo(null));
- Assert.That(new Vector3(3).AsNullable(Vector3.One, Vector3.One, Vector3.One * 2), Is.EqualTo(new Vector3(2)));
- Assert.That(Vector4.Zero.AsNullable(Vector4.One, Vector4.One, Vector4.One * 2), Is.EqualTo(null));
- Assert.That(new Vector4(3).AsNullable(Vector4.One, Vector4.One, Vector4.One * 2), Is.EqualTo(new Vector4(2)));
- // special case: default values outside the min-max range should also return null
- Assert.That(0.AsNullable( 0, 1, 5), Is.EqualTo(null));
- Assert.That(10.AsNullable(10, 1, 5), Is.EqualTo(null));
- Assert.That(Vector2.Zero.AsNullable(Vector2.Zero, Vector2.One, Vector2.One * 5), Is.EqualTo(null));
- Assert.That(Vector3.Zero.AsNullable(Vector3.Zero, Vector3.One, Vector3.One * 5), Is.EqualTo(null));
- Assert.That(Vector4.Zero.AsNullable(Vector4.Zero, Vector4.One, Vector4.One * 5), Is.EqualTo(null));
- }
- }
- }
|