diff --git a/src/libcore/bool.rs b/src/libcore/bool.rs index 146f29dd9f1da..c523cf7843439 100644 --- a/src/libcore/bool.rs +++ b/src/libcore/bool.rs @@ -8,129 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -//! Operations on boolean values (`bool` type) -//! -//! A `to_bit` conversion function. +//! The boolean type #![doc(primitive = "bool")] -use num::{Int, one, zero}; - -///////////////////////////////////////////////////////////////////////////// -// Freestanding functions -///////////////////////////////////////////////////////////////////////////// - -/// Convert a `bool` to an integer. -/// -/// # Examples -/// -/// ```rust -/// use std::bool; -/// -/// assert_eq!(bool::to_bit::(true), 1u8); -/// assert_eq!(bool::to_bit::(false), 0u8); -/// ``` -#[inline] -pub fn to_bit(p: bool) -> N { - if p { one() } else { zero() } -} - -#[cfg(test)] -mod tests { - use realstd::prelude::*; - use super::to_bit; - - #[test] - fn test_to_bit() { - assert_eq!(to_bit::(true), 1u8); - assert_eq!(to_bit::(false), 0u8); - } - - #[test] - fn test_eq() { - assert_eq!(false.eq(&true), false); - assert_eq!(false == false, true); - assert_eq!(false != true, true); - assert_eq!(false.ne(&false), false); - } - - #[test] - fn test_bitand() { - assert_eq!(false.bitand(&false), false); - assert_eq!(true.bitand(&false), false); - assert_eq!(false.bitand(&true), false); - assert_eq!(true.bitand(&true), true); - - assert_eq!(false & false, false); - assert_eq!(true & false, false); - assert_eq!(false & true, false); - assert_eq!(true & true, true); - } - - #[test] - fn test_bitor() { - assert_eq!(false.bitor(&false), false); - assert_eq!(true.bitor(&false), true); - assert_eq!(false.bitor(&true), true); - assert_eq!(true.bitor(&true), true); - - assert_eq!(false | false, false); - assert_eq!(true | false, true); - assert_eq!(false | true, true); - assert_eq!(true | true, true); - } - - #[test] - fn test_bitxor() { - assert_eq!(false.bitxor(&false), false); - assert_eq!(true.bitxor(&false), true); - assert_eq!(false.bitxor(&true), true); - assert_eq!(true.bitxor(&true), false); - - assert_eq!(false ^ false, false); - assert_eq!(true ^ false, true); - assert_eq!(false ^ true, true); - assert_eq!(true ^ true, false); - } - - #[test] - fn test_not() { - assert_eq!(!true, false); - assert_eq!(!false, true); - } - - #[test] - fn test_to_str() { - let s = false.to_str(); - assert_eq!(s.as_slice(), "false"); - let s = true.to_str(); - assert_eq!(s.as_slice(), "true"); - } - - #[test] - fn test_ord() { - assert!(true > false); - assert!(!(false > true)); - - assert!(false < true); - assert!(!(true < false)); - - assert!(false <= false); - assert!(false >= false); - assert!(true <= true); - assert!(true >= true); - - assert!(false <= true); - assert!(!(false >= true)); - assert!(true >= false); - assert!(!(true <= false)); - } - - #[test] - fn test_totalord() { - assert!(true.cmp(&true) == Equal); - assert!(false.cmp(&false) == Equal); - assert!(true.cmp(&false) == Greater); - assert!(false.cmp(&true) == Less); - } -} diff --git a/src/test/run-pass/bool.rs b/src/test/run-pass/bool.rs new file mode 100644 index 0000000000000..cb364d23387cf --- /dev/null +++ b/src/test/run-pass/bool.rs @@ -0,0 +1,77 @@ +// Copyright 2014 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// Basic boolean tests + +fn main() { + assert_eq!(false.eq(&true), false); + assert_eq!(false == false, true); + assert_eq!(false != true, true); + assert_eq!(false.ne(&false), false); + + assert_eq!(false.bitand(&false), false); + assert_eq!(true.bitand(&false), false); + assert_eq!(false.bitand(&true), false); + assert_eq!(true.bitand(&true), true); + + assert_eq!(false & false, false); + assert_eq!(true & false, false); + assert_eq!(false & true, false); + assert_eq!(true & true, true); + + assert_eq!(false.bitor(&false), false); + assert_eq!(true.bitor(&false), true); + assert_eq!(false.bitor(&true), true); + assert_eq!(true.bitor(&true), true); + + assert_eq!(false | false, false); + assert_eq!(true | false, true); + assert_eq!(false | true, true); + assert_eq!(true | true, true); + + assert_eq!(false.bitxor(&false), false); + assert_eq!(true.bitxor(&false), true); + assert_eq!(false.bitxor(&true), true); + assert_eq!(true.bitxor(&true), false); + + assert_eq!(false ^ false, false); + assert_eq!(true ^ false, true); + assert_eq!(false ^ true, true); + assert_eq!(true ^ true, false); + + assert_eq!(!true, false); + assert_eq!(!false, true); + + let s = false.to_str(); + assert_eq!(s.as_slice(), "false"); + let s = true.to_str(); + assert_eq!(s.as_slice(), "true"); + + assert!(true > false); + assert!(!(false > true)); + + assert!(false < true); + assert!(!(true < false)); + + assert!(false <= false); + assert!(false >= false); + assert!(true <= true); + assert!(true >= true); + + assert!(false <= true); + assert!(!(false >= true)); + assert!(true >= false); + assert!(!(true <= false)); + + assert!(true.cmp(&true) == Equal); + assert!(false.cmp(&false) == Equal); + assert!(true.cmp(&false) == Greater); + assert!(false.cmp(&true) == Less); +}