]> git.lizzy.rs Git - rust.git/blob - src/libcore/bool.rs
core: Remove bool::to_bit
[rust.git] / src / libcore / bool.rs
1 // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 //! The boolean type
12
13 #![doc(primitive = "bool")]
14
15 #[cfg(test)]
16 mod tests {
17     use realstd::prelude::*;
18     use super::to_bit;
19
20     #[test]
21     fn test_to_bit() {
22         assert_eq!(to_bit::<u8>(true), 1u8);
23         assert_eq!(to_bit::<u8>(false), 0u8);
24     }
25
26     #[test]
27     fn test_eq() {
28         assert_eq!(false.eq(&true), false);
29         assert_eq!(false == false, true);
30         assert_eq!(false != true, true);
31         assert_eq!(false.ne(&false), false);
32     }
33
34     #[test]
35     fn test_bitand() {
36         assert_eq!(false.bitand(&false), false);
37         assert_eq!(true.bitand(&false), false);
38         assert_eq!(false.bitand(&true), false);
39         assert_eq!(true.bitand(&true), true);
40
41         assert_eq!(false & false, false);
42         assert_eq!(true & false, false);
43         assert_eq!(false & true, false);
44         assert_eq!(true & true, true);
45     }
46
47     #[test]
48     fn test_bitor() {
49         assert_eq!(false.bitor(&false), false);
50         assert_eq!(true.bitor(&false), true);
51         assert_eq!(false.bitor(&true), true);
52         assert_eq!(true.bitor(&true), true);
53
54         assert_eq!(false | false, false);
55         assert_eq!(true | false, true);
56         assert_eq!(false | true, true);
57         assert_eq!(true | true, true);
58     }
59
60     #[test]
61     fn test_bitxor() {
62         assert_eq!(false.bitxor(&false), false);
63         assert_eq!(true.bitxor(&false), true);
64         assert_eq!(false.bitxor(&true), true);
65         assert_eq!(true.bitxor(&true), false);
66
67         assert_eq!(false ^ false, false);
68         assert_eq!(true ^ false, true);
69         assert_eq!(false ^ true, true);
70         assert_eq!(true ^ true, false);
71     }
72
73     #[test]
74     fn test_not() {
75         assert_eq!(!true, false);
76         assert_eq!(!false, true);
77     }
78
79     #[test]
80     fn test_to_str() {
81         let s = false.to_str();
82         assert_eq!(s.as_slice(), "false");
83         let s = true.to_str();
84         assert_eq!(s.as_slice(), "true");
85     }
86
87     #[test]
88     fn test_ord() {
89         assert!(true > false);
90         assert!(!(false > true));
91
92         assert!(false < true);
93         assert!(!(true < false));
94
95         assert!(false <= false);
96         assert!(false >= false);
97         assert!(true <= true);
98         assert!(true >= true);
99
100         assert!(false <= true);
101         assert!(!(false >= true));
102         assert!(true >= false);
103         assert!(!(true <= false));
104     }
105
106     #[test]
107     fn test_totalord() {
108         assert!(true.cmp(&true) == Equal);
109         assert!(false.cmp(&false) == Equal);
110         assert!(true.cmp(&false) == Greater);
111         assert!(false.cmp(&true) == Less);
112     }
113 }