Sha256: 64bdb928fd42c1ab1fa1e56451271c1189b5170541848231dd5e809c21b278ed

Contents?: true

Size: 770 Bytes

Versions: 1

Compression:

Stored size: 770 Bytes

Contents

# encoding: utf-8

require 'spec_helper'

describe Algebra::Summarization::Summary, '#summarize_by' do
  subject { object.summarize_by(projection, tuple) }

  let(:object)     { described_class.new(summarizer)                       }
  let(:summarizer) { lambda { |accumulator, tuple| accumulator.to_i.succ } }
  let(:header)     { Relation::Header.new([ [ :id, Integer ] ])            }
  let(:tuple)      { Tuple.new(header, [ 1 ])                              }
  let(:projection) { tuple.project([])                                     }

  it_should_behave_like 'a command method'

  it 'aggregates the value returned by the summarizer' do
    2.times { instance_eval(&self.class.subject) }  # bypass subject cache
    object.call(projection).should == 2
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
veritas-0.0.4 spec/unit/veritas/algebra/summarization/summary/summarize_by_spec.rb