def test_init(self):
     name = ["ICE", "AIR"]
     emblem = ["MAMMOTH", "OWL"]
     ice_kingdom = Kingdom(name[0], emblem[0])
     air_kingdom = Kingdom(name[1], emblem[1])
     message_text = "ROZO"
     message = Message(air_kingdom, ice_kingdom, message_text)
     self.assertIsInstance(message, Message)
 def test_register_kingdoms(self):
     kingdoms = [("SPACE","GORILLA"), ("LAND","PANDA"),("WATER","OCTOPUS"),
     ("ICE", "MAMMOTH")]
     southeros = Southeros(kingdoms)
     self.assertEqual(4, southeros.get_total_kingdoms())
     other_kingdoms = [("AIR", "OWL"), ("FIRE", "DRAGON")]
     southeros.register_kingdoms(other_kingdoms)
     self.assertEqual(6, southeros.get_total_kingdoms())
     Kingdom.remove_all_kingdoms()
 def test_get_kingdom(self):
     southeros = Southeros()
     name = "SPACE"
     emblem = "GORILLA"
     southeros.register_kingdom(name, emblem)
     space_kingdom = southeros.get_kingdom(name)
     self.assertIsInstance(space_kingdom, Kingdom)
     self.assertEqual(name, space_kingdom.name())
     Kingdom.remove_all_kingdoms()
 def test_get_message(self):
     name = ["ICE", "AIR"]
     emblem = ["MAMMOTH", "OWL"]
     ice_kingdom = Kingdom(name[0], emblem[0])
     air_kingdom = Kingdom(name[1], emblem[1])
     message_text = "ROZO"
     message = Message(air_kingdom, ice_kingdom, message_text)
     self.assertEqual(message.get_message(), message_text)
     Kingdom.remove_all_kingdoms()
Exemple #5
0
def main():
    input_file = sys.argv[1]
    data = ir.read_input(input_file)
    messages = ir.validate_format(config_data.get("std_input_format"), data)
    home_kingdom = config_data.get("home_kingdom")
    home_kngdm_obj = Kingdom(home_kingdom)
    home_kngdm_obj.send_secret_msg(messages)
    allies = home_kngdm_obj.form_rule()
    output = op.Outputter(allies)
    output.print_standard_output()
 def test_verify(self):
     name = "AIR"
     emblem = "OWL"
     air_kingdom = Kingdom(name, emblem)
     message_text = "ROZO"
     response = MessageVerify.verify(air_kingdom, message_text)
     self.assertTrue(response)
     message_text = "OWLAOWLBOWLC"
     response = MessageVerify.verify(air_kingdom, message_text)
     self.assertFalse(response)
     Kingdom.remove_all_kingdoms()
 def test_ruler(self):
     kingdoms = [("SPACE","GORILLA"), ("LAND","PANDA"),("WATER","OCTOPUS"),
     ("ICE", "MAMMOTH")]
     southeros = Southeros(kingdoms)
     space_kingdom = southeros.get_kingdom("SPACE")
     land_kingdom = southeros.get_kingdom("LAND")
     water_kingdom = southeros.get_kingdom("WATER")
     ice_kingdom = southeros.get_kingdom("ICE")
     self.assertIsNone(southeros.ruler())
     space_kingdom.add_ally(ice_kingdom)
     space_kingdom.add_ally(land_kingdom)
     space_kingdom.add_ally(water_kingdom)
     ruler = southeros.ruler()
     self.assertIsInstance(ruler, Kingdom)
     self.assertEqual(ruler, space_kingdom)
     self.assertNotEqual(ruler, ice_kingdom)
     Kingdom.remove_all_kingdoms()
 def test_send_message(self):
     name = ["ICE", "AIR"]
     emblem = ["MAMMOTH", "OWL"]
     ice_kingdom = Kingdom(name[0], emblem[0])
     air_kingdom = Kingdom(name[1], emblem[1])
     message_text = "ROZO"
     message = Message(air_kingdom, ice_kingdom, message_text)
     response = air_kingdom.send_message(message)
     self.assertFalse(response)
     message = Message(ice_kingdom, air_kingdom, message_text)
     response = ice_kingdom.send_message(message)
     self.assertTrue(response)
     Kingdom.remove_all_kingdoms()
    def register_kingdom(self, name, emblem):
        """Creates a Kingdom Class for the given kingdom name and emblem
        Args:
            name (string): Name of the Kingdom
            emblem (string): Emblem of the Kingdom

        Returns:
            Kingdom Object: Return the new kingdom object 
        """
        new_kingdom = Kingdom(name, emblem)
        self.__kingdom_count += 1
        return new_kingdom
