Пример #1
0
 def test_relationship_member_requirement(self):
     relationship = Relationship(['Luke', 'Black'], preset_couple_stats['Luke,Black'])
     self.assertTrue(relationship.can_start(['Luke', 'Black']))
     self.assertTrue(relationship.can_start('Luke,Black'))
     self.assertTrue(relationship.can_start(['Black', 'Luke']))
     self.assertTrue(relationship.can_start(['Black', 'Luke', 'Kota']))
     self.assertFalse(relationship.can_start(['Kota', 'Black']))
     self.assertFalse(relationship.can_start(['Black']))
     self.assertFalse(relationship.can_start('Black'))
     self.assertFalse(relationship.can_start('Black,Kota'))
Пример #2
0
 def test_create_relationship_list(self):
     luke_black = Relationship(['Luke', 'Black'], stats=preset_couple_stats['Luke,Black']['stats'])
     kota_onsen = Relationship(['Kota', 'Onsen'], stats=preset_couple_stats['Kota,Onsen']['stats'])
     self.assertEqual(luke_black.status, 'unset')
     rel_list = RelationshipList()
     rel_list.add_relationship(luke_black)
     self.assertEqual(rel_list.get_relationship_status('Luke,Black'), 'unset')
     self.assertEqual(rel_list.get_relationship_status('Kota,Onsen'), 'missing')
     rel_list.add_relationship(kota_onsen)
     self.assertEqual(rel_list.get_relationship_status('Luke,Black'), 'unset')
     self.assertEqual(rel_list.get_relationship_status('Kota,Onsen'), 'unset')
Пример #3
0
 def test_cant_meet_guest_requirements(self):
     luke_black = Relationship(['Luke', 'Black'], preset_couple_stats['Luke,Black']['stats'])
     kota_onsen = Relationship(['Kota', 'Onsen'], preset_couple_stats['Kota,Onsen']['stats'])
     rel_list = RelationshipList()
     rel_list.add_relationship(luke_black)
     rel_list.add_relationship(kota_onsen)
     current_maxes = {'Luke,Black': 2, 'Kota,Onsen': 2}
     available_guests = ['Luke', 'Black', 'Onsen']
     choices, couples = rel_list.get_available_couple_routes(available_guests, available_guests, current_maxes)
     self.assertEqual(choices, [("Luke and Black's scene #0", 'Luke_Black_0')])
     self.assertEqual(couples, [('Luke', 'Black')])
Пример #4
0
 def test_stopped_by_current_maxes(self):
     luke_black = Relationship(['Luke', 'Black'], preset_couple_stats['Luke,Black']['stats'])
     kota_onsen = Relationship(['Kota', 'Onsen'], preset_couple_stats['Kota,Onsen']['stats'])
     rel_list = RelationshipList()
     rel_list.add_relationship(luke_black)
     rel_list.add_relationship(kota_onsen)
     rel_list.advance_relationship('Luke,Black', max_progress=3)
     current_maxes = {'Luke,Black': 1, 'Kota,Onsen': 2}
     available_guests = ['Luke', 'Black', 'Kota', 'Onsen']
     choices, couples = rel_list.get_available_couple_routes(available_guests, available_guests, current_maxes)
     self.assertEqual(choices, [("Kota and Onsen's scene #0", 'Kota_Onsen_0')])
     self.assertEqual(couples, [('Kota', 'Onsen')])
Пример #5
0
 def test_start_relationship_in_list(self):
     luke_black = Relationship(['Luke', 'Black'], preset_couple_stats['Luke,Black']['stats'])
     kota_onsen = Relationship(['Kota', 'Onsen'], preset_couple_stats['Kota,Onsen']['stats'])
     rel_list = RelationshipList()
     self.assertEqual(len(rel_list.get_relationships_that_can_start('Luke,Black,Onsen,Kota')), 0)
     rel_list.add_relationship(luke_black)
     rel_list.add_relationship(kota_onsen)
     self.assertEqual(rel_list.get_relationship_status('Luke,Black'), 'unset')
     self.assertEqual(len(rel_list.get_relationships_that_can_start('Luke,Black,Onsen,Kota')), 2)
     self.assertEqual(rel_list.get_relationship_status('Onsen,Kota'), 'unset')
     rel_list.advance_relationship('Luke,Onsen')
     self.assertEqual(len(rel_list.get_relationships_that_can_start('Luke,Black,Onsen,Kota')), 2)
     rel_list.advance_relationship('Kota,Onsen')
     self.assertEqual(rel_list.get_relationship_status('Onsen,Kota'), 'started')
     self.assertEqual(len(rel_list.get_relationships_that_can_start('Luke,Black,Onsen,Kota')), 1)
