Sha256: d7c1bad3da56abc45b659f1996ee5ed894204abe769ed405eb3314189b2a714a

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true

describe SlowEnumeratorTools::Merger do
  subject { described_class.merge(enums).to_a }

  context 'no enums' do
    let(:enums) { [] }
    it { is_expected.to be_empty }
  end

  context 'one enum, empty' do
    let(:enums) { [[]] }
    it { is_expected.to be_empty }
  end

  context 'one enum, one element' do
    let(:enums) { [[1]] }
    it { is_expected.to eq([1]) }
  end

  context 'one enum, two elements' do
    let(:enums) { [[1, 2]] }
    it { is_expected.to eq([1, 2]) }
  end

  context 'two enums, empty + empty' do
    let(:enums) { [[], []] }
    it { is_expected.to be_empty }
  end

  context 'two enums, empty + one el' do
    let(:enums) { [[], [1]] }
    it { is_expected.to eq([1]) }
  end

  context 'two enums, empty + two el' do
    let(:enums) { [[], [1, 2]] }
    it { is_expected.to eq([1, 2]) }
  end

  context 'two enums, one el + empty' do
    let(:enums) { [[1], []] }
    it { is_expected.to match_array([1]) }
  end

  context 'two enums, one el + one el' do
    let(:enums) { [[1], [2]] }
    it { is_expected.to match_array([1, 2]) }
  end

  context 'two enums, one el + two el' do
    let(:enums) { [[1], [2, 3]] }
    it { is_expected.to match_array([1, 2, 3]) }
  end

  context 'two enums, two el + empty' do
    let(:enums) { [[1, 2], []] }
    it { is_expected.to match_array([1, 2]) }
  end

  context 'two enums, two el + one el' do
    let(:enums) { [[1, 2], [3]] }
    it { is_expected.to match_array([1, 2, 3]) }
  end

  context 'two enums, two el + two el' do
    let(:enums) { [[1, 2], [3, 4]] }
    it { is_expected.to match_array([1, 2, 3, 4]) }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
slow_enumerator_tools-1.0.0 spec/merger_spec.rb
slow_enumerator_tools-1.0.0a1 spec/merger_spec.rb