def generate_kingdom():
    new_kingdom = {0: 30, 1: 30, 2: 30, 3: 8, 4: 8, 5: 8, 6: 10}

    # TODO eventually need to randomly select 10 cards for the kingdom
    for i in range(7, params.max_card_id + 1):
        if random.random() < 1:
            new_kingdom[i] = 10
        else:
            new_kingdom[i] = 0

    # new_kingdom[9] = 1

    return Kingdom(new_kingdom)
    def get_kingdom(self, name):
        """Get the Kingdom Object from the Name of the kingdom
        Args:
            name (string): Name of the Kingdom

        Returns:
            Kingdom Object: Kingdom Object for the given name

        Raises:
            KingdomNotFound:
                If no Kingdom is found for the kingdom name passed in as a parameter.
        """
        return Kingdom.get_kingdom(name)
class Menu:
    """ Take input and call the simulation """
    def __init__(self):
        self.kingdom = Kingdom()

    def run(self):
        """ Get the number of simulations and number of subjects 
        If either is zero, we exit the simulation """
        
        subjects = int(input("Enter number of subjects: "))
        loopcount = int(input("Enter number of games to play: "))
        
        successes = 0
        
        for i in range(0,loopcount):
            if self.kingdom.playgame(subjects):
                successes += 1
                
        print(successes,"Wins, ", loopcount, "Games, ", successes*100/loopcount, "Percent Wins" )        
Exemple #13
0
 def _get_field_names(cls_name):
     lookup = {
         'Republic': Republic(),
         'Monarchy': Monarchy(),
         'Kingdom': Kingdom(),
         'State': State()
     }
     my_dict = lookup[cls_name].__dict__
     present_field = []
     is_callable = (types.FunctionType, types.MethodType)
     i = 1
     for key, value in my_dict.items():
         if not isinstance(value, is_callable):
             present_field.append(key)
             ind = key.rindex("__")
             key = key[ind + 2:len(key)]
             print("{0} - {1}".format(i, key))
             i += 1
     return present_field
