Gecoder C0 Coverage Information - RCov

lib/gecoder/interface/constraints/set_enum/operation.rb

Name Total Lines Lines of Code Total Coverage Code Coverage
lib/gecoder/interface/constraints/set_enum/operation.rb 69 38
100.00%
100.00%

Key

Code reported as executed by Ruby looks like this...and this: this line is also marked as covered.Lines considered as run by rcov, but not reported by Ruby, look like this,and this: these lines were inferred by rcov (using simple heuristics).Finally, here's a line marked as not executed.

Coverage Details

1 module Gecode::SetEnum
2   module SetEnumOperand
3     # Produces a SetOperand representing the union of all sets in this
4     # enumeration.
5     #
6     # ==== Examples 
7     #
8     #   # The union of all sets in +set_enum+.
9     #   set_enum.union
10     def union
11       set_operation(:union)
12     end
13     
14     # Produces a SetOperand representing the intersection of all sets in this
15     # enumeration.
16     #
17     # ==== Examples 
18     #
19     #   # The intersection of all sets in +set_enum+.
20     #   set_enum.intersection
21     def intersection
22       set_operation(:intersection)
23     end
24 
25     # Produces a SetOperand representing the disjoint union of all sets 
26     # in this enumeration.
27     #
28     # ==== Examples 
29     #
30     #   # The disjoint union of all sets in +set_enum+.
31     #   set_enum.disjoint_union
32     def disjoint_union
33       set_operation(:disjoint_union)
34     end
35 
36     private
37 
38     # Produces the SetOperand resulting from +operator+ applied to this
39     # operand.
40     def set_operation(operator)
41       Operation::OperationSetOperand.new(model, self, operator)
42     end
43   end
44 
45   # A module that gathers the classes and modules used in operation constraints.
46   module Operation #:nodoc:
47     class OperationSetOperand < Gecode::Set::ShortCircuitEqualityOperand #:nodoc:
48       def initialize(model, enum, operator)
49         super model
50         @enum = enum
51         @operator = operator
52       end
53 
54       def constrain_equal(set_operand, constrain_domain, propagation_options)
55         operation = Gecode::Util::SET_OPERATION_TYPES[@operator]
56         if constrain_domain
57           if operation == Gecode::Raw::SOT_INTER
58             set_operand.must_be.subset_of @enum.first.upper_bound
59           else
60             set_operand.must_be.subset_of @enum.upper_bound_range
61           end
62         end
63         
64         Gecode::Raw::rel(@model.active_space, operation, 
65           @enum.to_set_enum.bind_array, set_operand.to_set_var.bind)
66       end
67     end
68   end
69 end

Generated on Thu Jan 08 13:27:03 +0100 2015 with rcov 1.0.0