public void TestCureDisease()
        {
            Player p = gs.currentPlayer();

            p  = p.addCard(gs.map.addCity("Blue1", DiseaseColor.BLUE));
            p  = p.addCard(gs.map.addCity("Blue2", DiseaseColor.BLUE));
            p  = p.addCard(gs.map.addCity("Blue3", DiseaseColor.BLUE));
            p  = p.addCard(gs.map.addCity("Blue4", DiseaseColor.BLUE));
            p  = p.addCard(gs.map.addCity("Blue5", DiseaseColor.BLUE));
            gs = gs.adjustPlayer(p);
            gs = new GameState(gs, gs.map.addStation(newyork));
            SearchEvaluate eval   = new LovesCures();
            Action         action = eval.bfs_findbest(gs, 1);
            GameState      newGS  = action.execute(gs);

            Assert.AreEqual(1, newGS.numCures());
            Assert.AreEqual(0, newGS.currentPlayer().cards.Count);
        }
        public void TestScientist()
        {
            Player p = gs.currentPlayer();

            p = p.addCard(gs.map.addCity("Blue1", DiseaseColor.BLUE));
            p = p.addCard(gs.map.addCity("Blue2", DiseaseColor.BLUE));
            p = p.addCard(gs.map.addCity("Blue3", DiseaseColor.BLUE));
            p = p.addCard(gs.map.addCity("Blue4", DiseaseColor.BLUE));
            p = p.addCard(gs.map.addCity("Blue5", DiseaseColor.BLUE));
            p.type = Player.Type.SCIENTIST;
            gs = gs.adjustPlayer(p);
            gs = new GameState(gs, gs.map.addStation(newyork));
            SearchEvaluate eval = new LovesCures();
            Action action = eval.bfs_findbest(gs, 1);
            GameState newGS = action.execute(gs);
            Assert.AreEqual(1, newGS.numCures());
            Assert.AreEqual(1, newGS.currentPlayer().cards.Count);
        }