| using System; |
| using System.Linq; |
| using System.Text; |
| using NUnit.Framework; |
| using Google.Protobuf; |
| using Unity.MLAgents.Analytics; |
| using Unity.MLAgents.SideChannels; |
| using Unity.MLAgents.CommunicatorObjects; |
|
|
|
|
| namespace Unity.MLAgents.Tests |
| { |
| |
| |
| |
| |
| |
| public class TrainingAnalyticsSideChannelTests |
| { |
| [Test] |
| public void TestTrainingEnvironmentReceived() |
| { |
| var anyMsg = Google.Protobuf.WellKnownTypes.Any.Pack(new TrainingEnvironmentInitialized()); |
| var anyMsgBytes = anyMsg.ToByteArray(); |
| var sideChannel = new TrainingAnalyticsSideChannel(); |
| using (new AnalyticsUtils.DisableAnalyticsSending()) |
| { |
| sideChannel.ProcessMessage(anyMsgBytes); |
| } |
| } |
|
|
| [Test] |
| public void TestTrainingBehaviorReceived() |
| { |
| var anyMsg = Google.Protobuf.WellKnownTypes.Any.Pack(new TrainingBehaviorInitialized()); |
| var anyMsgBytes = anyMsg.ToByteArray(); |
| var sideChannel = new TrainingAnalyticsSideChannel(); |
| using (new AnalyticsUtils.DisableAnalyticsSending()) |
| { |
| sideChannel.ProcessMessage(anyMsgBytes); |
| } |
| } |
|
|
| [Test] |
| public void TestInvalidProtobufMessage() |
| { |
| |
| var badBytes = Encoding.ASCII.GetBytes("Lorem ipsum"); |
| var sideChannel = new TrainingAnalyticsSideChannel(); |
| using (new AnalyticsUtils.DisableAnalyticsSending()) |
| { |
| sideChannel.ProcessMessage(badBytes); |
| } |
|
|
| |
| var anyMsg = Google.Protobuf.WellKnownTypes.Any.Pack(new TrainingBehaviorInitialized()); |
| var anyMsgBytes = anyMsg.ToByteArray(); |
| var truncatedMessage = new ArraySegment<byte>(anyMsgBytes, 0, anyMsgBytes.Length - 1).ToArray(); |
| using (new AnalyticsUtils.DisableAnalyticsSending()) |
| { |
| sideChannel.ProcessMessage(truncatedMessage); |
| } |
| } |
| } |
| } |
|
|