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