public void MaskReset()
        {
            var bp = new BrainParameters
            {
                vectorActionSpaceType = SpaceType.Discrete,
                vectorActionSize      = new[] { 4, 5, 6 }
            };
            var masker = new DiscreteActionMasker(bp);

            masker.SetMask(1, new[] { 1, 2, 3 });
            masker.ResetMask();
            var mask = masker.GetMask();

            for (var i = 0; i < 15; i++)
            {
                Assert.IsFalse(mask[i]);
            }
        }
        public void ThrowsError()
        {
            var bp = new BrainParameters
            {
                vectorActionSpaceType = SpaceType.Discrete,
                vectorActionSize      = new[] { 4, 5, 6 }
            };
            var masker = new DiscreteActionMasker(bp);

            Assert.Catch <UnityAgentsException>(
                () => masker.SetMask(0, new[] { 5 }));
            Assert.Catch <UnityAgentsException>(
                () => masker.SetMask(1, new[] { 5 }));
            masker.SetMask(2, new[] { 5 });
            Assert.Catch <UnityAgentsException>(
                () => masker.SetMask(3, new[] { 1 }));
            masker.GetMask();
            masker.ResetMask();
            masker.SetMask(0, new[] { 0, 1, 2, 3 });
            Assert.Catch <UnityAgentsException>(
                () => masker.GetMask());
        }