public void Push_Bottom_AddedCardIsLast() { var pile = new Pile(new[] { RndCard(), RndCard(), RndCard() }); var card = RndCard(); pile.Push(card, PilePosition.Bottom); Assert.AreSame(card, pile.Last()); }
public void Push_Middle_OneInPile_AddedCardIsLast() { var pile = new Pile(new[] { RndCard() }); var card = RndCard(); pile.Push(card, PilePosition.Middle); Assert.AreSame(card, pile.Last()); }
public void Push_Middle_TwoInPile_AddedCardAlwaysIsInMiddle() { var pile = new Pile(new[] { RndCard(), RndCard() }); var card = RndCard(); pile.Push(card, PilePosition.Middle); Assert.AreSame(pile.ElementAt(1), card); Assert.IsFalse(ReferenceEquals(pile.First(), card)); Assert.IsFalse(ReferenceEquals(pile.Last(), card)); }
public void Pop_Middle_TakesOrderedGroup() { var source = new[] { RndCard(1), RndCard(2), RndCard(3), RndCard(4) }; var pile = new Pile(source); using (Random.Returing(new[] { 2 })) { var result = pile.Pop(PilePosition.Middle, 2); CollectionAssert.AreEqual(new[] { source[1], source[2] }, result); Assert.AreEqual(2, result.Count, "result size"); Assert.AreEqual(2, pile.Size); Assert.AreSame(source[0], pile.First(), "first"); Assert.AreSame(source[3], pile.Last(), "last"); } }
public override Card Peek(Pile pile) { return(pile.Last()); }