Пример #1
0
 def setUp(self):
     self.rule_cpd_with_rules = RuleCPD(
         'A', {
             ('A_0', 'B_0'): 0.8,
             ('A_1', 'B_0'): 0.2,
             ('A_0', 'B_1', 'C_0'): 0.4,
             ('A_1', 'B_1', 'C_0'): 0.6
         })
     self.rule_cpd_without_rules = RuleCPD('A')
Пример #2
0
 def test_init_without_errors_rules_not_none(self):
     rule_cpd = RuleCPD(
         'A', {
             ('A_0', 'B_0'): 0.8,
             ('A_1', 'B_0'): 0.2,
             ('A_0', 'B_1', 'C_0'): 0.4,
             ('A_1', 'B_1', 'C_0'): 0.6,
             ('A_0', 'B_1', 'C_1'): 0.9,
             ('A_1', 'B_1', 'C_1'): 0.1
         })
     self.assertEqual(rule_cpd.variable, 'A')
     self.assertEqual(
         rule_cpd.rules, {
             ('A_0', 'B_0'): 0.8,
             ('A_1', 'B_0'): 0.2,
             ('A_0', 'B_1', 'C_0'): 0.4,
             ('A_1', 'B_1', 'C_0'): 0.6,
             ('A_0', 'B_1', 'C_1'): 0.9,
             ('A_1', 'B_1', 'C_1'): 0.1
         })
Пример #3
0
 def setUp(self):
     self.rule_cpd_with_rules = RuleCPD('A', {('A_0', 'B_0'): 0.8,
                                              ('A_1', 'B_0'): 0.2,
                                              ('A_0', 'B_1', 'C_0'): 0.4,
                                              ('A_1', 'B_1', 'C_0'): 0.6})
     self.rule_cpd_without_rules = RuleCPD('A')
Пример #4
0
class TestRuleCPDMethods(unittest.TestCase):
    def setUp(self):
        self.rule_cpd_with_rules = RuleCPD('A', {('A_0', 'B_0'): 0.8,
                                                 ('A_1', 'B_0'): 0.2,
                                                 ('A_0', 'B_1', 'C_0'): 0.4,
                                                 ('A_1', 'B_1', 'C_0'): 0.6})
        self.rule_cpd_without_rules = RuleCPD('A')

    def test_add_rules_single(self):
        self.rule_cpd_with_rules.add_rules({('A_0', 'B_1', 'C_1'): 0.9})
        self.assertEqual(self.rule_cpd_with_rules.rules, {('A_0', 'B_0'): 0.8,
                                                          ('A_1', 'B_0'): 0.2,
                                                          ('A_0', 'B_1', 'C_0'): 0.4,
                                                          ('A_1', 'B_1', 'C_0'): 0.6,
                                                          ('A_0', 'B_1', 'C_1'): 0.9})
        self.assertEqual(self.rule_cpd_with_rules.variable, 'A')
        self.rule_cpd_without_rules.add_rules({('A_0', 'B_1', 'C_1'): 0.9})
        self.assertEqual(self.rule_cpd_without_rules.rules, {('A_0', 'B_1', 'C_1'): 0.9})
        self.assertEqual(self.rule_cpd_without_rules.variable, 'A')

    def test_add_rules_multiple(self):
        self.rule_cpd_with_rules.add_rules({('A_0', 'B_1', 'C_1'): 0.9,
                                            ('A_1', 'B_1', 'C_1'): 0.1})
        self.assertEqual(self.rule_cpd_with_rules.rules, {('A_0', 'B_0'): 0.8,
                                                          ('A_1', 'B_0'): 0.2,
                                                          ('A_0', 'B_1', 'C_0'): 0.4,
                                                          ('A_1', 'B_1', 'C_0'): 0.6,
                                                          ('A_0', 'B_1', 'C_1'): 0.9,
                                                          ('A_1', 'B_1', 'C_1'): 0.1})
        self.assertEqual(self.rule_cpd_with_rules.variable, 'A')
        self.rule_cpd_without_rules.add_rules({('A_0', 'B_1', 'C_1'): 0.9,
                                               ('A_1', 'B_1', 'C_1'): 0.1})
        self.assertEqual(self.rule_cpd_without_rules.rules, {('A_0', 'B_1', 'C_1'): 0.9,
                                                             ('A_1', 'B_1', 'C_1'): 0.1})
        self.assertEqual(self.rule_cpd_without_rules.variable, 'A')

    def test_add_rules_error(self):
        self.assertRaises(ValueError, self.rule_cpd_with_rules.add_rules, {('A_0',): 0.8})

    def test_scope(self):
        self.assertEqual(self.rule_cpd_with_rules.scope(), {'A', 'B', 'C'})
        self.assertEqual(self.rule_cpd_without_rules.scope(), set())

    def test_cardinality(self):
        self.assertEqual(self.rule_cpd_with_rules.cardinality(), {'A': 2, 'B': 2, 'C': 1})
        self.assertEqual(self.rule_cpd_without_rules.cardinality(), {})

    def tearDown(self):
        del self.rule_cpd_without_rules
