Sha256: 0581cc483f5fc621e571fa11801f29d3dcb8abd70a36bb170ba0b5209828a682

Contents?: true

Size: 1.66 KB

Versions: 1

Compression:

Stored size: 1.66 KB

Contents

require "spec_helper"

describe Node do
  context "construction" do
    it "using the properties" do
      n = Node.new
      n.index = 11
      n.value = 0.11
      n.index.should == 11
      n.value.should be_within(0.0001).of(0.11)
    end

    it "using the constructor parameters" do
      n = Node.new(14, 0.14)
      n.index.should == 14
      n.value.should be_within(0.0001).of(0.14)
    end
  end

  context "inner workings" do
    let(:node) {Node.new}

    it "can be created" do
      node.should_not be_nil
    end

    it "does not segfault on setting properties" do
      node.index = 99
      node.index.should == 99
      node.value = 3.141
      node.value.should be_within(0.00001).of(3.141)
    end

    it "has inited properties" do
      node.index.should == 0
      node.value.should be_within(0.00001).of(0)
    end

    it "class can create nodes from an array" do
      ary = Node.features([0.1, 0.2, 0.3, 0.4, 0.5])
      ary.map {|n| n.class.should == Node}
      ary.map {|n| n.value }.should == [0.1, 0.2, 0.3, 0.4, 0.5]
    end

    it "class can create nodes from variable parameters" do
      ary = Node.features(0.1, 0.2, 0.3, 0.4, 0.5)
      ary.map {|n| Node.should === n }
      ary.map {|n| n.value }.should == [0.1, 0.2, 0.3, 0.4, 0.5]
    end

    it "class can create nodes from hash" do
      ary = Node.features(3=>0.3, 5=>0.5, 6=>0.6, 10=>1.0)
      ary.map {|n| n.class.should == Node}
      ary.map {|n| n.value }.sort.should == [0.3, 0.5, 0.6, 1.0]
      ary.map {|n| n.index }.sort.should == [3, 5, 6, 10]
    end

    it "implements a value-like equality, not identity-notion" do
      Node.new(1, 0.1).should == Node.new(1, 0.1)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jrb-libsvm-0.1.2-java spec/node_spec.rb