def test_get_multiplied(self): factor1 = Factor([self.random_variables[0], self.random_variables[1]]) factor2 = Factor([self.random_variables[1], self.random_variables[2]]) factor1.add_value([1, 3], 10).add_value([1, 4], 20).add_value([2, 4], 30) factor2.add_value([3, 2], 5).add_value([4, 2], 2) product_factor = factor1.get_multiplied(factor2) self.assertEqual(product_factor.get_value({ 'x': 1, 'y': 3, 'z': 2 }), 50) self.assertEqual(product_factor.get_value({ 'x': 1, 'y': 4, 'z': 2 }), 40) self.assertEqual(product_factor.get_value({ 'x': 2, 'y': 4, 'z': 2 }), 60) self.assertEqual(product_factor.get_value({'x': 1, 'y': 5, 'z': 2}), 0) self.assertEqual(product_factor.get_value({'x': 2, 'y': 5, 'z': 2}), 0) self.assertEqual(product_factor.get_value({'x': 2, 'y': 5, 'z': 2}), 0)