def test_has_discrete(self): self.assertFalse(Domain([]).has_discrete_attributes()) self.assertFalse(Domain([], [age]).has_discrete_attributes()) self.assertFalse(Domain([], race).has_discrete_attributes()) self.assertFalse(Domain([age], None).has_discrete_attributes()) self.assertTrue(Domain([race], None).has_discrete_attributes()) self.assertTrue(Domain([age, race], None).has_discrete_attributes()) self.assertTrue(Domain([race, age], None).has_discrete_attributes()) self.assertFalse(Domain([], [age]).has_discrete_attributes(True)) self.assertTrue(Domain([], [race]).has_discrete_attributes(True)) self.assertFalse(Domain([age], None).has_discrete_attributes(True)) self.assertTrue(Domain([race], None).has_discrete_attributes(True)) self.assertTrue(Domain([age], race).has_discrete_attributes(True)) self.assertTrue(Domain([race], age).has_discrete_attributes(True)) self.assertTrue(Domain([], [race, age]).has_discrete_attributes(True)) d = Domain([], None, [gender]) self.assertTrue(d.has_discrete_attributes(False, True)) d = Domain([], None, [age]) self.assertFalse(d.has_discrete_attributes(False, True)) d = Domain([], [age], [gender]) self.assertTrue(d.has_discrete_attributes(True, True)) d = Domain([], [incomeA], [age]) self.assertFalse(d.has_discrete_attributes(True, True))
def test_has_discrete(self): self.assertFalse(Domain([]).has_discrete_attributes()) self.assertFalse(Domain([], [age]).has_discrete_attributes()) self.assertFalse(Domain([], race).has_discrete_attributes()) self.assertFalse(Domain([age], None).has_discrete_attributes()) self.assertTrue(Domain([race], None).has_discrete_attributes()) self.assertTrue(Domain([age, race], None).has_discrete_attributes()) self.assertTrue(Domain([race, age], None).has_discrete_attributes()) self.assertFalse(Domain([], [age]).has_discrete_attributes(True)) self.assertTrue(Domain([], [race]).has_discrete_attributes(True)) self.assertFalse(Domain([age], None).has_discrete_attributes(True)) self.assertTrue(Domain([race], None).has_discrete_attributes(True)) self.assertTrue(Domain([age], race).has_discrete_attributes(True)) self.assertTrue(Domain([race], age).has_discrete_attributes(True)) self.assertTrue(Domain([], [race, age]).has_discrete_attributes(True)) d = Domain([], None, [gender]) self.assertTrue(d.has_discrete_attributes(False, True)) d = Domain([], None, [age]) self.assertFalse(d.has_discrete_attributes(False, True)) d = Domain([], [age], [gender]) self.assertTrue(d.has_discrete_attributes(True, True)) d = Domain([], [incomeA], [age]) self.assertFalse(d.has_discrete_attributes(True, True))
def match(self, context: Context, domain: Domain, attrs: Dict, metas: Dict) -> float: cluster_var = context.values.get("cluster_var", (None, -2))[0] if domain.has_discrete_attributes(True, True) and cluster_var is None: return self.NO_MATCH return super().match(context, domain, attrs, metas)