Sha256: 727990495b198bc1f23c62c8fbbfcad1f810d3cd28a78956d4600ea5ad2eac86

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

require File.join(File.dirname(__FILE__), "..", "spec_helper")

describe SafeYAML::Transform::ToFloat do
  it "returns true when the value matches a valid Float" do
    subject.transform?("20.00").should == [true, 20.0]
  end

  it "returns false when the value does not match a valid Float" do
    subject.transform?("foobar").should be_false
  end

  it "returns false when the value spans multiple lines" do
    subject.transform?("20.00\nNOT A FLOAT").should be_false
  end

  it "correctly parses all formats in the YAML spec" do
    # canonical
    subject.transform?("6.8523015e+5").should == [true, 685230.15]

    # exponentioal
    subject.transform?("685.230_15e+03").should == [true, 685230.15]

    # fixed
    subject.transform?("685_230.15").should == [true, 685230.15]

    # sexagesimal
    subject.transform?("190:20:30.15").should == [true, 685230.15]

    # infinity
    subject.transform?("-.inf").should == [true, (-1.0 / 0.0)]

    # not a number
    # NOTE: can't use == here since NaN != NaN
    success, result = subject.transform?(".NaN")
    success.should be_true; result.should be_nan
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
safe_yaml-0.8.5 spec/transform/to_float_spec.rb
safe_yaml-0.8.4 spec/transform/to_float_spec.rb