3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/or_tools/cp_model.rb', line 3
def add(comparison)
case comparison
when Comparison
method_name =
case comparison.operator
when "=="
:add_equality
when "!="
:add_not_equal
when ">"
:add_greater_than
when ">="
:add_greater_or_equal
when "<"
:add_less_than
when "<="
:add_less_or_equal
else
raise ArgumentError, "Unknown operator: #{comparison.operator}"
end
send(method_name, comparison.left, comparison.right)
when true
add_bool_or([true_var])
when false
add_bool_or([])
else
raise TypeError, "Not supported: CpModel#add(#{comparison})"
end
end
|