Exemplo n.º 1
0
        public void デシリアライズ後Restoreされたものは同じDecisionをする()
        {
            // Init parent
            var parentDecisionMaker = new ReinforcementDecisionMaker();
            var actions             = new List <IAction>();

            for (int i = 0; i < 100; i++)
            {
                actions.Add(LocomotionAction.GoStraight(i.ToString()));
            }
            parentDecisionMaker.Init(actions);
            parentDecisionMaker.DecideAction(_dummyStates[0], forceRandom: false, forceMax: true);

            var saveDataClone      = EditorTestExtensions.DeepCloneByMsgPack(parentDecisionMaker.Save());
            var decisionMakerClone = saveDataClone.Instantiate() as ReinforcementDecisionMaker;

            // Assertion
            foreach (var state in _dummyStates)
            {
                Assert.AreEqual(
                    parentDecisionMaker.DecideAction(state, forceRandom: false, forceMax: true)
                    .Name,     // choose from 100 choice
                    decisionMakerClone.DecideAction(state, forceRandom: false, forceMax: true).Name
                    );
            }
        }
Exemplo n.º 2
0
        public void SerializationTest()
        {
            var sm = new EvolutionarySequenceMaker(0.3f, 3);

            sm.Init(
                dummyActions,
                new Dictionary <Guid, int> {
                { Guid.NewGuid(), (new ManipulatableMock()).GetManipulatableDimention() }
            }
                );

            var src = sm.Save();

            var srcBinary = EditorTestExtensions.SerializeByMsgPack(src);
            var dst       = EditorTestExtensions.DeepCloneByMsgPack(src);
            var dstBinary = EditorTestExtensions.SerializeByMsgPack(dst);

            Assert.IsTrue(srcBinary.SequenceEqual(dstBinary));
        }
Exemplo n.º 3
0
        public void デシリアライズ後Restoreされたものは同じDecisionをする()
        {
            var decisionMaker = createDummy();

            var saveData       = decisionMaker.Save();
            var clonedSaveData = EditorTestExtensions.DeepCloneByMsgPack(saveData);

            var decisionMakerClone = clonedSaveData.Instantiate();

            decisionMakerClone.Restore(_actions);

            var tmpState = new State();

            tmpState[State.BasicKeys.RelativeFoodPosition] = new DenseVector(new double[] { 1, 0, 2 });
            var action1 = decisionMaker.DecideAction(tmpState);
            var action2 = decisionMakerClone.DecideAction(tmpState);

            Assert.AreEqual(
                action1.Name,
                action2.Name
                );
        }
Exemplo n.º 4
0
        public void デシリアライズ後Restoreされたものは同じDecisionをする()
        {
            var decisionMaker = createDummy();

            var saveData       = decisionMaker.Save();
            var clonedSaveData = EditorTestExtensions.DeepCloneByMsgPack(saveData);

            var decisionMakerClone = clonedSaveData.Instantiate();

            decisionMakerClone.Restore(_actions);

            var tmpState = TempState();

            tmpState[State.BasicKeys.TotalFoodEnergyEachDirection][6] = 1f;
            var action1 = decisionMaker.DecideAction(tmpState);
            var action2 = decisionMakerClone.DecideAction(tmpState);

            Assert.AreEqual(
                action1.Name,
                action2.Name
                );
        }