コード例 #1
0
 def test_organism_given_unique_default_name(self):
     self.assertTrue(self.organism.name)
     organism_1 = Organism()
     organism_2 = Organism()
     self.assertNotEqual(self.organism.name, organism_1.name)
     self.assertNotEqual(self.organism.name, organism_2.name)
     self.assertNotEqual(organism_1.name, organism_2.name)
コード例 #2
0
ファイル: tests.py プロジェクト: jhevans/evolution
 def setUp(self):
     self.mock_organism = Mock(spec=Organism())
     self.mock_organism.name = "mock_organism_name"
     self.mock_organism.die = Mock()
     self.mock_random = Mock(return_value=0.5)
     self.senescence = Senescence(self.mock_random)
     self.senescence.decorate(self.mock_organism)
コード例 #3
0
 def test_add_gene_logs_debug_message(self, mock_getLogger):
     mock_logger = Mock()
     mock_getLogger.return_value = mock_logger
     foo_enabler = self.TestEnabler()
     mock_organism_1 = Mock(spec=Organism())
     mock_organism_1.name = 'mock_organism_name'
     foo_enabler.decorate(mock_organism_1)
     mock_logger.debug.assert_called_with(
         'Adding gene TestEnabler to organism "mock_organism_name"')
コード例 #4
0
    def setUp(self):
        self.mock_organism = Mock(spec=Organism())
        self.enabler = self.TestEnabler()
        self.enabler.decorate(self.mock_organism)
        self.non_enabler = BaseGene()

        self.test_genes = [
            self.enabler,
            self.non_enabler,
        ]
コード例 #5
0
class OrganismTest(TestCase):
    def setUp(self):
        self.context = {}
        self.organism = Organism()

    def test_organism_can_be_given_name(self):
        named_organism = Organism(name="Alfred")
        self.assertEqual(named_organism.name, "Alfred")

    def test_organism_given_unique_default_name(self):
        self.assertTrue(self.organism.name)
        organism_1 = Organism()
        organism_2 = Organism()
        self.assertNotEqual(self.organism.name, organism_1.name)
        self.assertNotEqual(self.organism.name, organism_2.name)
        self.assertNotEqual(organism_1.name, organism_2.name)

    def test_undecorated_organism_has_empty_genome(self):
        self.assertEqual(self.organism.genome, [])

    def test_set_context(self):
        self.organism.set_context(self.context)
        self.assertEqual(self.organism._context, self.context)

    def test_get_context(self):
        self.assertIsNone(self.organism.get_context())
        self.organism.set_context(self.context)
        self.assertEqual(self.organism.get_context(), self.context)
コード例 #6
0
ファイル: tests.py プロジェクト: jhevans/evolution
class OrganismTest(TestCase):
    def setUp(self):
        self.context = {}
        self.organism = Organism()

    def test_organism_can_be_given_name(self):
        named_organism = Organism(name="Alfred")
        self.assertEqual(named_organism.name, "Alfred")

    def test_organism_given_unique_default_name(self):
        self.assertTrue(self.organism.name)
        organism_1 = Organism()
        organism_2 = Organism()
        self.assertNotEqual(self.organism.name, organism_1.name)
        self.assertNotEqual(self.organism.name, organism_2.name)
        self.assertNotEqual(organism_1.name, organism_2.name)

    def test_undecorated_organism_has_empty_genome(self):
        self.assertEqual(self.organism.genome, [])

    def test_set_context(self):
        self.organism.set_context(self.context)
        self.assertEqual(self.organism._context, self.context)

    def test_get_context(self):
        self.assertIsNone(self.organism.get_context())
        self.organism.set_context(self.context)
        self.assertEqual(self.organism.get_context(), self.context)