Exemple #14
0
class TestKingdom(unittest.TestCase):
    """Test of Kingdom class."""
    def _setUp(self):
        self.kingdom_obj = Kingdom("KINGDOMONE")

    def test_if_kingdom_object_is_created_with_correct_properties(self):
        with patch.dict(config_data, test_config_data, clear=True):
            self._setUp()
            self.assertEqual(self.kingdom_obj.name, "KINGDOMONE")
            self.assertEqual(self.kingdom_obj.emblem, "EmblemOne")
            length_of_emblem = 9
            self.assertEqual(self.kingdom_obj.cipher_key, length_of_emblem)
            self.assertEqual(self.kingdom_obj.allies, [])

    def test_send_one_correct_msg_and_one_incorrect_msg_to_other_kingdoms(
            self):
        msg = [{
            "name": "KINGDOMTWO",
            "msg": "'NJVKUGGNVCRRFX'"
        }, {
            "name": "KINGDOMTHREE",
            "msg": "ABCEFGHIEMBLEMIJK"
        }]
        with patch.dict(config_data, test_config_data, clear=True):
            self._setUp()
            actual = self.kingdom_obj.send_secret_msg(msg)
            expected = ["KINGDOMTWO"]
            self.assertEqual(actual, expected)

    def test_send_two_correct_messages_to_other_kingdoms_returns_kingdom_names(
            self):
        msg = [{
            "name": "KINGDOMTWO",
            "msg": "NJVKUGGNVCRRFX"
        }, {
            "name": "KINGDOMTHREE",
            "msg": "PLXMWIIPXESSCPP"
        }]
        with patch.dict(config_data, test_config_data, clear=True):
            self._setUp()
            actual = self.kingdom_obj.send_secret_msg(msg)
            expected = ["KINGDOMTWO", "KINGDOMTHREE"]
            self.assertEqual(actual, expected)

    def test_no_correct_message_to_other_kingdoms_returns_empty_list(self):
        msg = [{
            "name": "KINGDOMTWO",
            "msg": "KINGDOMTWONOCIPHER"
        }, {
            "name": "KINGDOMTHREE",
            "msg": "KINGDUMTHRI"
        }]
        with patch.dict(config_data, test_config_data, clear=True):
            self._setUp()
            actual = self.kingdom_obj.send_secret_msg(msg)
            expected = []
            self.assertEqual(actual, expected)

    def test_receive_correct_message_from_a_kingdom_returns_True(self):
        with patch.dict(config_data, test_config_data, clear=True):
            self._setUp()
            result = self.kingdom_obj.receive_secret_msg('VNKUNVQQXWN')
            self.assertTrue(result)

    def test_receive_incorrect_message_from_a_kingdom_returns_False(self):
        with patch.dict(config_data, test_config_data, clear=True):
            self._setUp()
            result = self.kingdom_obj.receive_secret_msg('INKORRECT')
            self.assertFalse(result)

    def test_form_rule_with_sufficient_allies_returns_kingdom_with_allies(
            self):
        with patch.dict(config_data, test_config_data, clear=True):
            self._setUp()
            self.kingdom_obj.allies = ["KINGDOMTWO", "KINGDOMTHREE"]
            actual = ["KINGDOMONE", "KINGDOMTWO", "KINGDOMTHREE"]
            # Number of allies to win in test data is 2.
            expected = self.kingdom_obj.form_rule()
            self.assertEqual(actual, expected)

    def test_form_rule_with_insufficient_allies_returns_kingdom_with_allies(
            self):
        with patch.dict(config_data, test_config_data, clear=True):
            self._setUp()
            self.kingdom_obj.allies = ["KINGDOMTWO"]
            actual = ["NONE"]
            # Number of allies to win in test data is 2.
            expected = self.kingdom_obj.form_rule()
            self.assertEqual(actual, expected)
