/// <summary>
 ///   Needs to be called to fill viewmodel with data
 /// </summary>
 /// <param name="statisticsSet">
 ///   Provides underlying data
 /// </param>
 /// <returns>
 ///   Itself to enable fluent interface
 /// </returns>
 public IDetailedStatisticsViewModel InitializeWith(IActionSequenceStatisticsSet statisticsSet)
 {
     ActionSequenceStatisticsSet = statisticsSet;
     StatisticsDescription       = _detailedStatisticsDescriber.Describe(statisticsSet.PlayerName, statisticsSet.ActionSequence, statisticsSet.Street, statisticsSet.InPosition);
     StatisticsHint = _detailedStatisticsDescriber.Hint(statisticsSet.PlayerName, statisticsSet.ActionSequence, statisticsSet.InPosition);
     return(CreateTableFor(statisticsSet));
 }
        protected override IDetailedStatisticsViewModel CreateTableFor(IActionSequenceStatisticsSet statisticsSet)
        {
            var betRow =
                new StatisticsTableRowViewModel("Bet", statisticsSet.ActionSequenceStatistics.Last().Percentages, "%");
            var countRow =
                new StatisticsTableRowViewModel("Count", statisticsSet.SumOfCountsByColumn, string.Empty);

            Rows = new List <IStatisticsTableRowViewModel>(new[] { betRow, countRow });

            return(this);
        }
Beispiel #3
0
        public void InitializeWith_Always_InitializesViewModelHistoryWithCurrentViewModel()
        {
            IActionSequenceStatisticsSet statisticsSetStub = _stub.Setup <IActionSequenceStatisticsSet>()
                                                             .Get(s => s.Street).Returns(Streets.PreFlop)
                                                             .Out;

            _sut.InitializeWith(statisticsSetStub);
            _sut.ViewModelHistory
            .ShouldHaveCount(1)
            .First().ShouldBe(_sut.CurrentViewModel);
        }
Beispiel #4
0
        protected override IDetailedStatisticsViewModel CreateTableFor(IActionSequenceStatisticsSet statisticsSet)
        {
            var foldRow =
                new StatisticsTableRowViewModel("Fold", statisticsSet.ActionSequenceStatistics.First().Percentages, "%");
            var callRow =
                new StatisticsTableRowViewModel("Call", statisticsSet.ActionSequenceStatistics.ElementAt(1).Percentages, "%");
            var raiseRow =
                new StatisticsTableRowViewModel("Raise", statisticsSet.ActionSequenceStatistics.Last().Percentages, "%");
            var countRow =
                new StatisticsTableRowViewModel("Count", statisticsSet.SumOfCountsByColumn, string.Empty);

            Rows = new List <IStatisticsTableRowViewModel>(new[] { foldRow, callRow, raiseRow, countRow });

            return(this);
        }
Beispiel #5
0
        public void InitializeWith_StatisticsSet_InitializesNewViewModelWithStatisticsSet()
        {
            IActionSequenceStatisticsSet statisticsSetStub = _stub.Setup <IActionSequenceStatisticsSet>()
                                                             .Get(s => s.Street).Returns(Streets.PreFlop)
                                                             .Out;

            var preFlopStatisticsViewModelMock = new Mock <IDetailedPreFlopStatisticsViewModel>();

            _sut = new DetailedStatisticsAnalyzerViewModel(
                new Constructor <IDetailedPreFlopStatisticsViewModel>(() => preFlopStatisticsViewModelMock.Object),
                _stub.Out <IConstructor <IDetailedPostFlopHeroActsStatisticsViewModel> >(),
                _stub.Out <IConstructor <IDetailedPostFlopHeroReactsStatisticsViewModel> >(),
                _repositoryBrowserVM_Mock.Object);

            _sut.InitializeWith(statisticsSetStub);

            preFlopStatisticsViewModelMock.Verify(vm => vm.InitializeWith(statisticsSetStub));
        }
        public IDetailedStatisticsAnalyzerViewModel InitializeWith(IActionSequenceStatisticsSet actionSequenceStatisticsSet)
        {
            ViewModelHistory.Clear();

            Predicate <IActionSequenceStatisticsSet> isPreflop   = s => s.Street == Streets.PreFlop;
            Predicate <IActionSequenceStatisticsSet> isHeroActs  = s => s.ActionSequence == ActionSequences.HeroActs;
            Predicate <IActionSequenceStatisticsSet> isOppB      = s => s.ActionSequence == ActionSequences.OppB;
            Predicate <IActionSequenceStatisticsSet> isHeroXOppB = s => s.ActionSequence == ActionSequences.HeroXOppB;

            IDetailedStatisticsViewModel detailedStatisticsViewModel = null;

            actionSequenceStatisticsSet.Match()
            .With(isPreflop, _ => detailedStatisticsViewModel   = _detailedPreFlopStatisticsViewModelMake.New)
            .With(isHeroActs, _ => detailedStatisticsViewModel  = _detailedPostFlopActionStatisticsViewModelMake.New)
            .With(isOppB, _ => detailedStatisticsViewModel      = _detailedPostFlopReactionStatisticsViewModelMake.New)
            .With(isHeroXOppB, _ => detailedStatisticsViewModel = _detailedPostFlopReactionStatisticsViewModelMake.New)
            .Do();

            AddViewModel(detailedStatisticsViewModel);
            detailedStatisticsViewModel.InitializeWith(actionSequenceStatisticsSet);

            return(this);
        }
        public IStatisticsSetSummaryViewModel UpdateWith(IActionSequenceStatisticsSet statisticsSet)
        {
            _statisticsSet = statisticsSet;

            if (statisticsSet.ActionSequenceStatistics.Count() < 1)
            {
                throw new ArgumentException("ActionSequenceStatistics cannot have count zero", "statisticsSet");
            }

            for (int row = 0; row < statisticsSet.ActionSequenceStatistics.Count(); row++)
            {
                var statistic = statisticsSet.ActionSequenceStatistics.ElementAt(row);

                if (Rows.Count < row + 1)
                {
                    Rows.Add(new StatisticsSetSummaryRowViewModel(statistic._actionSequence, new BarGraphViewModel()));
                }

                Rows[row].UpdateWith(statisticsSet.CumulativePercentagesByRow[row], statistic.Percentages);
            }

            return(this);
        }
Beispiel #8
0
 protected override IDetailedStatisticsViewModel CreateTableFor(
     IActionSequenceStatisticsSet statisticsSet)
 {
     return(this);
 }
 protected abstract IDetailedStatisticsViewModel CreateTableFor(IActionSequenceStatisticsSet statisticsSet);