Пример #5
0
class TestRuleCPDMethods(unittest.TestCase):
    def setUp(self):
        self.rule_cpd_with_rules = RuleCPD(
            'A', {
                ('A_0', 'B_0'): 0.8,
                ('A_1', 'B_0'): 0.2,
                ('A_0', 'B_1', 'C_0'): 0.4,
                ('A_1', 'B_1', 'C_0'): 0.6
            })
        self.rule_cpd_without_rules = RuleCPD('A')

    def test_add_rules_single(self):
        self.rule_cpd_with_rules.add_rules({('A_0', 'B_1', 'C_1'): 0.9})
        self.assertEqual(
            self.rule_cpd_with_rules.rules, {
                ('A_0', 'B_0'): 0.8,
                ('A_1', 'B_0'): 0.2,
                ('A_0', 'B_1', 'C_0'): 0.4,
                ('A_1', 'B_1', 'C_0'): 0.6,
                ('A_0', 'B_1', 'C_1'): 0.9
            })
        self.assertEqual(self.rule_cpd_with_rules.variable, 'A')
        self.rule_cpd_without_rules.add_rules({('A_0', 'B_1', 'C_1'): 0.9})
        self.assertEqual(self.rule_cpd_without_rules.rules,
                         {('A_0', 'B_1', 'C_1'): 0.9})
        self.assertEqual(self.rule_cpd_without_rules.variable, 'A')

    def test_add_rules_multiple(self):
        self.rule_cpd_with_rules.add_rules({
            ('A_0', 'B_1', 'C_1'): 0.9,
            ('A_1', 'B_1', 'C_1'): 0.1
        })
        self.assertEqual(
            self.rule_cpd_with_rules.rules, {
                ('A_0', 'B_0'): 0.8,
                ('A_1', 'B_0'): 0.2,
                ('A_0', 'B_1', 'C_0'): 0.4,
                ('A_1', 'B_1', 'C_0'): 0.6,
                ('A_0', 'B_1', 'C_1'): 0.9,
                ('A_1', 'B_1', 'C_1'): 0.1
            })
        self.assertEqual(self.rule_cpd_with_rules.variable, 'A')
        self.rule_cpd_without_rules.add_rules({
            ('A_0', 'B_1', 'C_1'): 0.9,
            ('A_1', 'B_1', 'C_1'): 0.1
        })
        self.assertEqual(self.rule_cpd_without_rules.rules, {
            ('A_0', 'B_1', 'C_1'): 0.9,
            ('A_1', 'B_1', 'C_1'): 0.1
        })
        self.assertEqual(self.rule_cpd_without_rules.variable, 'A')

    def test_add_rules_error(self):
        self.assertRaises(ValueError, self.rule_cpd_with_rules.add_rules,
                          {('A_0', ): 0.8})

    def test_scope(self):
        self.assertEqual(self.rule_cpd_with_rules.scope(), {'A', 'B', 'C'})
        self.assertEqual(self.rule_cpd_without_rules.scope(), set())

    def test_cardinality(self):
        self.assertEqual(self.rule_cpd_with_rules.cardinality(), {
            'A': 2,
            'B': 2,
            'C': 1
        })
        self.assertEqual(self.rule_cpd_without_rules.cardinality(), {})

    def tearDown(self):
        del self.rule_cpd_without_rules
Пример #6
0
 def test_init_without_errors_rules_none(self):
     rule_cpd = RuleCPD('A')
     self.assertEqual(rule_cpd.variable, 'A')