您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
59 行
1.7 KiB
59 行
1.7 KiB
using NUnit.Framework;
|
|
using Unity.MLAgents.Sensors;
|
|
using UnityEngine;
|
|
#if UNITY_2019_3_OR_NEWER
|
|
using System.Reflection;
|
|
using Unity.MLAgents;
|
|
#endif
|
|
|
|
namespace Unity.MLAgents.Tests
|
|
{
|
|
[TestFixture]
|
|
public class AcademyTests
|
|
{
|
|
[Test]
|
|
public void TestPackageVersion()
|
|
{
|
|
// Make sure that the version strings in the package and Academy don't get out of sync.
|
|
// Unfortunately, the PackageInfo methods don't exist in earlier versions of the editor.
|
|
#if UNITY_2019_3_OR_NEWER
|
|
var packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssembly(typeof(Agent).Assembly);
|
|
Assert.AreEqual("com.unity.ml-agents", packageInfo.name);
|
|
Assert.AreEqual(Academy.k_PackageVersion, packageInfo.version);
|
|
#endif
|
|
}
|
|
|
|
class RecursiveAgent : Agent
|
|
{
|
|
int m_collectObsCount;
|
|
public override void CollectObservations(VectorSensor sensor)
|
|
{
|
|
m_collectObsCount++;
|
|
if (m_collectObsCount == 1)
|
|
{
|
|
// NEVER DO THIS IN REAL CODE!
|
|
Academy.Instance.EnvironmentStep();
|
|
}
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void TestRecursiveStepThrows()
|
|
{
|
|
var gameObj = new GameObject();
|
|
var agent = gameObj.AddComponent<RecursiveAgent>();
|
|
agent.LazyInitialize();
|
|
agent.RequestDecision();
|
|
|
|
Assert.Throws<UnityAgentsException>(() =>
|
|
{
|
|
Academy.Instance.EnvironmentStep();
|
|
});
|
|
|
|
// Make sure the Academy reset to a good state and is still steppable.
|
|
Academy.Instance.EnvironmentStep();
|
|
}
|
|
|
|
|
|
}
|
|
}
|