]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/range.rs
Use `assert_eq!` instead of `assert!` in tests
[rust.git] / src / test / run-pass / range.rs
1 // Copyright 2014 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 // Test range syntax.
12
13
14 fn foo() -> isize { 42 }
15
16 // Test that range syntax works in return statements
17 fn return_range_to() -> ::std::ops::RangeTo<i32> { return ..1; }
18 fn return_full_range() -> ::std::ops::RangeFull { return ..; }
19
20 pub fn main() {
21     let mut count = 0;
22     for i in 0_usize..10 {
23         assert!(i >= 0 && i < 10);
24         count += i;
25     }
26     assert_eq!(count, 45);
27
28     let mut count = 0;
29     let mut range = 0_usize..10;
30     for i in range {
31         assert!(i >= 0 && i < 10);
32         count += i;
33     }
34     assert_eq!(count, 45);
35
36     let mut count = 0;
37     let mut rf = 3_usize..;
38     for i in rf.take(10) {
39         assert!(i >= 3 && i < 13);
40         count += i;
41     }
42     assert_eq!(count, 75);
43
44     let _ = 0_usize..4+4-3;
45     let _ = 0..foo();
46
47     let _ = ..42_usize;
48
49     // Test we can use two different types with a common supertype.
50     let x = &42;
51     {
52         let y = 42;
53         let _ = x..&y;
54     }
55 }