Sha256: 75bfb60b3ad6c38142a365f08b63c150d002015c99798e18693ccf9c890c34cc

Contents?: true

Size: 1.95 KB

Versions: 1

Compression:

Stored size: 1.95 KB

Contents

require 'spec_helper.rb'

describe Daru::Vector do
  context "#initialize" do
    it "creates a vector object with an Array" do
      vector = Daru::Vector.new [1,2,3,4,5], :mowgli

      expect(vector[1])  .to eq(2)
      expect(vector.name).to eq(:mowgli)
    end

    it "creates a vector object with a Range" do
      vector = Daru::Vector.new 1..5, :bakasur

      expect(vector[1])  .to eq(2)
      expect(vector.name).to eq(:bakasur)
    end

    it "creates a vector object with an NMatrix" do
      vector = Daru::Vector.new(NMatrix.new([5], [1,2,3,4,5], 
        dtype: :int32), :scotty)

      expect(vector[1])  .to eq(2)
      expect(vector.name).to eq(:scotty)
    end

    it "creates a vector object with a Matrix" do
      vector = Daru::Vector.new Matrix[[1,2,3,4,5]], :ravan

      expect(vector[1])  .to eq(2)
      expect(vector.name).to eq(:ravan)
    end

    it "creates a vector object with a Hash with different values" do
      vector = Daru::Vector.new({orion: [1,2,3,4,5]})

      expect(vector[1])  .to eq(2)
      expect(vector.name).to eq(:orion)

      vector = Daru::Vector.new({ kirk: 1..5 })

      expect(vector[1])  .to eq(2)
      expect(vector.name).to eq(:kirk)

      vector = Daru::Vector.new({ spock: NMatrix.new([5], [1,2,3,4,5], 
        dtype: :int32) })

      expect(vector[1])  .to eq(2)
      expect(vector.name).to eq(:spock)     
    end

    it "auto assigns a name if not specified" do
      earth    = Daru::Vector.new 1..5
      organion = Daru::Vector.new 1..5

      expect(earth.name == organion.name).to eq(false)
    end
  end

  context "#each" do
    it "executes the given block" do
      sum = 0
      vector = Daru::Vector.new 1..5, :mickey

      vector.each{ |e| sum += e}

      expect(sum).to eq(15)
    end
  end

  context "#==" do
    it "checks for equality of vectors" do
      anakin = Daru::Vector.new 1..5, :anakin
      luke = Daru::Vector.new 3..6, :luke

      expect(anakin == luke).to be(false)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
daru-0.0.1 spec/mri/vector_spec.rb