Exemplo n.º 1
0
class TestPDOrg(unittest.TestCase):
    def setUp(self):
        pd_org.MAX_BITS_OF_MEMORY = 5
        pd_org.MUTATION_LIKELIHOOD_OF_BITS_OF_MEMORY = .33
        pd_org.MUTATION_LIKELIHOOD_OF_INITIAL_MEMORY_STATE = .33
        num_bits = 2
        decision_list = [True, False, False, True]
        initial_mem = [True, False]
        self.geno = Geno(num_bits, decision_list, initial_mem)
        self.org = PDOrg(self.geno)

    def test_init(self):
        """
        Tests if genotype given to PDOrg constructor
        """
        self.assertEqual(self.org.genotype, self.geno)
        self.assertSequenceEqual(self.org.memory, self.geno.initial_memory)

    def test_init_no_geno(self):
        """
        Test if no genotype is given to PDOrg constructor
        """
        random_org = PDOrg()
        self.assertIsInstance(random_org.genotype, Geno)

    def test_get_mutant(self):
        mutant_org = self.org.get_mutant()
        self.assertNotEqual(mutant_org.genotype, self.org.genotype)

    def test_eq(self):
        other_org = PDOrg(Geno(1, [False, True], [True]))
        same_org = PDOrg(self.geno)
        self.assertNotEqual(self.org, other_org)
        self.assertEqual(self.org, same_org)

    def test_str(self):
        expected = "PDOrg(MemoryPDGenotype(2, [True, False, False, True], [True, False]))"
        result = str(self.org)
        self.assertEqual(expected, result)
        repr_result = repr(self.org)
        self.assertEqual(expected, repr_result)

    def test_opponent_cooperated_last_round(self):
        self.org.opponent_cooperated_last_round(True)
        self.assertSequenceEqual([False, True], self.org.memory)

        self.org.opponent_cooperated_last_round(False)
        self.assertSequenceEqual([True, False], self.org.memory)

    def test_will_cooperate(self):
        did_cooperate = self.org.will_cooperate()
        self.assertEqual(False, did_cooperate)

        self.org.opponent_cooperated_last_round(True)
        did_cooperate = self.org.will_cooperate()
        self.assertEqual(False, did_cooperate)

        self.org.opponent_cooperated_last_round(True)
        did_cooperate = self.org.will_cooperate()
        self.assertEqual(True, did_cooperate)
Exemplo n.º 2
0
class TestPDOrg(unittest.TestCase):
    
    def setUp(self):
        pd_org.MAX_BITS_OF_MEMORY = 5
        pd_org.MUTATION_LIKELIHOOD_OF_BITS_OF_MEMORY = .33
        pd_org.MUTATION_LIKELIHOOD_OF_INITIAL_MEMORY_STATE = .33
        num_bits = 2
        decision_list = [True, False, False, True]
        initial_mem = [True, False]
        self.geno = Geno(num_bits, decision_list, initial_mem)
        self.org = PDOrg(self.geno)
        
    def test_init(self):
        """
        Tests if genotype given to PDOrg constructor
        """
        self.assertEqual(self.org.genotype, self.geno)
        self.assertSequenceEqual(self.org.memory, self.geno.initial_memory)
        
    def test_init_no_geno(self):
        """
        Test if no genotype is given to PDOrg constructor
        """
        random_org = PDOrg()
        self.assertIsInstance(random_org.genotype, Geno)
    
    def test_get_mutant(self):
        mutant_org = self.org.get_mutant()
        self.assertNotEqual(mutant_org.genotype, self.org.genotype)
        
    def test_eq(self):
        other_org = PDOrg(Geno(1, [False, True], [True]))
        same_org = PDOrg(self.geno)
        self.assertNotEqual(self.org, other_org)
        self.assertEqual(self.org, same_org)
        
    def test_str(self):
        expected = "PDOrg(MemoryPDGenotype(2, [True, False, False, True], [True, False]))"
        result = str(self.org)
        self.assertEqual(expected, result)
        repr_result = repr(self.org)
        self.assertEqual(expected, repr_result)
        
    def test_opponent_cooperated_last_round(self):
        self.org.opponent_cooperated_last_round(True)
        self.assertSequenceEqual([False, True], self.org.memory)
        
        self.org.opponent_cooperated_last_round(False)
        self.assertSequenceEqual([True, False], self.org.memory)
        
    def test_will_cooperate(self):
        did_cooperate = self.org.will_cooperate()
        self.assertEqual(False, did_cooperate)
        
        self.org.opponent_cooperated_last_round(True)
        did_cooperate = self.org.will_cooperate()
        self.assertEqual(False, did_cooperate)
        
        self.org.opponent_cooperated_last_round(True)
        did_cooperate = self.org.will_cooperate()
        self.assertEqual(True, did_cooperate)