| using NUnit.Framework; |
| using Unity.MLAgents.Sensors; |
| using UnityEngine; |
|
|
| namespace Unity.MLAgents.Tests |
| { |
| [TestFixture] |
| public class AcademyTests |
| { |
| [Test] |
| public void TestPackageVersion() |
| { |
| var packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssembly(typeof(Agent).Assembly); |
| Assert.AreEqual("com.unity.ml-agents", packageInfo.name); |
| Assert.AreEqual(Academy.k_PackageVersion, packageInfo.version); |
| } |
|
|
| class RecursiveAgent : Agent |
| { |
| int m_collectObsCount; |
| public override void CollectObservations(VectorSensor sensor) |
| { |
| m_collectObsCount++; |
| if (m_collectObsCount == 1) |
| { |
| |
| Academy.Instance.EnvironmentStep(); |
| } |
| } |
| } |
|
|
| [Test] |
| public void TestRecursiveStepThrows() |
| { |
| var gameObj = new GameObject(); |
| var agent = gameObj.AddComponent<RecursiveAgent>(); |
| agent.Awake(); |
| agent.LazyInitialize(); |
| agent.RequestDecision(); |
|
|
| Assert.Throws<UnityAgentsException>(() => |
| { |
| Academy.Instance.EnvironmentStep(); |
| }); |
|
|
| |
| Academy.Instance.EnvironmentStep(); |
| } |
| } |
| } |
|
|