Exemplo n.º 1
0
 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]))
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 def setUp(self):
     attrs = ['a', 'b', 'c', 'd']
     shape = [3, 4, 5, 6]
     domain = Domain(attrs, shape)
     self.data = Dataset.synthetic(domain, 100)
Exemplo n.º 9
0
 def setUp(self):
     attrs = ['a', 'b', 'c', 'd']
     shape = [10, 20, 30, 40]
     self.domain = Domain(attrs, shape)
Exemplo n.º 10
0
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)
Exemplo n.º 11
0
    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))
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
 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)