def genMergeCase(self,ExcludeClassifier,filterFunc=None): compliant=False x1,x2,Y=None,None,None while not compliant: x1='a'+choice(self.points) x2='a'+choice(self.points) Y=Oracle.mergeDecision(x1,x2) compliant=filterFunc(x1,x2,Y) if filterFunc else True #print x1,x2,'=>',Y s=Schema(x1,x2) R=s.expandX()[0] iSB=s.scoring2merge(R,ExcludeClassifier) X=iSB.mergeInputModel() #X=IN,OUT,SUM,DIFF return X,Y
def genExcludeCaseGroup(self,filterFunc=None): x1,x2=None,None merge=False compliant=False while not (merge and compliant): x1='a'+choice(self.points) x2='a'+choice(self.points) merge=Oracle.mergeDecision(x1,x2) compliant=filterFunc(x1,x2,merge) if filterFunc else True s=Schema(x1,x2) R=s.expandX()[0] iSB=s.scoring2exclude(R) exP,exQ=iSB.excludeInputModels() exP_Y=Oracle.excludeOnMerge(x1) exQ_Y=Oracle.excludeOnMerge(x2) return zip(exP,[i in exP_Y for i in range(len(x1))])+zip(exQ,[i in exQ_Y for i in range(len(x2))])
def genMergeCase_old(self,filterFunc=None,blame=0.2): #use old manual exclude classifier so it s deprecated compliant=False x1,x2,Y=None,None,None while not compliant: x1='a'+choice(self.points) x2='a'+choice(self.points) Y=Oracle.mergeDecision(x1,x2) compliant=filterFunc(x1,x2,Y) if filterFunc else True #print x1,x2,'=>',Y s=Schema(x1,x2) R=s.expandX()[0] iSB=s.scoring2merge_old(R,blameRatio=blame) X=iSB.mergeInputModel() #X=IN,OUT,SUM,DIFF return X,Y