コード例 #7
0
def run():
    print("Instantiating genes...")
    genes = [
        Mortality(),
        Senescence(inject__random=random),
    ]

    print("Creating organisms...")
    organisms = []
    for _ in range(20):
        organism = Organism()
        for gene in genes:
            gene.decorate(organism)
        organisms.append(organism)

    print("Running...")

    start_time = time.time()
    for n in range(1000):
        dead_count = 0
        # print("====================")
        # print("age = ", n)
        for organism in organisms:
            organism.increment_age()
            # print(organism.name, organism.alive)
            if not organism.alive:
                dead_count += 1

        # print(dead_count, "organisms have died")
        if dead_count == len(organisms):
            break

            # for organism in organisms:
            # print(organism.name, "died at age", organism.died_age)

    end_time = time.time()
    print("Done")
    duration = end_time - start_time
    print("Ran for %fs" % duration)
コード例 #8
0
ファイル: quickstart.py プロジェクト: jhevans/evolution
def run():
    print("Instantiating genes...")
    genes = [
        Mortality(),
        Senescence(inject__random=random),
    ]

    print("Creating organisms...")
    organisms = []
    for _ in range(20):
        organism = Organism()
        for gene in genes:
            gene.decorate(organism)
        organisms.append(organism)

    print("Running...")

    start_time = time.time()
    for n in range(1000):
        dead_count = 0
        # print("====================")
        # print("age = ", n)
        for organism in organisms:
            organism.increment_age()
            # print(organism.name, organism.alive)
            if not organism.alive:
                dead_count += 1

        # print(dead_count, "organisms have died")
        if dead_count == len(organisms):
            break

            # for organism in organisms:
            # print(organism.name, "died at age", organism.died_age)

    end_time = time.time()
    print("Done")
    duration = end_time - start_time
    print("Ran for %fs" % duration)
コード例 #9
0
ファイル: organism_tests.py プロジェクト: nlowery/org-sandbox
class OrganismTests(unittest.TestCase):

    def setUp(self):
        self.org = Organism(id=1)

    def test_organism_init(self):
        self.assertGreaterEqual(self.org.pos_x, 0)
        self.assertGreaterEqual(self.org.pos_y, 0)
        self.assertEqual(self.org.age, 0)
        self.assertEqual(self.org.distance_from_food, 0)
        self.assertEqual(self.org.energy, settings.STARTING_ENERGY)
        self.assertNotEqual(self.org.brain, None)

    def test_organism_move(self):
        pos_x = self.org.pos_x
        pos_y = self.org.pos_y
        self.org.move(5,5)
        self.assertEqual(pos_x, self.org.pos_x-5)
        self.assertEqual(pos_y, self.org.pos_y-5)

    def test_organism_brain(self):
        self.assertNotEqual(self.org.brain.process_input([0,0,0,0,0,0,0,0,0]), (0,0))
        self.assertNotEqual(self.org.brain.process_input([0,1,0,1,0,1,0,1,0]), (0,0))
        self.assertNotEqual(self.org.brain.process_input([1,1,1,1,1,1,1,1,1]), (0,0))
コード例 #10
0
 def setUp(self):
     self.context = {}
     self.organism = Organism()
コード例 #11
0
 def test_organism_can_be_given_name(self):
     named_organism = Organism(name="Alfred")
     self.assertEqual(named_organism.name, "Alfred")
コード例 #12
0
 def setUp(self):
     self.mock_organism = Mock(spec=Organism())
     self.attribute_gene = self.TestAttributeGene()
     self.attribute_gene.decorate(self.mock_organism)
コード例 #13
0
ファイル: tests.py プロジェクト: jhevans/evolution
 def setUp(self):
     self.mock_organism = Mock(spec=Organism())
     self.mock_organism.name = 'mock_organism_name'
     self.mortality_pseudo = Mortality()
     self.mortality_pseudo.decorate(self.mock_organism)
コード例 #14
0
ファイル: tests.py プロジェクト: jhevans/evolution
 def setUp(self):
     self.context = {}
     self.organism = Organism()
コード例 #15
0
ファイル: organism_tests.py プロジェクト: nlowery/org-sandbox
 def setUp(self):
     self.org = Organism(id=1)