public void CardDeckShufflesTest()
 {
     CardDeck cd = new CardDeck();
     Assert.IsTrue(cd.AddCard(new SingleFlashCard("1","one")));
     Assert.IsTrue(cd.AddCard(new SingleFlashCard("2","one")));
     Assert.IsTrue(cd.AddCard(new SingleFlashCard("3","one")));
     Assert.IsTrue(cd.AddCard(new SingleFlashCard("4","one")));
     Assert.IsTrue(cd.AddCard(new SingleFlashCard("5","one")));
     
     foreach(SingleFlashCard sfc in cd.AllCards())
     {
         Console.WriteLine(sfc.First);
     }
     Console.WriteLine();
     Thread.Sleep(2000);
     cd.Shuffle();
     foreach(SingleFlashCard sfc in cd.AllCards())
     {
         Console.WriteLine(sfc.First);
     }
     Console.WriteLine();
     Thread.Sleep(2000);            
     cd.Shuffle();
     foreach(SingleFlashCard sfc in cd.AllCards())
     {
         Console.WriteLine(sfc.First);
     }
     Console.WriteLine();
     Thread.Sleep(2000);            
     cd.Shuffle();
     foreach(SingleFlashCard sfc in cd.AllCards())
     {
         Console.WriteLine(sfc.First);
     }
     Console.WriteLine();            
 }
        public void ThousandCardTest()
        {
            CardDeck cd = new CardDeck();

            for (int currCard = 0;
                 currCard < 1000;
                 currCard++)
            {
                string cardstring = "[" + currCard + "]";
                SingleFlashCard sfc = new SingleFlashCard(cardstring,cardstring);
                cd.AddCard(sfc);
            }

            int outputs = 0;
            for (int curroutput = 0;
                 curroutput < 1000;
                 curroutput++)
            {
                SingleFlashCard prevCard0 = null;
                SingleFlashCard prevCard100 = null;
                SingleFlashCard prevCard500 = null;                
                
                foreach(SingleFlashCard sfc in cd.AllCards())
                {
                    if (curroutput == 0)
                    {
                        if(prevCard0 != null)
                        {
                            Assert.AreNotEqual(prevCard0.First,sfc.First);
                            prevCard0 = sfc;
                        }
                        else
                        {
                            prevCard0 = sfc;
                        }
                    }
                    if(curroutput == 100)
                    {
                        if(prevCard100 != null)
                        {
                            Assert.AreNotEqual(prevCard100.First,sfc.First);
                            prevCard100 = sfc;
                        }
                        else
                        {
                            prevCard100 = sfc;
                        }
                    } 
                    if(curroutput == 500)
                    {
                        if(prevCard500 != null)
                        {
                            Assert.AreNotEqual(prevCard500.First,sfc.First);
                            prevCard500 = sfc;
                        }
                        else
                        {
                            prevCard500 = sfc;
                        }
                    }
                    
                    Assert.IsNotNull(sfc);
                }
                Console.Write(".");
                cd.Shuffle();
                Console.Write("s");
                outputs++;
                if (outputs > 50)
                {
                    Console.WriteLine();
                    outputs = 0;
                }
            }
            Console.WriteLine();
        }