Sha256: a2471b7411c3e8b1cb55dc744f365a339ac7616c185c2416c97bef23e7da96e7

Contents?: true

Size: 1.52 KB

Versions: 8

Compression:

Stored size: 1.52 KB

Contents

begin
  require "rserve"
  require 'daru/extensions/rserve'

  describe "Daru rserve extension" do
    before do
      @r = Rserve::Connection.new
    end

    after do
      @r.close
    end

    describe Daru::Vector do
      context "#to_REXP" do
        it "converts to and from R data" do
          a = Daru::Vector.new(100.times.map { |i| rand > 0.9 ? nil : i + rand })
          rexp = a.to_REXP
          expect(rexp.is_a?(Rserve::REXP::Double)).to eq(true)
          expect(rexp.to_ruby).to eq(a.to_a)

          @r.assign 'a', rexp
          expect(@r.eval('a').to_ruby).to eq(a.to_a)
        end
      end
    end

    describe Daru::DataFrame do
      context "#to_REXP" do
        it "converts to and from R data" do
          a = Daru::Vector.new(100.times.map { |i| rand > 0.9 ? nil : i + rand })
          b = Daru::Vector.new(100.times.map { |i| rand > 0.9 ? nil : i + rand })
          c = Daru::Vector.new(100.times.map { |i| rand > 0.9 ? nil : i + rand })
          ds = Daru::DataFrame.new({ :a => a, :b => b, :c => c })
          rexp = ds.to_REXP
          expect(rexp.is_a? Rserve::REXP::GenericVector).to eq(true)

          ret = rexp.to_ruby
          expect(ret['a']).to eq(a.to_a)
          @r.assign 'df', rexp
          out_df = @r.eval('df').to_ruby

          expect(out_df.attributes['class']).to eq('data.frame')
          expect(out_df.attributes['names']).to eq(%w(a b c))
          expect(out_df['a']).to eq(a.to_a)
        end
      end
    end
  end  
rescue LoadError => e
  puts "Requires rserve extension"
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
daru-0.1.5 spec/extensions/rserve_spec.rb
daru-0.1.4.1 spec/extensions/rserve_spec.rb
daru-0.1.4 spec/extensions/rserve_spec.rb
daru-0.1.3.1 spec/extensions/rserve_spec.rb
daru-0.1.3 spec/extensions/rserve_spec.rb
daru-0.1.2 spec/extensions/rserve_spec.rb
daru-0.1.1 spec/extensions/rserve_spec.rb
daru-0.1.0 spec/extensions/rserve_spec.rb