def test_init(self): ''' Make sure the individual can be initialized correctly. ''' indv = BinaryIndividual(ranges=[(0, 1)], eps=0.001) # Check chromsome initialization. indv.init(chromsome=[0, 1, 1, 0, 0, 0, 1, 1, 1, 0]) self.assertListEqual([0, 1, 1, 0, 0, 0, 1, 1, 1, 0], indv.chromsome) self.assertListEqual(indv.solution, [0.388671875]) # Check solution initialization. indv.init(solution=[0.398]) self.assertListEqual(indv.solution, [0.398]) self.assertListEqual(indv.chromsome, [0, 1, 1, 0, 0, 1, 0, 1, 1])
def test_binary_encoding(self): ''' Make sure individual can decode and encode binary gene correctly. ''' indv = BinaryIndividual(ranges=[(0, 1)], eps=0.001) indv.init(solution=[0.398]) # Test binary chromsome. ref_chromsome = [0, 1, 1, 0, 0, 1, 0, 1, 1] self.assertListEqual(indv.chromsome, ref_chromsome) # Test decode. self.assertListEqual(indv.decode(), [0.396484375]) indv = BinaryIndividual(ranges=[(0, 1), (-1, 1)], eps=0.001) indv.init(solution=[0.398, 0.66]) # Test binary chromsome. ref_chromsome = [ 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 ] self.assertListEqual(indv.chromsome, ref_chromsome) # Test decode. self.assertListEqual(indv.decode(), [0.396484375, 0.658203125])