dtypes/redis/
integer.rs

1//! The integer module contains the Ti32 struct which is a wrapper around an i32 value stored in Redis.
2
3use crate::redis::types::Generic;
4pub type Tusize = Generic<usize>;
5pub type Tu8 = Generic<u8>;
6pub type Tu16 = Generic<u16>;
7pub type Tu32 = Generic<u32>;
8pub type Tu64 = Generic<u64>;
9
10pub type Tisize = Generic<isize>;
11
12pub type Ti8 = Generic<i8>;
13pub type Ti16 = Generic<i16>;
14pub type Ti32 = Generic<i32>;
15pub type Ti64 = Generic<i64>;
16
17#[cfg(test)]
18mod tests {
19    use super::*;
20
21    #[allow(clippy::assign_op_pattern)]
22    #[test]
23    fn test_add() {
24        let client = redis::Client::open("redis://localhost:6379").unwrap();
25        let mut i32 = Ti32::with_value(1, "test_add", client.clone());
26        i32 = i32 + Ti32::with_value(2, "test_add2", client.clone());
27        assert_eq!(i32, 3);
28    }
29
30    #[test]
31    fn test_sub() {
32        let client = redis::Client::open("redis://localhost:6379").unwrap();
33        let mut i32 = Ti32::with_value(1, "test_sub", client.clone());
34        i32 = i32 - Ti32::with_value(2, "test_sub2", client.clone());
35        assert_eq!(i32, -1);
36    }
37
38    #[test]
39    fn test_mul() {
40        let client = redis::Client::open("redis://localhost:6379").unwrap();
41        let mut i32 = Ti32::with_value(1, "test_mul", client.clone());
42        i32 = i32 * Ti32::with_value(2, "test_mul2", client.clone());
43        assert_eq!(i32, 2);
44    }
45
46    #[test]
47    fn test_div() {
48        let client = redis::Client::open("redis://localhost:6379").unwrap();
49        let mut i32 = Ti32::with_value(1, "test_div", client.clone());
50        i32 = i32 / Ti32::with_value(2, "test_div2", client.clone());
51        assert_eq!(i32, 0);
52    }
53
54    #[test]
55    fn test_multiple_calculations() {
56        let client = redis::Client::open("redis://localhost:6379").unwrap();
57        let mut i32 = Ti32::with_value(1, "test_multiple_calculations", client.clone());
58        i32 = i32 + Ti32::with_value(2, "test_multiple_calculations2", client.clone());
59        i32 = i32 - Ti32::with_value(3, "test_multiple_calculations3", client.clone());
60        i32 = i32 * Ti32::with_value(4, "test_multiple_calculations4", client.clone());
61        i32 = i32 / Ti32::with_value(5, "test_multiple_calculations5", client.clone());
62        assert_eq!(i32, 0);
63    }
64
65    #[test]
66    fn test_add_assign() {
67        let client = redis::Client::open("redis://localhost:6379").unwrap();
68        let mut i32 = Ti32::with_value(1, "test_add_assign", client.clone());
69        i32 += Ti32::with_value(2, "test_add_assign2", client.clone());
70        assert_eq!(i32, 3);
71    }
72}