Skip to content

Commit dbda7d0

Browse files
author
Chris Elion
committed
add unit tests and fix exceptions (#3930)
1 parent 0a05e3c commit dbda7d0

File tree

3 files changed

+56
-12
lines changed

3 files changed

+56
-12
lines changed

com.unity.ml-agents/Runtime/Communicator/GrpcExtensions.cs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ public static AgentInfoActionPairProto ToInfoActionPairProto(this AgentInfo ai)
2626
{
2727
var agentInfoProto = ai.ToAgentInfoProto();
2828

29-
var agentActionProto = new AgentActionProto
29+
var agentActionProto = new AgentActionProto();
30+
if(ai.storedVectorActions != null)
3031
{
31-
VectorActions = { ai.storedVectorActions }
32-
};
32+
agentActionProto.VectorActions.AddRange(ai.storedVectorActions);
33+
}
3334

3435
return new AgentInfoActionPairProto
3536
{
@@ -95,12 +96,14 @@ public static BrainParametersProto ToProto(this BrainParameters bp, string name,
9596
var brainParametersProto = new BrainParametersProto
9697
{
9798
VectorActionSize = { bp.VectorActionSize },
98-
VectorActionSpaceType =
99-
(SpaceTypeProto)bp.VectorActionSpaceType,
99+
VectorActionSpaceType = (SpaceTypeProto) bp.VectorActionSpaceType,
100100
BrainName = name,
101101
IsTraining = isTraining
102102
};
103-
brainParametersProto.VectorActionDescriptions.AddRange(bp.VectorActionDescriptions);
103+
if(bp.VectorActionDescriptions != null)
104+
{
105+
brainParametersProto.VectorActionDescriptions.AddRange(bp.VectorActionDescriptions);
106+
}
104107
return brainParametersProto;
105108
}
106109

@@ -128,13 +131,14 @@ public static BrainParameters ToBrainParameters(this BrainParametersProto bpp)
128131
/// </summary>
129132
public static DemonstrationMetaProto ToProto(this DemonstrationMetaData dm)
130133
{
134+
var demonstrationName = dm.demonstrationName ?? "";
131135
var demoProto = new DemonstrationMetaProto
132136
{
133137
ApiVersion = DemonstrationMetaData.ApiVersion,
134138
MeanReward = dm.meanReward,
135139
NumberSteps = dm.numberSteps,
136140
NumberEpisodes = dm.numberEpisodes,
137-
DemonstrationName = dm.demonstrationName
141+
DemonstrationName = demonstrationName
138142
};
139143
return demoProto;
140144
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using NUnit.Framework;
2+
using UnityEngine;
3+
using Unity.MLAgents.Policies;
4+
using Unity.MLAgents.Demonstrations;
5+
using Unity.MLAgents.Sensors;
6+
7+
namespace Unity.MLAgents.Tests
8+
{
9+
[TestFixture]
10+
public class GrpcExtensionsTests
11+
{
12+
[Test]
13+
public void TestDefaultBrainParametersToProto()
14+
{
15+
// Should be able to convert a default instance to proto.
16+
var brain = new BrainParameters();
17+
brain.ToProto("foo", false);
18+
}
19+
20+
[Test]
21+
public void TestDefaultAgentInfoToProto()
22+
{
23+
// Should be able to convert a default instance to proto.
24+
var agentInfo = new AgentInfo();
25+
agentInfo.ToInfoActionPairProto();
26+
agentInfo.ToAgentInfoProto();
27+
}
28+
29+
[Test]
30+
public void TestDefaultDemonstrationMetaDataToProto()
31+
{
32+
// Should be able to convert a default instance to proto.
33+
var demoMetaData = new DemonstrationMetaData();
34+
demoMetaData.ToProto();
35+
}
36+
}
37+
}

com.unity.ml-agents/Tests/Editor/MLAgentsEditModeTest.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ internal class TestPolicy : IPolicy
1313
{
1414
public Action OnRequestDecision;
1515
ObservationWriter m_ObsWriter = new ObservationWriter();
16-
public void RequestDecision(AgentInfo info, List<ISensor> sensors) {
17-
foreach(var sensor in sensors){
16+
public void RequestDecision(AgentInfo info, List<ISensor> sensors)
17+
{
18+
foreach (var sensor in sensors)
19+
{
1820
sensor.GetObservationProto(m_ObsWriter);
1921
}
2022
OnRequestDecision?.Invoke();
@@ -517,8 +519,10 @@ public void AssertStackingReset()
517519
agent1.SetPolicy(policy);
518520

519521
StackingSensor sensor = null;
520-
foreach(ISensor s in agent1.sensors){
521-
if (s is StackingSensor){
522+
foreach (ISensor s in agent1.sensors)
523+
{
524+
if (s is StackingSensor)
525+
{
522526
sensor = s as StackingSensor;
523527
}
524528
}
@@ -529,7 +533,6 @@ public void AssertStackingReset()
529533
{
530534
agent1.RequestDecision();
531535
aca.EnvironmentStep();
532-
533536
}
534537

535538
policy.OnRequestDecision = () => SensorTestHelper.CompareObservation(sensor, new[] {18f, 19f, 21f});

0 commit comments

Comments
 (0)