1mod version;
6pub use version::Version;
7#[cfg(test)]
8mod tests {
9 use std::cmp::Ordering::Equal;
10 use crate::*;
11 #[test]
12 fn version_test() {
13 let v1 = Version::parse("1.2.3-alpha+001");
14 let v2 = Version::parse("1.2.3-beta+002");
15 let v3 = Version::parse("2023.03.01");
16 let v4 = Version::parse("2.sjf.5djf");
17 let v5 = Version::parse("1:2.3.4");
18 let v6 = Version::parse("1.0.0-SNAPSHOT");
19
20 assert_eq!(v1 < v2, true); assert_eq!(v1 > v3, false); assert_eq!(v4 == v4, true); assert_eq!(v5 > v1, true); assert_eq!(v6 < v1, true); }
26 #[test]
27 fn printing(){
28 let v1 = Version::parse("1.2.3-alpha+001");
29 let v2 = Version::parse("2023.03.01");
30 let v3 = Version::parse("2.sjf.5djf");
31 let v4 = Version::parse("1:2.3.4");
32 let v5 = Version::parse("1.0.0-SNAPSHOT");
33
34 let v1_display = format!("{}", v1);
35 assert_eq!(v1_display, "1.2.3-alpha+001");
36 let v1_debug = format!("{:?}", v1);
37 assert_eq!(v1_debug, "epoch:0 components:[\"1\", \"2\", \"3\"] pre_release:alpha build_metadata:0");
38
39 let v2_display = format!("{}", v2);
40 assert_eq!(v2_display, "2023.03.01");
41 let v2_debug = format!("{:?}", v2);
42 assert_eq!(v2_debug, "epoch:0 components:[\"2023\", \"03\", \"01\"] pre_release: build_metadata:0");
43
44 let v3_display = format!("{}", v3);
45 assert_eq!(v3_display, "2.sjf.5djf");
46 let v3_debug = format!("{:?}", v3);
47 assert_eq!(v3_debug, "epoch:0 components:[\"2\", \"sjf\", \"5djf\"] pre_release: build_metadata:0");
48
49 let v4_display = format!("{}", v4);
50 assert_eq!(v4_display, "1:2.3.4");
51 let v4_debug = format!("{:?}", v4);
52 assert_eq!(v4_debug, "epoch:1 components:[\"2\", \"3\", \"4\"] pre_release: build_metadata:1");
53
54 let v5_display = format!("{}", v5);
55 assert_eq!(v5_display, "1.0.0-SNAPSHOT");
56 let v5_debug = format!("{:?}", v5);
57 assert_eq!(v5_debug, "epoch:0 components:[\"1\", \"0\", \"0\"] pre_release:SNAPSHOT build_metadata:0");
58 }
59 #[test]
60 fn test_of_additional_zero(){
61 let v1 = Version::parse("1.2.3");
62 let v2 = Version::parse("1.2.3.0");
63 assert_eq!(v1.cmp(&v2), Equal);
64 }
65}