Beispiel #1
0
        public void StateMachineExecutor_SURF_Five_Results_Execute()
        {
            // Arrange
            StateMachineExecutor.Parameters parms = new StateMachineExecutor.Parameters()
            {
                Results = new List <IResult>()
                {
                    new SURFResult()
                    {
                        Coordinator      = new Point(1, 23),
                        Note             = ENote.C,
                        NumberOfElements = 100,
                        Pixel            = Color.Red
                    },
                    new SURFResult()
                    {
                        Coordinator      = new Point(1, 40),
                        Note             = ENote.Dm,
                        NumberOfElements = 87,
                        Pixel            = Color.Yellow
                    },
                    new SURFResult()
                    {
                        Coordinator      = new Point(40, 23),
                        Note             = ENote.G,
                        NumberOfElements = 87,
                        Pixel            = Color.Yellow
                    },
                    new SURFResult()
                    {
                        Coordinator      = new Point(15, 44),
                        Note             = ENote.Dm,
                        NumberOfElements = 87,
                        Pixel            = Color.Yellow
                    },
                    new SURFResult()
                    {
                        Coordinator      = new Point(15, 44),
                        Note             = ENote.Dm,
                        NumberOfElements = 87,
                        Pixel            = Color.Yellow
                    }
                },
                MaxNotes   = 30,
                TargetType = EModelType.SURF
            };

            // Act
            List <IState> states = new StateMachineExecutor(parms).Execute();

            // Assert
            Assert.IsNotNull(states);
            Assert.AreEqual(30, states.Count);
            states.ForEach(s =>
            {
                Assert.IsFalse(s.LinkedStates.IsNullOrEmpty());
                Assert.AreEqual(4, s.LinkedStates.Count);
            });
        }
        private List <IState> ExecuteStateMachine(MusicalizationArgs parser, Model model)
        {
            StateMachineExecutor.Parameters parameters = new StateMachineExecutor.Parameters()
            {
                LogPath  = parser.LogPath,
                MaxNotes = parser.MaxNotes,
                ProbabilityCalculation = parser.ProbabilityCalculation,
                Results     = model.Result,
                SequenceLog = parser.SequenceLog,
                StateLog    = parser.StateLog,
                TargetType  = parser.TargetType
            };
            StateMachineExecutor stateMachineExecutor = new StateMachineExecutor(parameters);

            stateMachineExecutor.NotificationRequested += LogNotifier;
            return(stateMachineExecutor.Execute());
        }