diff --git a/lib/rubella/storage.rb b/lib/rubella/storage.rb index 989af2b..7a736b2 100644 --- a/lib/rubella/storage.rb +++ b/lib/rubella/storage.rb @@ -49,6 +49,8 @@ module Rubella # Returns the current length of the storage. # (How many datasets it holds.) # + # TODO Throw an error, if data has different lengths + # # @return Integer length # def length diff --git a/spec/unit/rubella/storage/dataset_length_spec.rb b/spec/unit/rubella/storage/dataset_length_spec.rb new file mode 100644 index 0000000..624dbb4 --- /dev/null +++ b/spec/unit/rubella/storage/dataset_length_spec.rb @@ -0,0 +1,29 @@ +require 'spec_helper' + +describe Rubella::Storage, '.dataset_length' do + + it "returns 0 if Storage is empty" do + storage = Rubella::Storage.new [] + + expect(storage.dataset_length).to eq(0) + end + + it "returns 1 if Storage holds one dimensional array" do + storage = Rubella::Storage.new [1, 2, 3] + + expect(storage.dataset_length).to eq(1) + end + + it "returns 1 if Storage datasets have a length of 1" do + storage = Rubella::Storage.new [[1], [2], [3]] + + expect(storage.dataset_length).to eq(1) + end + + it "returns the length of the datasets" do + storage = Rubella::Storage.new [[1, 2], [3, 4], [5, 6]] + + expect(storage.dataset_length).to eq(2) + end + +end