public void StrategyBChoiceReturnsStrategyAChoideASuppliedToConstructor()
        {
            var strategyAResult = new CooperationStrategyResult();
            var strategyBResult = new CooperationStrategyResult();

            // Act
            var matchupResult = new CooperationStrategyMatchupResult(strategyAResult, strategyBResult);

            // Assert
            Assert.Equal(strategyBResult, matchupResult.StrategyBResult);
        }
        public void PlayWithLastMatchupResultReturnsCorrectCooperationStrategyMatchupResultForStrategyB()
        {
            // Arrange
            var strategyA = new TitForTatCooperationStrategy();
            var strategyB = new TitForTatCooperationStrategy();
            var cooperationChoicePayoff = new CooperationChoicesPayoff();
            var cooperationStrategyMatchup = new CooperationStrategyMatchup(strategyA, strategyB, cooperationChoicePayoff);
            var lastMatchupResult = new CooperationStrategyMatchupResult(
                new CooperationStrategyResult
                    {
                        Strategy = strategyA,
                        ChoiceMade = CooperationChoice.Cooperate,
                        Payoff =
                            cooperationChoicePayoff.Calculate(
                                CooperationChoice.Cooperate, CooperationChoice.Cooperate),
                    },
                new CooperationStrategyResult
                    {
                        Strategy = strategyB,
                        ChoiceMade = CooperationChoice.Cooperate,
                        Payoff =
                            cooperationChoicePayoff.Calculate(
                                CooperationChoice.Cooperate, CooperationChoice.Cooperate),
                    });

            // Act
            var cooperationStrategyMatchupResult = cooperationStrategyMatchup.Play(lastMatchupResult);

            // Assert
            var correctCooperationStrategyResultForStrategyB = new CooperationStrategyResult
                                                                   {
                                                                       Strategy = strategyB,
                                                                       ChoiceMade = CooperationChoice.Cooperate,
                                                                       Payoff = CooperationChoicesPayoff.DefaultPayoffForCooperateAndCooperate
                                                                   };
            Assert.Equal(correctCooperationStrategyResultForStrategyB, cooperationStrategyMatchupResult.StrategyBResult);
        }