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); }