def test_lws_allevidence(self):
     self.assertDictEqual(
         marginal_lws_a(self.bn,
                        evidence={
                            'Burglary': 'Yes',
                            'Alarm': 'Yes',
                            'Earthquake': 'Yes',
                            'JohnCalls': 'Yes',
                            'MaryCalls': 'Yes'
                        }), {
                            'Alarm': {
                                'No': 0.0,
                                'Yes': 1.0
                            },
                            'Burglary': {
                                'No': 0.0,
                                'Yes': 1.0
                            },
                            'Earthquake': {
                                'No': 0.0,
                                'Yes': 1.0
                            },
                            'JohnCalls': {
                                'No': 0.0,
                                'Yes': 1.0
                            },
                            'MaryCalls': {
                                'No': 0.0,
                                'Yes': 1.0
                            }
                        })
    def test_likelihood_weighted_sample(self):
        """
		THIS HAS BEEN VALIDATED AGAINST BNLEARN
		"""
        np.random.seed(3636)
        self.assertDictEqual(
            marginal_lws_a(self.bn, evidence={'Burglary': 'Yes'}), {
                'Alarm': {
                    'No': 0.058,
                    'Yes': 0.942
                },
                'Burglary': {
                    'No': 0.0,
                    'Yes': 1.0
                },
                'Earthquake': {
                    'No': 0.997,
                    'Yes': 0.003
                },
                'JohnCalls': {
                    'No': 0.136,
                    'Yes': 0.864
                },
                'MaryCalls': {
                    'No': 0.343,
                    'Yes': 0.657
                }
            })
    def test_likelihood_weighted_sample(self):
        """
		THIS HAS BEEN VALIDATED AGAINST BNLEARN
		"""
        np.random.seed(3636)
        self.assertDictEqual(
            marginal_lws_a(self.bn, evidence={"Burglary": "Yes"}),
            {
                "Alarm": {"No": 0.058, "Yes": 0.942},
                "Burglary": {"No": 0.0, "Yes": 1.0},
                "Earthquake": {"No": 0.997, "Yes": 0.003},
                "JohnCalls": {"No": 0.136, "Yes": 0.864},
                "MaryCalls": {"No": 0.343, "Yes": 0.657},
            },
        )
 def test_lws_allevidence(self):
     self.assertDictEqual(
         marginal_lws_a(
             self.bn,
             evidence={
                 "Burglary": "Yes",
                 "Alarm": "Yes",
                 "Earthquake": "Yes",
                 "JohnCalls": "Yes",
                 "MaryCalls": "Yes",
             },
         ),
         {
             "Alarm": {"No": 0.0, "Yes": 1.0},
             "Burglary": {"No": 0.0, "Yes": 1.0},
             "Earthquake": {"No": 0.0, "Yes": 1.0},
             "JohnCalls": {"No": 0.0, "Yes": 1.0},
             "MaryCalls": {"No": 0.0, "Yes": 1.0},
         },
     )