Sha256: 89e83844d9dc378c5b56caf26076c209ea37d72c164abb9d2099d28a40a7880d

Contents?: true

Size: 962 Bytes

Versions: 7

Compression:

Stored size: 962 Bytes

Contents

require 'spec_helper'
require 'dentaku/ast/functions/max'
require 'dentaku'

describe 'Dentaku::AST::Function::Max' do
  it 'returns the largest numeric value in an array of Numeric values' do
    result = Dentaku('MAX(1, x, 1.8)', x: 2.3)
    expect(result).to eq(2.3)
  end

  it 'returns the largest value even if a String is passed' do
    result = Dentaku('MAX(1, x, 1.8)', x: '2.3')
    expect(result).to eq(2.3)
  end

  it 'returns the largest value even if an Array is passed' do
    result = Dentaku('MAX(1, x, 1.8)', x: [1.5, 2.3, 1.7])
    expect(result).to eq(2.3)
  end

  it 'returns the largest value if only an Array is passed' do
    result = Dentaku('MAX(x)', x: [1.5, 2.3, 1.7])
    expect(result).to eq(2.3)
  end

  context 'checking errors' do
    let(:calculator) { Dentaku::Calculator.new }

    it 'does not raise an error if an empty array is passed' do
      expect(calculator.evaluate!('MAX(x)', x: [])).to eq(nil)
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
dentaku-3.5.4 spec/ast/max_spec.rb
dentaku-3.5.3 spec/ast/max_spec.rb
dentaku-3.5.2 spec/ast/max_spec.rb
dentaku_zevo-3.5.2 spec/ast/max_spec.rb
dentaku-3.5.1 spec/ast/max_spec.rb
dentaku-3.5.0 spec/ast/max_spec.rb
dentaku-3.4.2 spec/ast/max_spec.rb