require 'spec_helper' describe GeometricBoundingBox do describe '#initialize_by_points' do point1 = GeometricPoint.new(1, 2) point2 = GeometricPoint.new(3, 4) bounding_box = GeometricBoundingBox.new(point1, point2) it 'to be equal' do expect(bounding_box.leftbottom).to eq(point1) expect(bounding_box.righttop).to eq(point2) end it 'to be not equal' do expect(bounding_box.leftbottom).not_to eq(point2) expect(bounding_box.righttop).not_to eq(point1) end end describe '#initialize_by_arrays' do point1 = GeometricPoint.new(1, 2) point2 = GeometricPoint.new(3, 4) bounding_box = GeometricBoundingBox.new_by_arrays([1, 2], [3, 4]) it 'to be equal' do expect(bounding_box.leftbottom).to eq(point1) expect(bounding_box.righttop).to eq(point2) end it 'to be not equal' do expect(bounding_box.leftbottom).not_to eq(point2) expect(bounding_box.righttop).not_to eq(point1) end end describe '#contains' do bounding_box = GeometricBoundingBox.new(GeometricPoint.new(-1, -1), GeometricPoint.new(1, 1)) it 'to be containing point' do expect(bounding_box.contains?(GeometricPoint.new(0, 0))).to eq(true) end it 'to be not containing point' do expect(bounding_box.contains?(GeometricPoint.new(2, 2))).to eq(false) expect(bounding_box.contains?(GeometricPoint.new(-2, -2))).to eq(false) expect(bounding_box.contains?(GeometricPoint.new(1, 2))).to eq(false) expect(bounding_box.contains?(GeometricPoint.new(0, -1.1))).to eq(false) end it 'to be not containing point' do expect(bounding_box.contains?(GeometricPoint.new(2, 2))).to eq(false) expect(bounding_box.contains?(GeometricPoint.new(-2, -2))).to eq(false) expect(bounding_box.contains?(GeometricPoint.new(1, 2))).to eq(false) expect(bounding_box.contains?(GeometricPoint.new(0, -1.1))).to eq(false) end it 'to be containing point at edge' do expect(bounding_box.contains?(GeometricPoint.new(1, 0))).to eq(true) end it 'to be containing point at vertex' do expect(bounding_box.contains?(GeometricPoint.new(1, 1))).to eq(true) end end end