示例#1
0
    def test_transition_friend_to_enemy(self):
        self.person1.friends = set()
        self.person2.friends = set()
        self.person1.friends.add(self.person2)
        self.person2.friends.add(self.person1)

        self.person1.personality.facets = Personality.PersonalityFacet()
        self.person2.personality.facets = Personality.PersonalityFacet()

        self.person1.affinity_map = {
            self.person2: self.m.friends_affinity * 0.5
        }

        self.person1.personality.interests = {
            1: self.m.friends_affinity,
            2: self.m.enemies_affinity
        }
        posts_to_hate = []

        for x in range(2):
            posts_to_hate.append(Post.Post(self.person2, [
                2,
            ]))

        self.person1.process_post(posts_to_hate[0])
        self.assertTrue(self.person2 in self.person1.friends,
                        "Person2 should now be person1's friend, but is not.")
        self.assertTrue(self.person2 not in self.person1.enemies,
                        "Person2 should not be person1's enemy, but is.")

        self.person1.process_post(posts_to_hate[1])
        self.assertTrue(self.person2 not in self.person1.friends,
                        "Person2 should not be person1's friend, but is.")
        self.assertTrue(self.person2 in self.person1.enemies,
                        "Person2 should be person1's enemy, but is not.")
示例#2
0
    def test_make_enemy(self):
        # Disable any modifications of personality behavior
        self.person1.personality.facets = Personality.PersonalityFacet()
        self.person2.personality.facets = Personality.PersonalityFacet()

        self.person1.personality.interests = {
            1: self.m.friends_affinity,
            2: self.m.enemies_affinity
        }
        post_to_hate = Post.Post(self.person2, [
            2,
        ])

        self.person1.process_post(post_to_hate)
        self.assertTrue(self.person2 in self.person1.enemies,
                        "Person2 should now be person1's enemy, but is not.")
def static_extrovert_personalities_who_like_distant_people(model):
    for agent in model.agents:
        agent.personality.repost_probability = 0.9
        agent.personality.post_probability = 0.9
        agent.personality.fame = 70
        agent.personality.probability_read_reposts = 0.8
        #agent.interests = {1: 5, 2: -5}
        agent.personality.facets = Personality.LovesPeopleInOppositeHemisphere()
示例#4
0
    def test_dislike_score(self):
        # Disable any modifications of personality behavior
        self.person1.personality.facets = Personality.PersonalityFacet()
        self.person2.personality.facets = Personality.PersonalityFacet()

        self.person1.personality.interests = {1: 1, 2: -1}
        post_to_dislike = Post.Post(self.person2, [
            2,
        ])

        self.person2.dispatch_post(post_to_dislike)
        self.person1.settle_reposts()

        self.assertEqual(
            self.person1.affinity_map[self.person2], -1,
            "Disliked post not scored correctly."
            "%r != %r map: %r" % (self.person1.affinity_map[self.person2], -1,
                                  self.person1.affinity_map))
示例#5
0
    def test_like_score(self):
        # Disable any modifications of personality behavior
        self.person1.personality.facets = Personality.PersonalityFacet()
        self.person2.personality.facets = Personality.PersonalityFacet()

        self.person1.personality.interests = {1: 1, 2: -1}
        post_to_like = Post.Post(self.person2, [
            1,
        ])

        self.person2.dispatch_post(post_to_like)
        self.assertNotEquals(self.person1.inbox, None,
                             "Message not arrived in inbox.")

        self.person1.settle_reposts()

        self.assertEqual(
            self.person1.affinity_map[self.person2], 1,
            "Liked post not scored correctly."
            "%r != %r map: %r" % (self.person1.affinity_map[self.person2], 1,
                                  self.person1.affinity_map))
    def test_verify_facets_can_affect_score(self):
        self.person1.personality.interests={1: 1, 2: -1}

        # arbitrary number to cause an eventual timeout if the test is a failure
        for x in range(200):
            post_to_like = Post.Post(self.person2, [1, ])
            self.person1.process_post(post_to_like)
            if self.person1.affinity_map[self.person2] != 1:
                return True
            self.person1.personality.facets = Personality.random_facets(self.person1.personality, self.m)
            self.person1.affinity_map = {}

        self.fail("Random personalities should have caused score deviation, but did not.")
示例#7
0
    def test_verify_facets_can_affect_score(self):
        self.person1.personality.interests = {1: 1, 2: -1}

        # arbitrary number to cause an eventual timeout if the test is a failure
        for x in range(200):
            post_to_like = Post.Post(self.person2, [
                1,
            ])
            self.person1.process_post(post_to_like)
            if self.person1.affinity_map[self.person2] != 1:
                return True
            self.person1.personality.facets = Personality.random_facets(
                self.person1.personality, self.m)
            self.person1.affinity_map = {}

        self.fail(
            "Random personalities should have caused score deviation, but did not."
        )
示例#8
0
文件: Eeek.py 项目: adamlincoln/Eeek
    def __init__(self):
        self.mode = MODE_COMMANDS  # Other is MODE_USERPLAY where you are in control of the hero

        if CURSES:
            # Initialize curses
            cbreak()
            noecho()

        # Initialize the Kernel
        Kernel()

        # Set's up the socket
        NethackSock()

        # Socket observers
        SocketLogger(
        )  # This should be before other stuff for easier debugging
        FramebufferParser()
        DGLParser()

        # Stuff
        Console()
        Cursor()
        Dungeon()
        Hero()
        MonsterSpoiler()
        ItemDB()
        Inventory()

        # AI
        Personality()
        Senses()
        Pathing()

        # Brains
        curBrain = TestBrain()

        Kernel.instance.Personality.setBrain(curBrain)  # Default brain
示例#9
0
def doQuickSave(item):
    """This function forces a quick save operation."""
    Personality.preQuickSave()
    WorldEditor.quickSave()
示例#10
0
def doFullSave(item):
    """This function forces a full save and process all operation."""
    Personality.preFullSave()
    WorldEditor.save()
示例#11
0
def actQuickSaveExecute():
    """This function forces a quick save operation."""
    Personality.preQuickSave()
    WorldEditor.quickSave()
示例#12
0
def actSaveProjectExecute():
    """This function forces a full save and process all operation."""
    Personality.preFullSave()
    WorldEditor.save()
def actQuickSaveExecute():
	"""This function forces a quick save operation."""
	Personality.preQuickSave()
	WorldEditor.quickSave()
def actSaveProjectExecute():
	"""This function forces a full save and process all operation."""
	Personality.preFullSave()
	WorldEditor.save()
示例#15
0
def doQuickSave( item ):
	"""This function forces a quick save operation."""
	Personality.preQuickSave()
	WorldEditor.quickSave()
示例#16
0
def doFullSave( item ):
	"""This function forces a full save and process all operation."""
	Personality.preFullSave()
	WorldEditor.save()