aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/type/float_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activemodel/test/cases/type/float_test.rb')
-rw-r--r--activemodel/test/cases/type/float_test.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/activemodel/test/cases/type/float_test.rb b/activemodel/test/cases/type/float_test.rb
new file mode 100644
index 0000000000..230a8dda32
--- /dev/null
+++ b/activemodel/test/cases/type/float_test.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+require "cases/helper"
+
+module ActiveModel
+ module Type
+ class FloatTest < ActiveModel::TestCase
+ def test_type_cast_float
+ type = Type::Float.new
+ assert_equal 1.0, type.cast("1")
+ end
+
+ def test_type_cast_float_from_invalid_string
+ type = Type::Float.new
+ assert_nil type.cast("")
+ assert_equal 1.0, type.cast("1ignore")
+ assert_equal 0.0, type.cast("bad1")
+ assert_equal 0.0, type.cast("bad")
+ end
+
+ def test_changing_float
+ type = Type::Float.new
+
+ assert type.changed?(0.0, 0, "wibble")
+ assert type.changed?(5.0, 0, "wibble")
+ assert_not type.changed?(5.0, 5.0, "5wibble")
+ assert_not type.changed?(5.0, 5.0, "5")
+ assert_not type.changed?(5.0, 5.0, "5.0")
+ assert_not type.changed?(500.0, 500.0, "0.5E+4")
+ assert_not type.changed?(nil, nil, nil)
+ end
+ end
+ end
+end