Пример #6
0
 def test_advance_relationship(self):
     luke_black = Relationship(['Luke', 'Black'], preset_couple_stats['Luke,Black']['stats'])
     kota_onsen = Relationship(['Kota', 'Onsen'], preset_couple_stats['Kota,Onsen']['stats'])
     rel_list = RelationshipList()
     rel_list.add_relationship(luke_black)
     rel_list.add_relationship(kota_onsen)
     current_maxes = {'Luke,Black': 2, 'Kota,Onsen': 2}
     available_guests = ['Luke', 'Black', 'Onsen', 'Kota']
     rel_list.advance_relationship('Kota,Onsen')
     choices, couples = rel_list.get_available_couple_routes(available_guests, available_guests, current_maxes)
     self.assertEqual(choices, [("Luke and Black's scene #0", 'Luke_Black_0'), ("Kota and Onsen's scene #1", 'Kota_Onsen_1')])
     self.assertEqual(couples, [('Luke', 'Black'), ('Kota', 'Onsen')])
     rel_list.advance_relationship('Kota,Onsen', max_progress=2)
     choices, couples = rel_list.get_available_couple_routes(available_guests, available_guests, current_maxes)
     self.assertEqual(rel_list.get_relationship_status('Kota,Onsen'), 'complete')
     self.assertEqual(choices, [("Luke and Black's scene #0", 'Luke_Black_0')])
     self.assertEqual(couples, [('Luke', 'Black')])
Пример #7
0
def load_relationships(relationship_dict, relationship_list):
    for relationship_name in relationship_dict.keys():
        if relationship_list.get_relationship_status(
                relationship_name) == 'missing':
            relationship = relationship_dict[relationship_name]
            members = relationship_name.split(',')

            new_relationship = Relationship(members,
                                            stats=relationship['stats'],
                                            enabled=relationship['enabled'])
            relationship_list.add_relationship(new_relationship)
Пример #8
0
 def test_start_and_complete_relationship(self):
     relationship = Relationship(['Luke', 'Black'], stats=preset_couple_stats['Luke,Black']['stats'])
     self.assertEqual(relationship.status, 'unset')
     relationship.advance()
     self.assertEqual(relationship.status, 'started')
     relationship.advance(max_progress=preset_maximum_relationship_length['Luke,Black'])
     self.assertEqual(relationship.status, 'complete')
Пример #9
0
 def test_returns_bonus(self):
     length = preset_maximum_relationship_length['Luke,Black']
     relationship = Relationship(['Luke', 'Black'], stats=preset_couple_stats['Luke,Black']['stats'])
     self.assertEqual(relationship.status, 'unset')
     self.assertEqual(relationship.stat_bonus.get_value('Tech'), 1)
     self.assertEqual(relationship.get_bonus_stats().get_value('Tech'), 0)
     relationship.advance(amount=length, max_progress=length)
     self.assertEqual(relationship.status, 'complete')
     self.assertEqual(relationship.get_bonus_stats().get_value('Tech'), 1)
Пример #10
0
 def test_start_relationship_modifies_guest_list(self):
     luke = Guest('Luke', preset_guest_stats['Luke'])
     black = Guest('Black', preset_guest_stats['Black'])
     luke_black = Relationship(['Luke', 'Black'], stats=preset_couple_stats['Luke,Black']['stats'])
     guest_list = GuestList()
     guest_list.add_guest(luke)
     guest_list.add_guest(black)
     rel_list = RelationshipList()
     rel_list.add_relationship(luke_black)
     self.assertEqual(rel_list.get_relationship_progress('Luke'), 0)
     self.assertEqual(guest_list.guests['Luke'].romance_status, 'single')
     rel_list.advance_relationship(['Luke', 'Black'], guest_list=guest_list)
     self.assertEqual(rel_list.get_relationship_progress('Luke'), 1)
     self.assertEqual(guest_list.guests['Luke'].romance_status, 'dating')
     self.assertEqual(guest_list.guests['Luke'].romance_partner, 'Black')
     self.assertEqual(rel_list.get_relationship_status('Luke,Black'), 'started')
Пример #11
0
    def test_get_team_relationship_bonus(self):
        dict_copy = preset_couple_stats['Luke,Black']
        route_max = preset_maximum_relationship_length['Luke,Black']
        luke_black = Relationship(['Luke', 'Black'], preset_couple_stats['Luke,Black']['stats'])
        rel_list = RelationshipList()
        rel_list.add_relationship(luke_black)
        self.assertEqual(rel_list.sum_bonus().get_value('Tech'), 0)
        self.assertEqual(rel_list.sum_bonus().get_value('Tech'), 0)
        self.assertEqual(rel_list.get_relationships_with_guests('Luke,Black,Kota,Onsen').sum_bonus().get_value('Tech'), 0)
        self.assertEqual(rel_list.get_relationship_status('Luke,Black'), 'unset')

        # test again after completing the relationship
        rel_list.advance_relationship('Luke,Black', amount=route_max, max_progress=route_max)
        self.assertEqual(rel_list.get_relationship_status('Luke,Black'), 'complete')
        self.assertEqual(rel_list.relationships[0].get_bonus_stats().get_value('Tech'), 1)
        self.assertEqual(rel_list.sum_bonus(), Stats(preset_couple_stats['Luke,Black']['stats']))
        self.assertEqual(rel_list.get_relationships_with_guests('Luke,Black,Kota,Onsen').sum_bonus().get_value('Tech'),
                         preset_couple_stats['Luke,Black']['stats']['Tech'])

        # make sure dict is not being modified
        self.assertEqual(dict_copy['stats']['Tech'],  preset_couple_stats['Luke,Black']['stats']['Tech'])
Пример #12
0
 def test_stat_bonus_creating_properly(self):
     relationship = Relationship(['Luke', 'Black'], stats=preset_couple_stats['Luke,Black']['stats'])
     self.assertEqual(relationship.stat_bonus.get_value('Contract'),
                      Stats(preset_couple_stats['Luke,Black']).get_value('Contract'))