specs/tmp in gecoder-0.4.0 vs specs/tmp in gecoder-0.5.0
- old
+ new
@@ -1,135 +1,22 @@
Idea: Write constraints in separate modules and then include the modules in
the respective place.
- =begin
- it 'should handle relation with integer variables' do
- fail
- end
-
- it 'should handle propagation strength domain' do
- fail
- end
-
- it 'should handle propagation strength val' do
- fail
- end
-
- it 'should handle propagation strength range' do
- fail
- end
-
- it 'should raise error for unknown propagation strengths' do
- fail
- end
-
- it 'should handle reification' do
- fail
- end
-=end
-=begin
- it 'should handle variables as right hand side' do
- (@x + @y).must == @z
- sol = @model.solution
- x = sol.x.val
- y = sol.y.val
- z = sol.z.val
- (x + y).should equal(z)
- end
- it 'should handle multiplication with a constant' do
- Gecode::Raw.should_receive(:linear).once.with(@model.active_space,
- an_instance_of(Gecode::Raw::IntVarArray), Gecode::Raw::IRT_EQ, 1,
- Gecode::Raw::ICL_DEF).and_return{ |s, arr, irt, res, strength| arr }
- ((10*@x + @y).must == 1).should contain_vars_with_domains(@x_dom, @y_dom)
- end
-
- it 'should handle addition with a constant' do
-
- end
-
- it 'should handle relation...' do
-
- end
-=end
-
-module CustomVarMatchers
- class ContainVarsWithDomains
- def initialize(*expected_domains)
- @expected_domains = expected_domains
- end
- def matches?(target)
- @target = target
- return false unless @target.kind_of? Gecode::Raw::IntVarArray
- return false unless @target.size == @expected_domains.size
- @target.size do |i|
- var = @target.at(i)
- detected = @expected_domains.detect do |domain|
- variable_has_domain?(var, domain)
- end
- unless detected.nil?
- @expected_domains.delete(@expected_domains.index(detected))
- else
- return false
- end
- end
- return true
- end
-
- def failure_message
- "expected #{@target.inspect} to contain variables with domains " +
- @expected_vars.inspect
- end
-
- def negative_failure_message
- "expected #{@target.inspect} to not contain variables with domains " +
- @expected_vars.inspect
- end
-
- private
-
- def variable_has_domain?(target, expected)
- return false unless target.size == expected.size
- expected.each do |element|
- return false unless target.in(element)
- end
- return true
- end
+=begin
+ it 'should handle disjunction being constraint to be true' do
+ @bools.disjunction.must_be.true
+ @model.solve!
+ @bools.any?{ |b| b.true? }.should be_true
end
-
- # Tests whether an integer variables array contains variables with the
- # expected domains (in any order given).
- def contain_domains(expected)
- ContainVarsWithDomains.new(expected)
+
+ it 'should handle disjunction being constraint to be false' do
+ @bools.disjunction.must_be.false
+ @model.solve!
+ @bools.all?{ |b| b.false? }.should be_true
end
-end
-
-Spec::Runner.configure do |config|
- config.include(CustomVarMatchers)
-end
-
-
-
-
-Left:
-* Sorted
-* Arithmetic
-
-
-xs.occurrences_of(y).must == z
-xs.occurrences_of(3).must >= 5
-xs.count(y).must == z
-xs.number_of(y).must == z
-
-
-ys.sorted.must == xs
-ys.sorted_with(zs).must == xs
-
-ys.sort.must == xs
-ys.must_be.xs.sorted
-ys.must_be.sort(xs)
-ys.sort.must_be.xs
+=end
\ No newline at end of file