-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.rs
166 lines (158 loc) · 6.57 KB
/
test.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#[cfg(test)]
mod tests
{
use si_unit_prefix::SiUnitPrefix;
#[test]
fn parse()
{
assert_eq!(SiUnitPrefix::parse_from_str("Q"), Some(SiUnitPrefix::Q));
assert_eq!(SiUnitPrefix::parse_from_str("R"), Some(SiUnitPrefix::R));
assert_eq!(SiUnitPrefix::parse_from_str("Y"), Some(SiUnitPrefix::Y));
assert_eq!(SiUnitPrefix::parse_from_str("Z"), Some(SiUnitPrefix::Z));
assert_eq!(SiUnitPrefix::parse_from_str("E"), Some(SiUnitPrefix::E));
assert_eq!(SiUnitPrefix::parse_from_str("P"), Some(SiUnitPrefix::P));
assert_eq!(SiUnitPrefix::parse_from_str("T"), Some(SiUnitPrefix::T));
assert_eq!(SiUnitPrefix::parse_from_str("G"), Some(SiUnitPrefix::G));
assert_eq!(SiUnitPrefix::parse_from_str("㌐"), Some(SiUnitPrefix::G));
assert_eq!(SiUnitPrefix::parse_from_str("M"), Some(SiUnitPrefix::M));
assert_eq!(SiUnitPrefix::parse_from_str("㍋"), Some(SiUnitPrefix::M));
assert_eq!(SiUnitPrefix::parse_from_str("k"), Some(SiUnitPrefix::k));
assert_eq!(SiUnitPrefix::parse_from_str("㌔"), Some(SiUnitPrefix::k));
assert_eq!(SiUnitPrefix::parse_from_str("h"), Some(SiUnitPrefix::h));
assert_eq!(SiUnitPrefix::parse_from_str("da"), Some(SiUnitPrefix::da));
assert_eq!(SiUnitPrefix::parse_from_str(""), None);
assert_eq!(SiUnitPrefix::parse_from_str("d"), Some(SiUnitPrefix::d));
assert_eq!(SiUnitPrefix::parse_from_str("㌥"), Some(SiUnitPrefix::d));
assert_eq!(SiUnitPrefix::parse_from_str("c"), Some(SiUnitPrefix::c));
assert_eq!(SiUnitPrefix::parse_from_str("㌢"), Some(SiUnitPrefix::c));
assert_eq!(SiUnitPrefix::parse_from_str("m"), Some(SiUnitPrefix::m));
assert_eq!(SiUnitPrefix::parse_from_str("㍉"), Some(SiUnitPrefix::m));
assert_eq!(SiUnitPrefix::parse_from_str("u"), Some(SiUnitPrefix::u));
assert_eq!(SiUnitPrefix::parse_from_str("μ"), Some(SiUnitPrefix::u));
assert_eq!(SiUnitPrefix::parse_from_str("㍃"), Some(SiUnitPrefix::u));
assert_eq!(SiUnitPrefix::parse_from_str("n"), Some(SiUnitPrefix::n));
assert_eq!(SiUnitPrefix::parse_from_str("㌨"), Some(SiUnitPrefix::n));
assert_eq!(SiUnitPrefix::parse_from_str("p"), Some(SiUnitPrefix::p));
assert_eq!(SiUnitPrefix::parse_from_str("㌰"), Some(SiUnitPrefix::p));
assert_eq!(SiUnitPrefix::parse_from_str("f"), Some(SiUnitPrefix::f));
assert_eq!(SiUnitPrefix::parse_from_str("a"), Some(SiUnitPrefix::a));
assert_eq!(SiUnitPrefix::parse_from_str("z"), Some(SiUnitPrefix::z));
assert_eq!(SiUnitPrefix::parse_from_str("y"), Some(SiUnitPrefix::y));
assert_eq!(SiUnitPrefix::parse_from_str("r"), Some(SiUnitPrefix::r));
assert_eq!(SiUnitPrefix::parse_from_str("q"), Some(SiUnitPrefix::q));
}
#[test]
fn f64()
{
assert_eq!(SiUnitPrefix::Q.as_f64(), 1e+30f64);
assert_eq!(SiUnitPrefix::R.as_f64(), 1e+27f64);
assert_eq!(SiUnitPrefix::Y.as_f64(), 1e+24f64);
assert_eq!(SiUnitPrefix::Z.as_f64(), 1e+21f64);
assert_eq!(SiUnitPrefix::E.as_f64(), 1e+18f64);
assert_eq!(SiUnitPrefix::P.as_f64(), 1e+15f64);
assert_eq!(SiUnitPrefix::T.as_f64(), 1e+12f64);
assert_eq!(SiUnitPrefix::G.as_f64(), 1e+9f64);
assert_eq!(SiUnitPrefix::M.as_f64(), 1e+6f64);
assert_eq!(SiUnitPrefix::k.as_f64(), 1e+3f64);
assert_eq!(SiUnitPrefix::h.as_f64(), 1e+2f64);
assert_eq!(SiUnitPrefix::da.as_f64(), 1e+1f64);
assert_eq!(SiUnitPrefix::d.as_f64(), 1e-1f64);
assert_eq!(SiUnitPrefix::c.as_f64(), 1e-2f64);
assert_eq!(SiUnitPrefix::m.as_f64(), 1e-3f64);
assert_eq!(SiUnitPrefix::u.as_f64(), 1e-6f64);
assert_eq!(SiUnitPrefix::n.as_f64(), 1e-9f64);
assert_eq!(SiUnitPrefix::p.as_f64(), 1e-12f64);
assert_eq!(SiUnitPrefix::f.as_f64(), 1e-15f64);
assert_eq!(SiUnitPrefix::a.as_f64(), 1e-18f64);
assert_eq!(SiUnitPrefix::z.as_f64(), 1e-21f64);
assert_eq!(SiUnitPrefix::y.as_f64(), 1e-24f64);
assert_eq!(SiUnitPrefix::r.as_f64(), 1e-27f64);
assert_eq!(SiUnitPrefix::q.as_f64(), 1e-30f64);
}
#[test]
fn f32()
{
assert_eq!(SiUnitPrefix::Q.as_f32(), 1e+30f32);
assert_eq!(SiUnitPrefix::R.as_f32(), 1e+27f32);
assert_eq!(SiUnitPrefix::Y.as_f32(), 1e+24f32);
assert_eq!(SiUnitPrefix::Z.as_f32(), 1e+21f32);
assert_eq!(SiUnitPrefix::E.as_f32(), 1e+18f32);
assert_eq!(SiUnitPrefix::P.as_f32(), 1e+15f32);
assert_eq!(SiUnitPrefix::T.as_f32(), 1e+12f32);
assert_eq!(SiUnitPrefix::G.as_f32(), 1e+9f32);
assert_eq!(SiUnitPrefix::M.as_f32(), 1e+6f32);
assert_eq!(SiUnitPrefix::k.as_f32(), 1e+3f32);
assert_eq!(SiUnitPrefix::h.as_f32(), 1e+2f32);
assert_eq!(SiUnitPrefix::da.as_f32(), 1e+1f32);
assert_eq!(SiUnitPrefix::d.as_f32(), 1e-1f32);
assert_eq!(SiUnitPrefix::c.as_f32(), 1e-2f32);
assert_eq!(SiUnitPrefix::m.as_f32(), 1e-3f32);
assert_eq!(SiUnitPrefix::u.as_f32(), 1e-6f32);
assert_eq!(SiUnitPrefix::n.as_f32(), 1e-9f32);
assert_eq!(SiUnitPrefix::p.as_f32(), 1e-12f32);
assert_eq!(SiUnitPrefix::f.as_f32(), 1e-15f32);
assert_eq!(SiUnitPrefix::a.as_f32(), 1e-18f32);
assert_eq!(SiUnitPrefix::z.as_f32(), 1e-21f32);
assert_eq!(SiUnitPrefix::y.as_f32(), 1e-24f32);
assert_eq!(SiUnitPrefix::r.as_f32(), 1e-27f32);
assert_eq!(SiUnitPrefix::q.as_f32(), 1e-30f32);
}
#[test]
fn exp()
{
assert_eq!(SiUnitPrefix::Q.as_exp(), 30);
assert_eq!(SiUnitPrefix::R.as_exp(), 27);
assert_eq!(SiUnitPrefix::Y.as_exp(), 24);
assert_eq!(SiUnitPrefix::Z.as_exp(), 21);
assert_eq!(SiUnitPrefix::E.as_exp(), 18);
assert_eq!(SiUnitPrefix::P.as_exp(), 15);
assert_eq!(SiUnitPrefix::T.as_exp(), 12);
assert_eq!(SiUnitPrefix::G.as_exp(), 9);
assert_eq!(SiUnitPrefix::M.as_exp(), 6);
assert_eq!(SiUnitPrefix::k.as_exp(), 3);
assert_eq!(SiUnitPrefix::h.as_exp(), 2);
assert_eq!(SiUnitPrefix::da.as_exp(), 1);
assert_eq!(SiUnitPrefix::d.as_exp(), -1);
assert_eq!(SiUnitPrefix::c.as_exp(), -2);
assert_eq!(SiUnitPrefix::m.as_exp(), -3);
assert_eq!(SiUnitPrefix::u.as_exp(), -6);
assert_eq!(SiUnitPrefix::n.as_exp(), -9);
assert_eq!(SiUnitPrefix::p.as_exp(), -12);
assert_eq!(SiUnitPrefix::f.as_exp(), -15);
assert_eq!(SiUnitPrefix::a.as_exp(), -18);
assert_eq!(SiUnitPrefix::z.as_exp(), -21);
assert_eq!(SiUnitPrefix::y.as_exp(), -24);
assert_eq!(SiUnitPrefix::r.as_exp(), -27);
assert_eq!(SiUnitPrefix::q.as_exp(), -30);
}
#[test]
fn ord()
{
assert!(SiUnitPrefix::T > SiUnitPrefix::G);
assert!(SiUnitPrefix::m > SiUnitPrefix::u);
}
#[test]
fn clone()
{
let mut pre0 = SiUnitPrefix::G;
let pre1 = pre0.clone();
pre0 = SiUnitPrefix::M;
assert_ne!(pre0, pre1)
}
#[test]
fn copy()
{
let mut pre0 = SiUnitPrefix::G;
let pre1 = pre0;
pre0 = SiUnitPrefix::M;
assert_ne!(pre0, pre1)
}
#[test]
fn serde()
{
let pre = SiUnitPrefix::G;
let serialized = serde_json::to_string(&pre).unwrap();
let deserialized = serde_json::from_str(&serialized).unwrap();
assert_eq!(pre, deserialized)
}
}