示例#1
0
 def _init_implications(self):
     """Compute stem base for initial context"""
     self.attribute_implications = fca.compute_dg_basis(self.context)
     transposed_cxt = self.context.transpose()
     self.object_implications = fca.compute_dg_basis(transposed_cxt)
     self.confirmed_attribute_implications = []
     self.confirmed_object_implications = []
示例#2
0
 def _init_implications(self):
     """Compute stem base for initial context"""
     self.attribute_implications = fca.compute_dg_basis(self.context)
     transposed_cxt = self.context.transpose()
     self.object_implications = fca.compute_dg_basis(transposed_cxt)
     self.confirmed_attribute_implications = []
     self.confirmed_object_implications = []
示例#3
0
 def test_relative_basis(self):
     simple_basis = compute_dg_basis(self.cxt)
     self.assertEqual(len(simple_basis), 3)
     relative_basis = compute_dg_basis(self.cxt, imp_basis=self.basis)
     self.assertEqual(len(set(relative_basis) & set(self.basis)), 0)
     self.assertEqual(len(relative_basis), 2)
     self.assertEqual(len(self.basis), 1)
示例#4
0
 def test_relative_basis(self):
     simple_basis = compute_dg_basis(self.cxt)
     self.assertEqual(len(simple_basis), 3)
     relative_basis = compute_dg_basis(self.cxt, imp_basis=self.basis)
     self.assertEqual(len(set(relative_basis) & set(self.basis)), 0)
     self.assertEqual(len(relative_basis), 2)
     self.assertEqual(len(self.basis), 1)
示例#5
0
 def recompute_basis(self):
     basis = self.confirmed_attribute_implications
     new_implications = fca.compute_dg_basis(self.context, basis)
     self.attribute_implications = []
     for imp in new_implications:
         if imp not in basis:
             self.attribute_implications.append(imp)
             
     basis = self.confirmed_object_implications
     transposed_cxt = self.context.transpose()
     new_implications = fca.compute_dg_basis(transposed_cxt, basis)
     self.object_implications = []
     for imp in new_implications:
         if imp not in basis:
             self.object_implications.append(imp)
示例#6
0
    def recompute_basis(self):
        basis = self.confirmed_attribute_implications
        new_implications = fca.compute_dg_basis(self.context, basis)
        self.attribute_implications = []
        for imp in new_implications:
            if imp not in basis:
                self.attribute_implications.append(imp)

        basis = self.confirmed_object_implications
        transposed_cxt = self.context.transpose()
        new_implications = fca.compute_dg_basis(transposed_cxt, basis)
        self.object_implications = []
        for imp in new_implications:
            if imp not in basis:
                self.object_implications.append(imp)
示例#7
0
    def test_basis(self):
        simple_basis = compute_dg_basis(self.cxt)

        message = "Implication [{0}] occurs more than once"
        for imp1 in simple_basis:
            counter = 0
            for imp2 in simple_basis:
                if imp1 == imp2:
                    counter += 1
            self.assertEqual(counter, 1, message.format(imp1))
示例#8
0
 def test_basis(self):
     simple_basis = compute_dg_basis(self.cxt)
     
     message = "Implication [{0}] occurs more than once"
     for imp1 in simple_basis:
         counter = 0
         for imp2 in simple_basis:
             if imp1 == imp2:
                 counter += 1
         self.assertEqual(counter, 1, message.format(imp1))
