File size: 1,201 Bytes
05c9ac2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
using Unity.MLAgents.Actuators;

namespace Unity.MLAgents.Tests.Actuators
{
    [TestFixture]
    public class ActionSpecTests
    {
        [Test]
        public void ActionSpecCombineTest()
        {
            var as0 = new ActionSpec(3, new[] { 3, 2, 1 });
            var as1 = new ActionSpec(1, new[] { 35, 122, 1, 3, 8, 3 });

            var as0NumCon = 3;
            var as0NumDis = as0.NumDiscreteActions;
            var as1NumCon = 1;
            var as1NumDis = as1.NumDiscreteActions;
            var branchSizes = new List<int>();
            branchSizes.AddRange(as0.BranchSizes);
            branchSizes.AddRange(as1.BranchSizes);

            var asc = ActionSpec.Combine(as0, as1);

            Assert.AreEqual(as0NumCon + as1NumCon, asc.NumContinuousActions);
            Assert.AreEqual(as0NumDis + as1NumDis, asc.NumDiscreteActions);
            Assert.IsTrue(branchSizes.ToArray().SequenceEqual(asc.BranchSizes));

            as0 = new ActionSpec(3);
            as1 = new ActionSpec(1);
            asc = ActionSpec.Combine(as0, as1);
            Assert.IsEmpty(asc.BranchSizes);
        }
    }
}