def test_int2bits(self): self.assertEquals([1, 0, 0, 1, 1], helper.int2bits(19, 5)) self.assertEquals([0, 0, 1, 0, 0, 1, 1], helper.int2bits(19, 7)) self.assertRaises(AssertionError, helper.int2bits, 19, 4) self.assertEquals([1, 0, 0, 0, 0, 0], helper.int2bits(32, 6)) self.assertEquals([0, 1, 0, 0, 0, 0, 0], helper.int2bits(32, 7)) self.assertRaises(AssertionError, helper.int2bits, 32, 5)
def args2genes(self,args):#将参数值转化为基因串 #print args,self.bitgroups assert len(args) == len(self.bitgroups) genes = [] items = sorted(args.items()) for i in xrange(len(items)): #print self.argpool[i],items[i],items[i][0],items[i][1] pos = locate(self.argpool[i],items[i][1]) #必然可以找到 #print 'bitgroups[i]/pos',self.bitgroups[i],pos genes.extend(helper.int2bits(pos,self.bitgroups[i])) #print items,',genes2args:',self.genes2args(genes) #print genes return genes
def args2genes(self, args): #将参数值转化为基因串 #print args,self.bitgroups assert len(args) == len(self.bitgroups) genes = [] items = sorted(args.items()) for i in xrange(len(items)): #print self.argpool[i],items[i],items[i][0],items[i][1] pos = locate(self.argpool[i], items[i][1]) #必然可以找到 #print 'bitgroups[i]/pos',self.bitgroups[i],pos genes.extend(helper.int2bits(pos, self.bitgroups[i])) #print items,',genes2args:',self.genes2args(genes) #print genes return genes