public void TestAlternatingColors( )
		{
			CardCollection coll = new CardCollection( );

			// An empty one is also alternating:
			Assert.AreEqual( coll.IsAlternatingColors( ), true );
			coll.Add( new Card( Suit.Clubs, 10, true, null ) );

			// So is a collection of only one element:
			Assert.AreEqual( coll.IsAlternatingColors( ), true );

			// Then, add a few cards of alternating colors:
			coll.Add( new Card( Suit.Diamonds, 11, true, null ) );
			coll.Add( new Card( Suit.Clubs, 7, true, null ) );
			coll.Add( new Card( Suit.Diamonds, 11, true, null ) );
			coll.Add( new Card( Suit.Spades, 7, true, null ) );
			coll.Add( new Card( Suit.Hearts, 11, true, null ) );
			coll.Add( new Card( Suit.Clubs, 7, true, null ) );

			// This should hold:
			Assert.AreEqual( coll.IsAlternatingColors( ), true );

			// Finally, remove a card in the middle:

			coll.RemoveAt( 2 );

			// ... which should make it no longer alternating:
			Assert.AreEqual( coll.IsAlternatingColors( ), false );
		}
		/// <summary>
		/// Override this to ensure we don't add cards to the pile 
		/// which are not allowed there.
		/// </summary>
		/// <param name="cards"></param>
		/// <returns></returns>
		public override bool AddCards( CardCollection cards )
		{
			if ( cards.Count > 0 )
			{
				if ( base.Count == 0 )
				{
					// If there are currently no cards in this pile,
					// we only allow adding a collection of cards
					// that starts with a king:
					if ( cards[ 0 ].Rank != 13 )
					{
						return false;
					}
				}
				else
				{
					// Otherwise, if there are cards on this pile,
					// only allow a collection of cards to be added
					// if the first card there has rank one lower
					// than our topmost card (6 can go on 7 etc.)
					if ( base.TopCard.Rank != cards[0].Rank + 1 )
					{
						return false;
					}

					// Also, the cards must not both be red/black:
					if ( !base.TopCard.IsOppositeColor( cards[ 0 ] ) )
					{
						return false;
					}
				}

				// And now to the final condition:
				if ( cards.IsAlternatingColors( ) )
				{
					return base.AddCards( cards );
				}
			}
			return false;
		}