Sha256: 7146bced1ca2dd1eea16cd0e9bdc0e441d742a4ee1313f8cda2eff7fe4ae3862
Contents?: true
Size: 1.22 KB
Versions: 99
Compression:
Stored size: 1.22 KB
Contents
require "spec_helper" describe SafeYAML::Transform::ToFloat do it "returns true when the value matches a valid Float" do expect(subject.transform?("20.00")).to eq([true, 20.0]) end it "returns false when the value does not match a valid Float" do expect(subject.transform?("foobar")).to be_falsey end it "returns false when the value spans multiple lines" do expect(subject.transform?("20.00\nNOT A FLOAT")).to be_falsey end it "correctly parses all formats in the YAML spec" do # canonical expect(subject.transform?("6.8523015e+5")).to eq([true, 685230.15]) # exponentioal expect(subject.transform?("685.230_15e+03")).to eq([true, 685230.15]) # fixed expect(subject.transform?("685_230.15")).to eq([true, 685230.15]) # sexagesimal expect(subject.transform?("190:20:30.15")).to eq([true, 685230.15]) # infinity expect(subject.transform?("-.inf")).to eq([true, (-1.0 / 0.0)]) # not a number # NOTE: can't use == here since NaN != NaN success, result = subject.transform?(".NaN") expect(success).to be_truthy; expect(result).to be_nan end # issue 29 it "returns false for the string '.'" do expect(subject.transform?(".")).to be_falsey end end
Version data entries
99 entries across 91 versions & 13 rubygems