Exemple #15
0
 def _setUp(self):
     self.kingdom_obj = Kingdom("KINGDOMONE")
 def test_init_parameterised(self):
     kingdoms = [("SPACE","GORILLA"), ("LAND","PANDA"),("WATER","OCTOPUS"),
     ("ICE", "MAMMOTH"), ("AIR", "OWL"), ("FIRE", "DRAGON")]
     southeros = Southeros(kingdoms)
     self.assertIsInstance(southeros, Southeros)
     Kingdom.remove_all_kingdoms()
 def test_add_ally_and_is_ally(self):
     name = ["ICE", "AIR", "WATER"]
     emblem = ["MAMMOTH", "OWL", "OCTOPUS"]
     ice_kingdom = Kingdom(name[0], emblem[0])
     air_kingdom = Kingdom(name[1], emblem[1])
     water_kingdom = Kingdom(name[2], emblem[2])
     ice_kingdom.add_ally(air_kingdom)
     self.assertTrue(ice_kingdom.is_ally(air_kingdom))
     self.assertTrue(air_kingdom.is_ally(ice_kingdom))
     self.assertFalse(water_kingdom.is_ally(ice_kingdom))
     Kingdom.remove_all_kingdoms()
 def test_check_ruler(self):
     name = ["ICE", "AIR", "WATER", "FIRE"]
     emblem = ["MAMMOTH", "OWL", "OCTOPUS", "DRAGON"]
     ice_kingdom = Kingdom(name[0], emblem[0])
     air_kingdom = Kingdom(name[1], emblem[1])
     water_kingdom = Kingdom(name[2], emblem[2])
     fire_kingdom = Kingdom(name[3], emblem[3])
     ice_kingdom.add_ally(air_kingdom)
     ice_kingdom.add_ally(water_kingdom)
     ice_kingdom.add_ally(air_kingdom)
     ice_kingdom.add_ally(fire_kingdom)
     self.assertTrue(ice_kingdom.is_ruler())
     self.assertFalse(fire_kingdom.is_ruler())
     Kingdom.remove_all_kingdoms()
 def test_name(self):
     name = "ICE"
     emblem = "MAMMOTH"
     ice_kingdom = Kingdom(name, emblem)
     self.assertEqual(name, ice_kingdom.name())
     Kingdom.remove_all_kingdoms()
 def __ruling_kingdom(self):
     """Get the Ruler of Southeros
     Returns:
         Kingdom Object: Ruling Kingdom Object otherwise None
     """
     return Kingdom.get_ruler()
 def test_emblem_length(self):
     name = "ICE"
     emblem = "MAMMOTH"
     ice_kingdom = Kingdom(name, emblem)
     self.assertEqual(len(emblem), ice_kingdom.emblem_length())
     Kingdom.remove_all_kingdoms()
 def test_get_kingdom(self):
     name = "ICE"
     emblem = "MAMMOTH"
     ice_kingdom = Kingdom(name, emblem)
     self.assertEqual(ice_kingdom, Kingdom.get_kingdom(name))
     Kingdom.remove_all_kingdoms()
 def test_init(self):
     southeros = Southeros()
     self.assertIsInstance(southeros, Southeros)
     Kingdom.remove_all_kingdoms()
 def test_ally_count(self):
     name = ["ICE", "AIR", "WATER"]
     emblem = ["MAMMOTH", "OWL", "OCTOPUS"]
     ice_kingdom = Kingdom(name[0], emblem[0])
     air_kingdom = Kingdom(name[1], emblem[1])
     water_kingdom = Kingdom(name[2], emblem[2])
     ice_kingdom.add_ally(air_kingdom)
     ice_kingdom.add_ally(water_kingdom)
     self.assertEqual(2, ice_kingdom.total_allies())
     self.assertEqual(1, water_kingdom.total_allies())
     self.assertNotEqual(2, air_kingdom.total_allies())
     Kingdom.remove_all_kingdoms()
 def test_register_kingdom(self):
     southeros = Southeros()
     southeros.register_kingdom("SPACE", "GORILLA")
     self.assertEqual(1, southeros.get_total_kingdoms())
     Kingdom.remove_all_kingdoms()
 def test_init(self):
     name = "ICE"
     emblem = "MAMMOTH"
     ice_kingdom = Kingdom(name, emblem)
     self.assertIsInstance(ice_kingdom, Kingdom)
     Kingdom.remove_all_kingdoms()
 def __init__(self):
     self.kingdom = Kingdom()
 def test_get_ruler(self):
     name = ["ICE", "AIR", "WATER", "FIRE"]
     emblem = ["MAMMOTH", "OWL", "OCTOPUS", "DRAGON"]
     ice_kingdom = Kingdom(name[0], emblem[0])
     air_kingdom = Kingdom(name[1], emblem[1])
     water_kingdom = Kingdom(name[2], emblem[2])
     fire_kingdom = Kingdom(name[3], emblem[3])
     ice_kingdom.add_ally(air_kingdom)
     self.assertIsNone(Kingdom.get_ruler())
     ice_kingdom.add_ally(water_kingdom)
     ice_kingdom.add_ally(air_kingdom)
     ice_kingdom.add_ally(fire_kingdom)
     self.assertEqual(ice_kingdom, Kingdom.get_ruler())
     self.assertNotEqual(fire_kingdom, Kingdom.get_ruler())
     Kingdom.remove_all_kingdoms()
Exemple #29
0
 def _create_kingdom_instance(words):
     kingdom = Kingdom(int(words[0]), float(words[1]), words[2], words[3])
     return kingdom