Example #1
0
    def test_mate(self):
        """
		Method to test Chromosome.mate(Chromosome)
		"""
        c1 = Chromosome.gen_random()
        c2 = Chromosome.gen_random()

        # Check to ensure the right number of children are returned.
        children = c1.mate(c2)
        self.assertEqual(2, len(children))

        # Check the resulting child gene lengths
        self.assertEqual(13, len(children[0].gene))
        self.assertEqual(13, len(children[1].gene))

        # Determine the pivot point for the mating
        tmpArr = children[0].gene
        for pivot in range(len(c1.gene)):
            if c1.gene[pivot] != tmpArr[pivot]:
                break

        # Check the first child.
        for i in range(len(tmpArr)):
            if (i < pivot):
                self.assertEqual(c1.gene[i], tmpArr[i])
            else:
                self.assertEqual(c2.gene[i], tmpArr[i])

        # Check the second child.
        tmpArr = children[1].gene
        for i in range(len(tmpArr)):
            if i < pivot:
                self.assertEqual(c2.gene[i], tmpArr[i])
            else:
                self.assertEqual(c1.gene[i], tmpArr[i])
	def test_mate(self):
		"""
		Method to test Chromosome.mate(Chromosome)
		"""
		c1 = Chromosome.gen_random()
		c2 = Chromosome.gen_random()

		# Check to ensure the right number of children are returned.
		children = c1.mate(c2)
		self.assertEqual(2, len(children))

		# Check the resulting child gene lengths
		self.assertEqual(13, len(children[0].gene))
		self.assertEqual(13, len(children[1].gene))
		
		# Determine the pivot point for the mating
		tmpArr = children[0].gene
		for pivot in range(len(c1.gene)):
			if c1.gene[pivot] != tmpArr[pivot]:
				break;
		
		# Check the first child.
		for i in range(len(tmpArr)):
			if (i < pivot):
				self.assertEqual(c1.gene[i], tmpArr[i])
			else:
				self.assertEqual(c2.gene[i], tmpArr[i])

		# Check the second child.
		tmpArr = children[1].gene
		for i in range(len(tmpArr)):
			if i < pivot:
				self.assertEqual(c2.gene[i], tmpArr[i])
			else:
				self.assertEqual(c1.gene[i], tmpArr[i])
Example #3
0
    def test_fitness(self):
        """
		Method used to test Chromosome.fitness(), and indirectly 
		Chromosome._update_fitness().
		"""
        c = Chromosome("Hello, world!")
        self.assertEqual(0, c.fitness)

        c = Chromosome("H5p&J;!l<X\\7l")
        self.assertEqual(399, c.fitness)

        c = Chromosome("Vc;fx#QRP8V\\$")
        self.assertEqual(297, c.fitness)

        c = Chromosome("t\\O`E_Jx$n=NF")
        self.assertEqual(415, c.fitness)
	def test_gen_random(self):
		"""
		Method used to test Chromosome.gen_random.
		"""
		for i in range(1000):
			c = Chromosome.gen_random()
			self.assertTrue(c.fitness >= 0)
			self.assertEqual(13, len(c.gene))
			for ch in c.gene:
				self.assertTrue(ord(ch) >= 32)
				self.assertTrue(ord(ch) <= 121)
Example #5
0
    def test_gen_random(self):
        """
		Method used to test Chromosome.gen_random.
		"""
        for i in range(1000):
            c = Chromosome.gen_random()
            self.assertTrue(c.fitness >= 0)
            self.assertEqual(13, len(c.gene))
            for ch in c.gene:
                self.assertTrue(ord(ch) >= 32)
                self.assertTrue(ord(ch) <= 121)
	def test_mutate(self):
		"""
		Method to test Chromosome.mutate()
		"""
		for i in range(1000):
			c1 = Chromosome.gen_random()
			c2 = c1.mutate()
			self.assertEqual(len(c1.gene), len(c2.gene))
			
			s1 = set(c1.gene)
			s2 = set(c2.gene)
			self.assertTrue(len(s1 - s2) <= 1)
Example #7
0
    def test_mutate(self):
        """
		Method to test Chromosome.mutate()
		"""
        for i in range(1000):
            c1 = Chromosome.gen_random()
            c2 = c1.mutate()
            self.assertEqual(len(c1.gene), len(c2.gene))

            s1 = set(c1.gene)
            s2 = set(c2.gene)
            self.assertTrue(len(s1 - s2) <= 1)