def runTest(self): num_vars = 5 num_vals = 10 for x in xrange(num_runs): vs = dict([('V'+str(i),range(num_vals)) for i in xrange(num_vars)]) # should get some random data with 0. f = Factor(variables = vs.keys() ,data = [abs(randint(0,20)) for i in xrange(num_vals**num_vars)] #,data = [5, 0, 1, 2] #,data = [13,0,0,20] #,data = [14,15,20,16] ,domain = Domain() ,new_domain_variables=vs ,check = True) records = [] for inst in f.insts(): records.append(inst + (f[inst],)) rawdata = (vs.keys(), vs, vs.keys(), records) #print records cf = IncrementalCompactFactor(rawdata, rmin=0) #print 'old tree:' #print cf # g = Factor(variables = vs.keys() # #,data = [13,2,0,0] # ,data = [14,15,0,0] # ,domain = Domain() # ,new_domain_variables=vs # ,check = True) g = f.copy(copy_domain=True) def swap_some(x): r = random() if x == 0: if r <= 0.5: return randint(1,5) return 0 elif r <= 0.5: return 0 return x def invert_some(x): return 5-x g.map(swap_some) #print g f += g records = [] for inst in g.insts(): records.append(inst + (g[inst],)) rawdata = (vs.keys(), vs, vs.keys(), records) cf.update(rawdata) #print 'new tree:' #print cf for variables in powerset(vs.keys()): g = f.copy(copy_domain=True) g.marginalise_away(g.variables() - frozenset(variables)) self.assert_(same_factor(g,cf.makeFactor(variables),verbose=True))
def runTest(self): num_vars = 5 num_vals = 10 for i in xrange(num_runs): vs = dict([('V'+str(i),range(num_vals)) for i in xrange(num_vars)]) # should get some random data with 0. f = Factor(variables = vs.keys() ,data = [abs(randint(0,5)) for i in xrange(num_vals**num_vars)] ,domain = Domain() ,new_domain_variables=vs ,check = True) records = [] for inst in f.insts(): records.append(inst + (f[inst],)) rawdata = (vs.keys(), vs, vs.keys(), records) cf = IncrementalCompactFactor(rawdata) for variables in powerset(vs.keys()): g = f.copy(copy_domain=True) g.marginalise_away(g.variables() - frozenset(variables)) self.assert_(same_factor(g,cf.makeFactor(variables),verbose=True))