Sha256: 063b9fb09e360f645281055bebd494029785ef2289a5dfdb48ac31e7f9b5cd40

Contents?: true

Size: 1.81 KB

Versions: 2

Compression:

Stored size: 1.81 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
describe Qfill::Result do
  describe '#new' do
    context 'with no arguments' do
      it 'raises ArgumentError' do
        expect { described_class.new }.to raise_error(ArgumentError)
      end
    end

    context 'with name' do
      before do
        @arguments = { name: 'Best Results' }
      end

      it 'does not raise any errors' do
        expect { described_class.new(@arguments) }.not_to raise_error
      end

      it 'instantiates with name' do
        expect(described_class.new(@arguments).name).to eq('Best Results')
      end
    end

    context 'with ratio' do
      before do
        @arguments = {  name: 'Best Results',
                        ratio: 0.5 }
      end

      it 'instantiates with elements' do
        expect(described_class.new(@arguments).ratio).to eq(0.5)
      end
    end

    context 'with filter' do
      before do
        lambda = ->(object) { !object.nil? }
        @filter = Qfill::Filter.new(lambda)
        @arguments = {  name: 'Best Results',
                        ratio: 0.5,
                        filter: @filter }
      end

      it 'instantiates with filter' do
        expect(described_class.new(@arguments).filter).to be_a(Qfill::Filter)
        expect(described_class.new(@arguments).filter).to eq(@filter)
      end
    end

    context 'with list_ratios' do
      before do
        @arguments = {  name: 'Best Results',
                        ratio: 0.5,
                        list_ratios: {
                          'High Price' => 0.4,
                          'Medium Price' => 0.3,
                          'Low Price' => 0.3
                        } }
      end

      it 'instantiates with elements' do
        expect(described_class.new(@arguments).list_ratios['High Price']).to eq(0.4)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
qfill-0.1.1 spec/qfill/result_spec.rb
qfill-0.1.0 spec/qfill/result_spec.rb