Sha256: fe36bf27b2b037856ca16aeabb099e7847f6ace00580091d7a636b3f038fde20

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

require 'spec_helper'
module Alf
  module Operator::Relational
    describe Summarize::SortBased do
        
      let(:input) {[
        {:a => "via_method", :time => 1},
        {:a => "via_method", :time => 1},
        {:a => "via_method", :time => 2},
        {:a => "via_reader", :time => 4},
        {:a => "via_reader", :time => 2},
      ]}
  
      let(:expected) {[
        {:a => "via_method", :time_sum => 4, :time_max => 2},
        {:a => "via_reader", :time_sum => 6, :time_max => 4},
      ]}
  
      let(:aggs){Summarization.new(
        :time_sum => Aggregator.sum{ time },
        :time_max => Aggregator.max{ time }
      )} 
      let(:operator){ Summarize::SortBased.new(by_key, allbut, aggs) }
  
      before{ operator.pipe(input) }
      subject{ operator.to_a.sort{|t1,t2| t1[:a] <=> t2[:a]} }
  
      describe "when allbut is not set" do
        let(:by_key){ AttrList.new([:a]) }
        let(:allbut){ false }
        it { should == expected }
      end
  
      describe "when allbut is set" do
        let(:by_key){ AttrList.new([:time]) }
        let(:allbut){ true }
        it { should == expected }
      end
  
    end 
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alf-0.10.1 spec/unit/operator/relational/summarize/test_sort_based.rb
alf-0.10.0 spec/unit/operator/relational/summarize/test_sort_based.rb