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 = []
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)
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)
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))
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)
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)
def get_dg_basis(self): return fca.compute_dg_basis(self._cxt._cxt, imp_basis=self._background_implications)
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)
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)