Skip to content

Commit 6d5d93e

Browse files
committed
misc: add tests
1 parent 5c6e7a6 commit 6d5d93e

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ Cargo.lock
88

99
# These are backup files generated by rustfmt
1010
**/*.rs.bk
11+
/.idea/

tests/add.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
pub fn add(a: i32, b: i32) -> i32 {
2+
a + b
3+
}
4+
5+
#[allow(dead_code)]
6+
fn bad_add(a: i32, b: i32) -> i32 {
7+
a - b
8+
}
9+
10+
#[cfg(test)]
11+
mod tests {
12+
use super::*;
13+
14+
#[test]
15+
fn test_add() {
16+
assert_eq!(add(1, 2), 3);
17+
}
18+
19+
#[test]
20+
fn test_bad_add() {
21+
assert_eq!(bad_add(1, 2), -1);
22+
}
23+
}

tests/trait.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
struct Duck;
2+
3+
struct Pig;
4+
5+
trait Fly {
6+
fn fly(&self) -> bool;
7+
}
8+
9+
impl Fly for Duck {
10+
fn fly(&self) -> bool {
11+
true
12+
}
13+
}
14+
15+
impl Fly for Pig {
16+
fn fly(&self) -> bool {
17+
false
18+
}
19+
}
20+
21+
fn fly_static<T: Fly>(s: T) -> bool {
22+
s.fly()
23+
}
24+
25+
fn fly_dyn(s: &dyn Fly) -> bool {
26+
s.fly()
27+
}
28+
29+
#[cfg(test)]
30+
mod tests {
31+
use super::*;
32+
33+
#[test]
34+
fn test_trait() {
35+
let pig = Pig;
36+
assert_eq!(fly_static::<Pig>(pig), false);
37+
38+
let duck = Duck;
39+
assert_eq!(fly_dyn(&duck), true);
40+
}
41+
}

0 commit comments

Comments
 (0)