示例#9
0
    def test_attribute_implications(self):
        self.attribute_implications = [
            Implication({'Carribean'},
                        {'United States', 'Carribean', 'Latin America'}),
            Implication({'Mexico'},
                        {'United States', 'Latin America', 'Mexico'}),
            Implication({'Africa'},
                        {'Europe', 'United States', 'Asia Pasific', 'Africa'}),
            Implication({'Middle East'}, {
                'Canada', 'Europe', 'Asia Pasific', 'United States',
                'Middle East'
            }),
            Implication({'United States', 'Asia Pasific'},
                        {'Europe', 'United States', 'Asia Pasific'}),
            Implication({'Canada'}, {'Canada', 'United States'}),
            Implication({'Europe', 'United States'},
                        {'Europe', 'United States', 'Asia Pasific'}),
            Implication({'Europe', 'Asia Pasific'},
                        {'Europe', 'United States', 'Asia Pasific'}),
            Implication(
                {
                    'Canada', 'Europe', 'Asia Pasific', 'Africa',
                    'United States'
                }, {
                    'Canada', 'Europe', 'Asia Pasific', 'Africa',
                    'United States', 'Middle East'
                }),
            Implication({'Latin America'}, {'United States', 'Latin America'}),
            Implication(
                {'United States', 'Carribean', 'Latin America', 'Mexico'}, {
                    'Canada', 'United States', 'Carribean', 'Latin America',
                    'Mexico'
                }),
            Implication(
                {'Canada', 'United States', 'Latin America'},
                {'Canada', 'United States', 'Latin America', 'Mexico'}),
            Implication(
                {
                    'Europe', 'Asia Pasific', 'Africa', 'United States',
                    'Carribean', 'Latin America'
                }, {
                    'Canada', 'Europe', 'Asia Pasific', 'Mexico', 'Africa',
                    'United States', 'Middle East', 'Carribean',
                    'Latin America'
                }),
        ]

        imp_basis = compute_dg_basis(self.cxt)
        self.assertEqual(len(imp_basis), len(self.attribute_implications))
        for imp in self.attribute_implications:
            self.assertTrue(imp in imp_basis)
示例#10
0
 def test_attribute_implications(self):
     self.attribute_implications = [
         Implication({'Carribean'},
                     {'United States', 'Carribean', 'Latin America'}),
         Implication({'Mexico'},
                     {'United States', 'Latin America', 'Mexico'}),
         Implication({'Africa'},
                     {'Europe', 'United States', 'Asia Pasific', 'Africa'}),
         Implication({'Middle East'},
                     {'Canada', 'Europe', 'Asia Pasific', 'United States',
                      'Middle East'}),
         Implication({'United States', 'Asia Pasific'},
                     {'Europe', 'United States', 'Asia Pasific'}),
         Implication({'Canada'}, {'Canada', 'United States'}),
         Implication({'Europe', 'United States'},
                     {'Europe', 'United States', 'Asia Pasific'}),
         Implication({'Europe', 'Asia Pasific'},
                     {'Europe', 'United States', 'Asia Pasific'}),
         Implication(
             {'Canada', 'Europe', 'Asia Pasific', 'Africa', 'United States'},
             {'Canada', 'Europe', 'Asia Pasific', 'Africa',
                      'United States', 'Middle East'}),
         Implication({'Latin America'},
                     {'United States', 'Latin America'}),
         Implication(
             {'United States', 'Carribean', 'Latin America', 'Mexico'},
             {'Canada', 'United States', 'Carribean',
                      'Latin America', 'Mexico'}),
         Implication({'Canada', 'United States', 'Latin America'},
                     {'Canada', 'United States', 'Latin America', 'Mexico'}),
         Implication({'Europe', 'Asia Pasific', 'Africa', 'United States',
                      'Carribean', 'Latin America'},
                     {'Canada', 'Europe', 'Asia Pasific', 'Mexico', 'Africa',
                      'United States', 'Middle East', 'Carribean',
                      'Latin America'}),
     ]
     
     imp_basis = compute_dg_basis(self.cxt)
     self.assertEqual(len(imp_basis), len(self.attribute_implications))
     for imp in self.attribute_implications:
         self.assertTrue(imp in imp_basis)
示例#11
0
 def get_dg_basis(self):
     return fca.compute_dg_basis(self._cxt._cxt, imp_basis=self._background_implications)
示例#12
0
 def test_relative_basis(self):
     imp_basis = [Implication(set(), set(['c']))]
     relative_basis = compute_dg_basis(self.cxt, imp_basis=imp_basis)
     self.assertFalse(imp_basis[0] in relative_basis)
示例#13
0
 def get_dg_basis(self):
     return fca.compute_dg_basis(self._cxt._cxt,
                                 imp_basis=self._background_implications)
示例#14
0
 def test_relative_basis(self):
     imp_basis=[Implication(set(), set(['c']))]
     relative_basis = compute_dg_basis(self.cxt, imp_basis=imp_basis)
     self.assertFalse(imp_basis[0] in relative_basis)