test/lib/vedeu/geometry/dimension_test.rb in vedeu-0.4.8 vs test/lib/vedeu/geometry/dimension_test.rb in vedeu-0.4.9
- old
+ new
@@ -9,89 +9,168 @@
let(:attributes) {
{
d: d,
dn: dn,
d_dn: d_dn,
- default: default
+ default: default,
+ options: options,
}
}
let(:d) {}
let(:dn) {}
let(:d_dn) {}
let(:default) {}
+ let(:options) { {} }
describe '#initialize' do
it { instance.must_be_instance_of(Vedeu::Dimension) }
it { instance.instance_variable_get('@d').must_equal(d) }
it { instance.instance_variable_get('@dn').must_equal(dn) }
it { instance.instance_variable_get('@d_dn').must_equal(d_dn) }
it { instance.instance_variable_get('@default').must_equal(default) }
+ it { instance.instance_variable_get('@options').must_equal(options) }
end
describe '.pair' do
- let(:d) { 5 }
- let(:dn) { 8 }
+ let(:d) { 15 }
+ let(:dn) { 38 }
subject { described.pair(attributes) }
it { subject.must_be_instance_of(Array) }
- it { subject.must_equal([5, 8]) }
+ it { subject.must_equal([15, 38]) }
+
+ context 'when centred and a length can be determined' do
+ let(:options) { { centred: true } }
+ let(:default) { 80 }
+
+ context 'when d and dn are given' do
+ let(:d) { 7 }
+ let(:dn) { 47 }
+
+ it { subject.must_equal([20, 60]) }
+ end
+
+ context 'when only a d_dn is given' do
+ let(:d_dn) { 30 }
+
+ it { subject.must_equal([28, 52]) }
+ end
+
+ context 'when only a default is given' do
+ it { subject.must_equal([28, 52]) }
+ end
+ end
end
describe '#d1' do
subject { instance.d1 }
it { subject.must_be_instance_of(Fixnum) }
- context 'when d is given' do
- let(:d) { 5 }
+ context 'when not centred and/or a length cannot be determined' do
+ context 'when d is given' do
+ let(:d) { 5 }
- it { subject.must_equal(5) }
+ it { subject.must_equal(5) }
+ end
+
+ context 'when d is not given' do
+ it { subject.must_equal(1) }
+ end
end
- context 'when d is not given' do
- it { subject.must_equal(1) }
+ context 'when centred and a length can be determined' do
+ let(:options) { { centred: true } }
+ let(:default) { 80 }
+
+ context 'when d and dn are given' do
+ let(:d) { 7 }
+ let(:dn) { 47 }
+
+ it { subject.must_equal(20) }
+ end
+
+ context 'when only a d_dn is given' do
+ let(:d_dn) { 30 }
+
+ it { subject.must_equal(25) }
+ end
+
+ context 'when only a default is given' do
+ it { subject.must_equal(1) }
+ end
end
end
describe '#d2' do
subject { instance.d2 }
- context 'when d and dn is given' do
- let(:d) { 5 }
- let(:dn) { 8 }
+ context 'when not centred and/or a length cannot be determined' do
+ context 'when d and dn are given' do
+ let(:d) { 5 }
+ let(:dn) { 8 }
- it { subject.must_equal(8) }
- end
+ it { subject.must_equal(8) }
+ end
- context 'when d and d_dn is given' do
- let(:d) { 5 }
- let(:d_dn) { 2 }
+ context 'when d and d_dn are given' do
+ let(:d) { 5 }
+ let(:d_dn) { 2 }
- it { subject.must_equal(7) }
- end
+ it { subject.must_equal(7) }
+ end
- context 'when only d_dn is given' do
- let(:d_dn) { 6 }
+ context 'when only d_dn is given' do
+ let(:d_dn) { 6 }
- it { subject.must_equal(6) }
- end
+ it { subject.must_equal(6) }
+ end
- context 'when d and a default is given' do
- let(:d) { 1 }
- let(:default) { 40 }
+ context 'when only dn is given' do
+ let(:dn) { 8 }
- it { subject.must_equal(40) }
- end
+ it { subject.must_equal(8) }
+ end
- context 'when only a default is given' do
- let(:default) { 25 }
+ context 'when d and a default is given' do
+ let(:d) { 1 }
+ let(:default) { 40 }
- it { subject.must_equal(25) }
+ it { subject.must_equal(40) }
+ end
+
+ context 'when only a default is given' do
+ let(:default) { 25 }
+
+ it { subject.must_equal(25) }
+ end
+
+ context 'when no default is given' do
+ it { subject.must_equal(nil) }
+ end
end
- context 'when no default is given' do
- it { subject.must_equal(nil) }
+ context 'when centred and a length can be determined' do
+ let(:options) { { centred: true } }
+ let(:default) { 80 }
+
+ context 'when d and dn are given' do
+ let(:d) { 7 }
+ let(:dn) { 47 }
+
+ it { subject.must_equal(60) }
+ end
+
+ context 'when only a d_dn is given' do
+ let(:d_dn) { 30 }
+
+ it { subject.must_equal(55) }
+ end
+
+ context 'when only a default is given' do
+ it { subject.must_equal(80) }
+ end
end
end
end # Dimension