1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3#![deny(rustdoc::missing_doc_code_examples)]
4#![doc = include_str!("../README.md")]
5
6mod byte_sizes;
7pub use byte_sizes::*;
8mod parser;
9pub use parser::*;
10mod supported_format;
11pub use supported_format::*;
12
13#[cfg(test)]
14mod sanity_checks {
15 use crate::calc_bytes;
16
17 #[test]
18 fn bytes() {
19 let size = 1023usize as f32;
20 let formatted = calc_bytes(size);
21
22 assert_eq!("1023.00B", formatted.as_str());
23 }
24
25 #[test]
26 fn kib() {
27 let size = 1024usize as f32;
28 let formatted = calc_bytes(size);
29
30 assert_eq!("1.00KiB", formatted.as_str());
31
32 let size = (1024 * 1023usize) as f32;
33 let formatted = calc_bytes(size);
34
35 assert_eq!("1023.00KiB", formatted.as_str());
36
37 let size = (1024 * 16usize) as f32;
38 let formatted = calc_bytes(size);
39
40 assert_eq!("16.00KiB", formatted.as_str());
41 }
42
43 #[test]
44 fn mib() {
45 let size = (1024 * 1024usize) as f32;
46 let formatted = calc_bytes(size);
47
48 assert_eq!("1.00MiB", formatted.as_str());
49
50 let size = (1024 * 1024 * 1023usize) as f32;
51 let formatted = calc_bytes(size);
52
53 assert_eq!("1023.00MiB", formatted.as_str());
54
55 let size = (1024 * 1024 * 16usize) as f32;
56 let formatted = calc_bytes(size);
57
58 assert_eq!("16.00MiB", formatted.as_str());
59 }
60
61 #[test]
62 fn gib() {
63 let size = (1024 * 1024 * 1024usize) as f32;
64 let formatted = calc_bytes(size);
65
66 assert_eq!("1.00GiB", formatted.as_str());
67
68 let size = (1024 * 1024 * 1024 * 1023usize) as f32;
69 let formatted = calc_bytes(size);
70
71 assert_eq!("1023.00GiB", formatted.as_str());
72
73 let size = (1024 * 1024 * 1024 * 16usize) as f32;
74 let formatted = calc_bytes(size);
75
76 assert_eq!("16.00GiB", formatted.as_str());
77 }
78
79 #[test]
80 fn tib() {
81 let size = (1024 * 1024 * 1024 * 1024usize) as f32;
82 let formatted = calc_bytes(size);
83
84 assert_eq!("1.00TiB", formatted.as_str());
85
86 let size = (1024 * 1024 * 1024 * 1024 * 1023usize) as f32;
87 let formatted = calc_bytes(size);
88
89 assert_eq!("1023.00TiB", formatted.as_str());
90
91 let size = (1024 * 1024 * 1024 * 1024 * 16usize) as f32;
92 let formatted = calc_bytes(size);
93
94 assert_eq!("16.00TiB", formatted.as_str());
95 }
96
97 #[test]
98 fn pib() {
99 let size = (1024 * 1024 * 1024 * 1024 * 1024usize) as f32;
100 let formatted = calc_bytes(size);
101
102 assert_eq!("1.00PiB", formatted.as_str());
103
104 let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1023usize) as f32;
105 let formatted = calc_bytes(size);
106
107 assert_eq!("1023.00PiB", formatted.as_str());
108
109 let size = (1024 * 1024 * 1024 * 1024 * 1024 * 16usize) as f32;
110 let formatted = calc_bytes(size);
111
112 assert_eq!("16.00PiB", formatted.as_str());
113 }
114
115 #[test]
116 fn eib() {
117 let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024u128) as f32;
118 let formatted = calc_bytes(size);
119
120 assert_eq!("1.00EiB", formatted.as_str());
121
122 let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1023u128) as f32;
123 let formatted = calc_bytes(size);
124
125 assert_eq!("1023.00EiB", formatted.as_str());
126
127 let size = (1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 16u128) as f32;
128 let formatted = calc_bytes(size);
129
130 assert_eq!("16.00EiB", formatted.as_str());
131 }
132}