pint/interpreter/
tests.rs1#[cfg(test)]
2mod tests {
3 use crate::interpreter::*;
4 use crate::types::*;
5
6 #[test]
7 fn gets_correct_color_index() {
8 let color = RGB(0, 255, 0);
9 let result = get_color_index(color).unwrap();
10 let expected = Coordinates { x: 2, y: 1 };
11
12 assert_eq!(result, expected);
13 }
14
15 #[test]
16 fn gets_correct_color_diff_1() {
17 let prev = RGB(0, 255, 0);
18 let current = RGB(255, 192, 192);
19 let result = calculate_color_diff(prev, current);
20 let expected = Coordinates { x: 4, y: 2 };
21
22 assert_eq!(result, expected);
23 }
24
25 #[test]
26 fn gets_correct_color_diff_2() {
27 let prev = RGB(192, 255, 192);
28 let current = RGB(192, 255, 255);
29 let result = calculate_color_diff(prev, current);
30 let expected = Coordinates { x: 1, y: 0 };
31
32 assert_eq!(result, expected);
33 }
34 #[test]
35 fn gets_correct_color_diff_3() {
36 let prev = RGB(192, 0, 192);
37 let current = RGB(255, 0, 255);
38 let result = calculate_color_diff(prev, current);
39 let expected = Coordinates { x: 0, y: 2 };
40
41 assert_eq!(result, expected);
42 }
43 #[test]
44 fn roll_test1() {
45 let mut stack = vec![12, 3, 102, 33, 7, 4, 2];
46 let mut dp = Direction::UP;
47 let mut cc = CodelChooser::LEFT;
48
49 roll(3, &mut stack, &mut cc, &mut dp);
50 assert_eq!(stack, [12, 33, 7, 3, 102]);
51 }
52 #[test]
53 fn roll_test2() {
54 let mut stack = vec![1, 2, 3, 3, 1];
55 let mut dp = Direction::UP;
56 let mut cc = CodelChooser::LEFT;
57
58 roll(3, &mut stack, &mut cc, &mut dp);
59 assert_eq!(stack, [3, 1, 2]);
60 }
61 #[test]
62 fn switch_test() {
63 let mut stack = vec![1, 2, 3, 3, 1];
64 let mut dp = Direction::UP;
65 let mut cc = CodelChooser::LEFT;
66
67 switch(3, &mut stack, &mut cc, &mut dp);
68 assert_eq!(stack, [1, 2, 3, 3]);
69 assert_eq!(cc, CodelChooser::RIGHT);
70 }
71}