public void if_result_not_changed_stay_at_one()
        {
            var inputs    = Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Dragon), 14);
            var predictor = new DrTom3Predictor();
            var outputs   = inputs.Select((x, i) => new GameStateOutput(i, x.ActualScore, x.BetScore)).ToList();

            for (int i = 0; i < outputs.Count; i++)
            {
                var output = predictor.Predict(outputs, i);
                outputs[i] = output;
            }

            Assert.AreEqual(DrTom2State.One, outputs.Last().ResultPrediction.IfNoneUnsafe(() => null).Status);
            Assert.AreEqual(Result.Win, outputs.Last().ResultPrediction.IfNoneUnsafe(() => null).Result);
        }
        public void initial_status_should_be_one_and_same_result()
        {
            var inputs    = Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Tiger), 13);
            var predictor = new DrTom3Predictor();
            var outputs   = inputs.Select((x, i) => new GameStateOutput(i, x.ActualScore, x.BetScore)).ToList();

            for (int i = 0; i < outputs.Count; i++)
            {
                var output = predictor.Predict(outputs, i);
                outputs[i] = output;
            }

            Assert.AreEqual(DrTom2State.One, outputs.Last().ResultPrediction.IfNoneUnsafe(() => null).Status);
            Assert.AreEqual(Result.Lose, outputs.Last().ResultPrediction.IfNoneUnsafe(() => null).Result);
        }
        public void WhenResultChanged_ThenStatusShouldStillSameAsLastStatus()
        {
            var inputs = Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Dragon), 12)
                         .Concat(Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Tiger), 1));
            var predictor = new DrTom3Predictor();
            var outputs   = inputs.Select((x, i) => new GameStateOutput(i, x.ActualScore, x.BetScore)).ToList();

            for (int i = 0; i < outputs.Count; i++)
            {
                var output = predictor.Predict(outputs, i);
                outputs[i] = output;
            }

            Assert.AreEqual(DrTom2State.One, outputs.Last().ResultPrediction.IfNoneUnsafe(() => null).Status);
            Assert.AreEqual(Result.Lose, outputs.Last().ResultPrediction.IfNoneUnsafe(() => null).Result);
        }
        public void WhenResultDifferent3TimesAfterCMinus_ThenStatusShouldChangedCPlus()
        {
            var inputs = Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Dragon), 13)
                         .Concat(Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Tiger), 1))
                         .Concat(Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Dragon), 1))
                         .Concat(Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Tiger), 1))
                         .Concat(Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Dragon), 2))
                         .Concat(Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Tiger), 1))
                         .Concat(Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Dragon), 1))
                         .Concat(Enumerable.Repeat(new GameStateInput(Score.Dragon, Score.Tiger), 1));
            var predictor = new DrTom3Predictor();
            var outputs   = inputs.Select((x, i) => new GameStateOutput(i, x.ActualScore, x.BetScore)).ToList();

            for (int i = 0; i < outputs.Count; i++)
            {
                var output = predictor.Predict(outputs, i);
                outputs[i] = output;
            }

            Assert.AreEqual(DrTom2State.CPlus, outputs.Last().ResultPrediction.IfNoneUnsafe(() => null).Status);
            Assert.AreEqual(Result.Win, outputs.Last().ResultPrediction.IfNoneUnsafe(() => null).Result);
        }
Пример #5
0
        public Form1()
        {
            InitializeComponent();

            dataGridView1.DoubleBuffered(true);
            dataGridView2.DoubleBuffered(true);

            var predictors = new IPredictor[]
            {
                new SameDifferentPredictor(),
                new Anti12Predictor(),
                new Anti2Predictor(),
            };

            var resultPredictor = new DrTom3Predictor();

            _predictionService = new PredictionService(predictors, resultPredictor);

            _scores = new List <ScoreBoardModel>();

            keyValueModelBindingSource.DataSource = new List <KeyValueModel>()
            {
                new KeyValueModel(),
                new KeyValueModel()
                {
                    Key = _dragonText, Value = _dragonText
                },
                new KeyValueModel()
                {
                    Key = _tigerText, Value = _tigerText
                }
            };

            topPredictionModeComboBox.SelectedIndex = 2;

            winCountNumeric.Maximum = lookBehideNumeric.Value;

            SetupChart();
        }
 public void TestGraphGenerator()
 {
     var predictor    = new DrTom3Predictor();
     var dotGraphText = UmlDotGraph.Format(predictor.StateMachine.GetInfo());
 }