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)
        PDOrg.next_org_id = 0
        org_two = PDOrg(self.geno, 0)

        self.assertEqual(org_two.id, 0)

        self.assertEqual(org_two.parent, 0)

    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_store_bit_of_memory(self):
        self.org.store_bit_of_memory(True)
        self.org.store_bit_of_memory(False)
        self.assertSequenceEqual([True, False], self.org.memory)

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

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

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

        self.org.store_bit_of_memory(True)
        did_cooperate = self.org.will_cooperate()
        self.assertEqual(True, did_cooperate)

    def test_will_cooperate_empty(self):
        org = PDOrg(Geno(0, [True], []))
        did_cooperate = org.will_cooperate()
        self.assertEqual(did_cooperate, True)

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

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

        self.org.initialize_memory()

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

    def test_hash(self):
        clone = PDOrg(self.geno)
        self.assertEqual(hash(clone), hash(self.org))
class TestPDOrg(unittest.TestCase):
    def setUp(self):
        pd_org.MAX_BITS_OF_MEMORY = 5
        pd_org.MUTATION_LIKELIHOOD_OF_BITS_OF_MEMORY = 0.33
        pd_org.MUTATION_LIKELIHOOD_OF_INITIAL_MEMORY_STATE = 0.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)
        PDOrg.next_org_id = 0
        org_two = PDOrg(self.geno, 0)

        self.assertEqual(org_two.id, 0)

        self.assertEqual(org_two.parent, 0)

    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_store_bit_of_memory(self):
        self.org.store_bit_of_memory(True)
        self.org.store_bit_of_memory(False)
        self.assertSequenceEqual([True, False], self.org.memory)

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

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

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

        self.org.store_bit_of_memory(True)
        did_cooperate = self.org.will_cooperate()
        self.assertEqual(True, did_cooperate)

    def test_will_cooperate_empty(self):
        org = PDOrg(Geno(0, [True], []))
        did_cooperate = org.will_cooperate()
        self.assertEqual(did_cooperate, True)

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

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

        self.org.initialize_memory()

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

    def test_hash(self):
        clone = PDOrg(self.geno)
        self.assertEqual(hash(clone), hash(self.org))