| using Unity.MLAgents.Actuators; | |
| namespace Unity.MLAgents.Tests.Actuators | |
| { | |
| internal class TestActuator : IActuator | |
| { | |
| public ActionBuffers LastActionBuffer; | |
| public int[][] Masks; | |
| public bool m_HeuristicCalled; | |
| public int m_DiscreteBufferSize; | |
| public TestActuator(ActionSpec actuatorSpace, string name) | |
| { | |
| ActionSpec = actuatorSpace; | |
| Name = name; | |
| } | |
| public void OnActionReceived(ActionBuffers actionBuffers) | |
| { | |
| LastActionBuffer = actionBuffers; | |
| } | |
| public void WriteDiscreteActionMask(IDiscreteActionMask actionMask) | |
| { | |
| for (var i = 0; i < Masks.Length; i++) | |
| { | |
| foreach (var actionIndex in Masks[i]) | |
| { | |
| actionMask.SetActionEnabled(i, actionIndex, false); | |
| } | |
| } | |
| } | |
| public ActionSpec ActionSpec { get; } | |
| public string Name { get; } | |
| public void ResetData() | |
| { | |
| } | |
| public void Heuristic(in ActionBuffers actionBuffersOut) | |
| { | |
| m_HeuristicCalled = true; | |
| m_DiscreteBufferSize = actionBuffersOut.DiscreteActions.Length; | |
| } | |
| } | |
| } | |