specs/set_var.rb in gecoder-0.8.3 vs specs/set_var.rb in gecoder-0.9.0

- old
+ new

@@ -1,21 +1,26 @@ -require File.dirname(__FILE__) + '/spec_helper' +require File.dirname(__FILE__) + '/constraints/property_helper' -describe Gecode::FreeSetVar, '(not assigned)' do +describe Gecode::SetVar, '(not assigned)' do before do - model = Gecode::Model.new - @var = model.set_var(1..3, 0..4) + @model = Gecode::Model.new + @operand = @var = @model.set_var(1..3, 0..4) end it 'should not be assigned' do @var.should_not be_assigned end it 'should give glb and lub ranges when inspecting' do @var.inspect.should include('lub-range') @var.inspect.should include('glb-range') end + + it 'should allow inspection even when the bounds are too large to display' do + var = @model.set_var + var.inspect.should include('too large') + end it 'should report the correct bounds' do @var.lower_bound.sort.to_a.should == (1..3).to_a @var.upper_bound.sort.to_a.should == (0..4).to_a end @@ -40,17 +45,19 @@ lambda do lower_bound.each{} lower_bound.each{} end.should_not raise_error end + + it_should_behave_like 'set var operand' end -describe Gecode::FreeSetVar, '(assigned)' do +describe Gecode::SetVar, '(assigned)' do before do - model = Gecode::Model.new - @var = model.set_var(1, 1) - model.solve! + @model = Gecode::Model.new + @operand = @var = @model.set_var(1, 1) + @model.solve! end it 'should be assigned' do @var.should be_assigned end @@ -63,6 +70,13 @@ it 'should report the correct bounds' do @var.upper_bound.to_a.should == [1] @var.lower_bound.to_a.should == [1] @var.value.to_a.should == [1] end + + it 'should allow inspection even when the bounds are too large to display' do + var = @model.set_var(0..10**4, 0..10**4) + var.inspect.should include('too large') + end + + it_should_behave_like 'set var operand' end