|
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(); |
|
} |
|
} |
|
} |
|
|