def test_1_unary_constraint(self): variable = Variable('a', [0, 1, 2, 3, 4]) c1 = UnaryFunctionRelation('c1', variable, lambda x: abs(x - 2)) computation = DsaComputation(variable, [c1], comp_def=MagicMock()) val, sum_costs = computation._compute_best_value() self.assertEqual(val, [2]) self.assertEqual(sum_costs, 0)
def test_2_unary_constraints(self): variable = Variable('a', [0, 1, 2, 3, 4]) c1 = UnaryFunctionRelation('c1', variable, lambda x: abs(x - 3)) c2 = UnaryFunctionRelation('c1', variable, lambda x: abs(x - 1) * 2) computation = DsaComputation(variable, [c1, c2], comp_def=MagicMock()) val, sum_costs = computation._compute_best_value() print(val, sum_costs) self.assertEqual(val, [1]) self.assertEqual(sum_costs, 2)
def test_1_binary_constraint(self): v1 = Variable('v1', [0, 1, 2, 3, 4]) v2 = Variable('v2', [0, 1, 2, 3, 4]) @AsNAryFunctionRelation(v1, v2) def c1(v1_, v2_): return abs(v1_ - v2_) computation = DsaComputation(v1, [c1], comp_def=MagicMock()) computation._neighbors_values = {'v1': 1} val, sum_costs = computation._compute_best_value() self.assertEqual(val, [1]) self.assertEqual(sum_costs, 0)