def test_calculate_weight(self): n_samples = 2 rc = PMCABC([self.model], [self.dist_calc], self.backend, seed=1) theta = np.array([1.0, 1.0]) weight = rc._calculate_weight(theta) self.assertEqual(weight, 0.5) accepted_parameters = [[1.0, 1.0 + np.sqrt(2)], [0, 0]] accepted_weights = np.array([[.5], [.5]]) accepted_cov_mat = [np.array([[1.0, 0], [0, 1]])] rc.accepted_parameters_manager.update_broadcast( rc.backend, accepted_parameters, accepted_weights, accepted_cov_mat) kernel_parameters = [] for kernel in rc.kernel.kernels: kernel_parameters.append( rc.accepted_parameters_manager. get_accepted_parameters_bds_values(kernel.models)) rc.accepted_parameters_manager.update_kernel_values( rc.backend, kernel_parameters=kernel_parameters) weight = rc._calculate_weight(theta) expected_weight = 0.170794684453 self.assertAlmostEqual(weight, expected_weight)
def test_calculate_weight(self): n_samples = 2 rc = PMCABC(self.model, self.dist_calc, self.kernel, self.backend, 1) theta = np.array([1.0]) weight = rc._calculate_weight(theta) self.assertEqual(weight, 0.5) accepted_parameters = np.array([[1.0], [1.0 + np.sqrt(2)]]) accepted_weights = np.array([[.5], [.5]]) accepted_cov_mat = np.array([[1.0]]) rc._update_broadcasts(accepted_parameters, accepted_weights, accepted_cov_mat) weight = rc._calculate_weight(theta) expected_weight = (2.0 * np.sqrt(2.0 * np.pi)) /(( 1 + np.exp(-1))*100) self.assertEqual(weight, expected_weight)