lib/gecoder/interface/constraints/set_enum/operation.rb in gecoder-0.7.0 vs lib/gecoder/interface/constraints/set_enum/operation.rb in gecoder-0.7.1
- old
+ new
@@ -12,11 +12,35 @@
end_code
end
end
# A module that gathers the classes and modules used by operation constaints.
-module Gecode::Constraints::SetEnum::Operation
- # Describes a stub started with a set enumeration followed by a set operation.
+module Gecode::Constraints::SetEnum::Operation #:nodoc:
+ # Describes a CompositeStub for the enumeration operation constraint, which
+ # constrains the result of applying an operation between all set variables in
+ # a set enumeration.
+ #
+ # The supported operations are:
+ # * union
+ # * disjoint_union
+ # * intersection
+ # * minus
+ #
+ # == Example
+ #
+ # # The union of all set variables in +sets+ must be subset of 1..17.
+ # sets.union.must_be.subset_of 1..17
+ #
+ # # The intersection of all set variables must equal [1,3,5].
+ # sets.intersection.must == [1,3,5]
+ #
+ # # The union of all set variable must be a subset of the set variable
+ # # +universe+.
+ # sets.union.must_be.subset_of universe
+ #
+ # # The same as above, but reified with the boolean variable
+ # # +is_within_universe+.
+ # sets.union.must_be.subset_of(universe, :reify => is_within_universe)
class ExpressionStub < Gecode::Constraints::Set::CompositeStub
def constrain_equal(variable, params, constrain)
enum, operation = @params.values_at(:lhs, :operation)
if constrain
\ No newline at end of file