Example #1
0
    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)
Example #2
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)
Example #3
0
    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)