コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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
ファイル: Form1.cs プロジェクト: rungwiroon/GamblingStat
        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();
        }
コード例 #6
0
 public void TestGraphGenerator()
 {
     var predictor    = new DrTom3Predictor();
     var dotGraphText = UmlDotGraph.Format(predictor.StateMachine.GetInfo());
 }