about summary refs log tree commit diff
path: root/src/libstd/num/f32.rs
diff options
context:
space:
mode:
authorHuon Wilson <dbau.pp+github@gmail.com>2014-10-20 11:39:01 +1100
committerHuon Wilson <dbau.pp+github@gmail.com>2014-10-20 21:10:13 +1100
commita1d5cd204d75156ea520c361da6dbb45b926b4d0 (patch)
treeacf01e68c8b55704934471812de7568a976cbfd0 /src/libstd/num/f32.rs
parent1c3ddd297128a96f72be09bddf138e4e603a7aa1 (diff)
downloadrust-a1d5cd204d75156ea520c361da6dbb45b926b4d0.tar.gz
rust-a1d5cd204d75156ea520c361da6dbb45b926b4d0.zip
Handle negative numbers in `sqrt` properly.
Closes #9987.
Diffstat (limited to 'src/libstd/num/f32.rs')
-rw-r--r--src/libstd/num/f32.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libstd/num/f32.rs b/src/libstd/num/f32.rs
index b2a9f1b7b20..f98e81bb2c8 100644
--- a/src/libstd/num/f32.rs
+++ b/src/libstd/num/f32.rs
@@ -787,4 +787,15 @@ mod tests {
         assert_eq!(NEG_INFINITY.integer_decode(), (8388608u64, 105i16, -1i8));
         assert_eq!(NAN.integer_decode(), (12582912u64, 105i16, 1i8));
     }
+
+    #[test]
+    fn test_sqrt_domain() {
+        assert!(NAN.sqrt().is_nan());
+        assert!(NEG_INFINITY.sqrt().is_nan());
+        assert!((-1.0f32).sqrt().is_nan());
+        assert_eq!((-0.0f32).sqrt(), -0.0);
+        assert_eq!(0.0f32.sqrt(), 0.0);
+        assert_eq!(1.0f32.sqrt(), 1.0);
+        assert_eq!(INFINITY.sqrt(), INFINITY);
+    }
 }