12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System;
- using LitMotion.Collections;
- using NUnit.Framework;
- using Unity.Collections;
- using UnityEngine;
- using UnityEngine.TestTools.Utils;
- namespace LitMotion.Tests.Runtime
- {
- public class NativeAnimationCurveTest
- {
- [Test]
- public void Test_NativeAnimationCurve_Evaluate()
- {
- var curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
- using var native = new NativeAnimationCurve(curve, Allocator.Temp);
- for (int i = 0; i < 100; i++)
- {
- var t = Mathf.InverseLerp(0, 99, i);
- Assert.That(curve.Evaluate(t), Is.EqualTo(native.Evaluate(t)).Using(FloatEqualityComparer.Instance));
- }
- }
- [Test]
- public void Test_UnsafeAnimationCurve_Evaluate()
- {
- var curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
- using var native = new UnsafeAnimationCurve(curve, Allocator.Temp);
- for (int i = 0; i < 100; i++)
- {
- var t = Mathf.InverseLerp(0, 99, i);
- Assert.That(curve.Evaluate(t), Is.EqualTo(native.Evaluate(t)).Using(FloatEqualityComparer.Instance));
- }
- }
- #if ENABLE_UNITY_COLLECTIONS_CHECKS
- [Test]
- public void Test_NativeAnimationCurve_Dispose()
- {
- var curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
- var native = new NativeAnimationCurve(curve, Allocator.Temp);
- native.Dispose();
- try
- {
- native.Evaluate(0f);
- }
- catch (ObjectDisposedException)
- {
- return;
- }
- Assert.Fail();
- }
- [Test]
- public void Test_NativeAnimationCurve_Dispose_RewindableAllocator()
- {
- var curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
- var allocator = RewindableAllocatorFactory.CreateAllocator();
- var native = new NativeAnimationCurve(curve, allocator.Allocator.Handle);
- allocator.Allocator.Rewind();
- try
- {
- native.Evaluate(0f);
- }
- catch (ObjectDisposedException)
- {
- return;
- }
- Assert.Fail();
- }
- #endif
- }
- }
|