def test_project(self): proj = self.data.project(['a', 'b']) ans = Domain(['a', 'b'], [3, 4]) self.assertEqual(proj.domain, ans) proj = self.data.project(('a', 'b')) self.assertEqual(proj.domain, ans) proj = self.data.project('c') self.assertEqual(proj.domain, Domain(['c'], [5]))
def test_project(self): ans = Domain(['a', 'b'], [10, 20]) res = self.domain.project(['a', 'b']) self.assertEqual(ans, res) ans = Domain(['c', 'b'], [30, 20]) res = self.domain.project(['c', 'b']) self.assertEqual(ans, res)
def setUp(self): attrs = ['a','b','c','d'] shape = [2,3,4,5] domain = Domain(attrs, shape) cliques = [('a','b'), ('b','c'),('c','d')] self.model = GraphicalModel(domain, cliques) zeros = { cl : Factor.zeros(domain.project(cl)) for cl in self.model.cliques } self.model.potentials = CliqueVector(zeros)
def test_eq(self): attrs = ['a', 'b', 'c', 'd'] shape = [10, 20, 30, 40] ans = Domain(attrs, shape) self.assertEqual(self.domain, ans) attrs = ['b', 'a', 'c', 'd'] ans = Domain(attrs, shape) self.assertNotEqual(self.domain, ans)
def test_marginalize(self): ans = Domain(['a', 'b'], [10, 20]) res = self.domain.marginalize(['c', 'd']) self.assertEqual(ans, res) res = self.domain.marginalize(['c', 'd', 'e']) self.assertEqual(ans, res)
def setUp(self): attrs = ['a', 'b', 'c', 'd', 'e'] shape = [2, 3, 4, 5, 6] self.domain = Domain(attrs, shape) #x = np.random.rand(*shape) self.measurements = [] for i in range(4): I = np.eye(shape[i]) y = np.random.rand(shape[i]) y /= y.sum() self.measurements.append((I, y, 1.0, attrs[i])) self.engine = FactoredInference(self.domain, backend='numpy', log=True)
def setUp(self): attrs = ['a','b','c','d'] shape = [10,20,30,40] domain = Domain(attrs, shape) cliques = [('a','b'), ('b','c'),('c','d')] self.tree = JunctionTree(domain, cliques)
def setUp(self): attrs = ['a', 'b', 'c', 'd'] shape = [3, 4, 5, 6] domain = Domain(attrs, shape) self.data = Dataset.synthetic(domain, 100)
def setUp(self): attrs = ['a', 'b', 'c', 'd'] shape = [10, 20, 30, 40] self.domain = Domain(attrs, shape)
class TestDomain(unittest.TestCase): def setUp(self): attrs = ['a', 'b', 'c', 'd'] shape = [10, 20, 30, 40] self.domain = Domain(attrs, shape) def test_eq(self): attrs = ['a', 'b', 'c', 'd'] shape = [10, 20, 30, 40] ans = Domain(attrs, shape) self.assertEqual(self.domain, ans) attrs = ['b', 'a', 'c', 'd'] ans = Domain(attrs, shape) self.assertNotEqual(self.domain, ans) def test_project(self): ans = Domain(['a', 'b'], [10, 20]) res = self.domain.project(['a', 'b']) self.assertEqual(ans, res) ans = Domain(['c', 'b'], [30, 20]) res = self.domain.project(['c', 'b']) self.assertEqual(ans, res) def test_marginalize(self): ans = Domain(['a', 'b'], [10, 20]) res = self.domain.marginalize(['c', 'd']) self.assertEqual(ans, res) res = self.domain.marginalize(['c', 'd', 'e']) self.assertEqual(ans, res) def test_axes(self): ans = (1, 3) res = self.domain.axes(['b', 'd']) self.assertEqual(ans, res) def test_transpose(self): ans = Domain(['b', 'd', 'a', 'c'], [20, 40, 10, 30]) res = self.domain.transpose(['b', 'd', 'a', 'c']) self.assertEqual(ans, res) def test_merge(self): ans = Domain(['a', 'b', 'c', 'd', 'e', 'f'], [10, 20, 30, 40, 50, 60]) new = Domain(['b', 'd', 'e', 'f'], [20, 40, 50, 60]) res = self.domain.merge(new) self.assertEqual(ans, res) def test_contains(self): new = Domain(['b', 'd'], [20, 40]) self.assertTrue(self.domain.contains(new)) new = Domain(['b', 'e'], [20, 50]) self.assertFalse(self.domain.contains(new)) def test_iter(self): self.assertEqual(len(self.domain), 4) for a, b, c in zip(self.domain, ['a', 'b', 'c', 'd'], [10, 20, 30, 40]): self.assertEqual(a, b) self.assertEqual(self.domain[a], c)
def test_contains(self): new = Domain(['b', 'd'], [20, 40]) self.assertTrue(self.domain.contains(new)) new = Domain(['b', 'e'], [20, 50]) self.assertFalse(self.domain.contains(new))
def test_merge(self): ans = Domain(['a', 'b', 'c', 'd', 'e', 'f'], [10, 20, 30, 40, 50, 60]) new = Domain(['b', 'd', 'e', 'f'], [20, 40, 50, 60]) res = self.domain.merge(new) self.assertEqual(ans, res)
def test_transpose(self): ans = Domain(['b', 'd', 'a', 'c'], [20, 40, 10, 30]) res = self.domain.transpose(['b', 'd', 'a', 'c']) self.assertEqual(ans, res)