|
1 | 1 | use length::*;
|
2 |
| -use length::consts::*; |
3 | 2 | use super::{assert_almost_eq};
|
4 | 3 |
|
5 | 4 | // Metric
|
6 | 5 | #[test]
|
7 | 6 | fn nanometers() {
|
8 |
| - // Basic tests |
9 |
| - assert_almost_eq(Length::from_meters(1.0).as_nanometers(), METER_NANOMETER_FACTOR); |
10 |
| - assert_almost_eq(Length::from_nanometers(METER_NANOMETER_FACTOR).as_meters(), 1.0); |
| 7 | + let i1 = Length::from_meters(100.0); |
| 8 | + let r1 = i1.as_nanometers(); |
11 | 9 |
|
12 |
| - // Floating-point precision tests |
13 |
| - assert_almost_eq(Length::from_nanometers(1.0).as_nanometers(), Length::from_nanometers(1.0).as_nanometers()); |
14 |
| - assert_almost_eq(Length::from_nanometers(0.00025).as_nanometers(), Length::from_nanometers(0.00025).as_nanometers()); |
| 10 | + let i2 = Length::from_nanometers(100.0); |
| 11 | + let r2 = i2.as_meters(); |
| 12 | + |
| 13 | + assert_almost_eq(r1, 100000000000.0); |
| 14 | + assert_almost_eq(r2, 1.0E-7); |
15 | 15 | }
|
16 | 16 |
|
17 | 17 | #[test]
|
18 | 18 | fn micrometers() {
|
19 |
| - assert_almost_eq(Length::from_meters(1.0).as_micrometers(), METER_MICROMETER_FACTOR); |
20 |
| - assert_almost_eq(Length::from_micrometers(METER_MICROMETER_FACTOR).as_meters(), 1.0); |
| 19 | + let i1 = Length::from_meters(100.0); |
| 20 | + let r1 = i1.as_micrometers(); |
| 21 | + |
| 22 | + let i2 = Length::from_micrometers(100.0); |
| 23 | + let r2 = i2.as_meters(); |
| 24 | + |
| 25 | + assert_almost_eq(r1, 100000000.0); |
| 26 | + assert_almost_eq(r2, 0.0001); |
21 | 27 | }
|
22 | 28 |
|
23 | 29 | #[test]
|
24 | 30 | fn millimeters() {
|
25 |
| - assert_almost_eq(Length::from_meters(1.0).as_millimeters(), METER_MILLIMETER_FACTOR); |
26 |
| - assert_almost_eq(Length::from_millimeters(METER_MILLIMETER_FACTOR).as_meters(), 1.0); |
| 31 | + let i1 = Length::from_meters(100.0); |
| 32 | + let r1 = i1.as_millimeters(); |
| 33 | + |
| 34 | + let i2 = Length::from_millimeters(100.0); |
| 35 | + let r2 = i2.as_meters(); |
| 36 | + |
| 37 | + assert_almost_eq(r1, 100000.0); |
| 38 | + assert_almost_eq(r2, 0.1); |
27 | 39 | }
|
28 | 40 |
|
29 | 41 | #[test]
|
30 | 42 | fn centimeters() {
|
31 |
| - assert_almost_eq(Length::from_meters(1.0).as_centimeters(), METER_CENTIMETER_FACTOR); |
32 |
| - assert_almost_eq(Length::from_centimeters(METER_CENTIMETER_FACTOR).as_meters(), 1.0); |
| 43 | + let i1 = Length::from_meters(100.0); |
| 44 | + let r1 = i1.as_centimeters(); |
| 45 | + |
| 46 | + let i2 = Length::from_centimeters(100.0); |
| 47 | + let r2 = i2.as_meters(); |
| 48 | + |
| 49 | + assert_almost_eq(r1, 10000.0); |
| 50 | + assert_almost_eq(r2, 1.0); |
33 | 51 | }
|
34 | 52 |
|
35 | 53 | #[test]
|
36 | 54 | fn decameter() {
|
37 |
| - assert_almost_eq(Length::from_meters(1.0).as_decameters(), METER_DECAMETER_FACTOR); |
38 |
| - assert_almost_eq(Length::from_decameters(METER_DECAMETER_FACTOR).as_meters(), 1.0); |
| 55 | + let i1 = Length::from_meters(100.0); |
| 56 | + let r1 = i1.as_decameters(); |
| 57 | + |
| 58 | + let i2 = Length::from_decameters(100.0); |
| 59 | + let r2 = i2.as_meters(); |
| 60 | + |
| 61 | + assert_almost_eq(r1, 10.0); |
| 62 | + assert_almost_eq(r2, 1000.0); |
39 | 63 | }
|
40 | 64 |
|
41 | 65 | #[test]
|
42 | 66 | fn hectometer() {
|
43 |
| - assert_almost_eq(Length::from_meters(1.0).as_hectometer(), METER_HECTOMETER_FACTOR); |
44 |
| - assert_almost_eq(Length::from_hectometers(METER_HECTOMETER_FACTOR).as_meters(), 1.0); |
| 67 | + let i1 = Length::from_meters(100.0); |
| 68 | + let r1 = i1.as_hectometer(); |
| 69 | + |
| 70 | + let i2 = Length::from_hectometers(100.0); |
| 71 | + let r2 = i2.as_meters(); |
| 72 | + |
| 73 | + assert_almost_eq(r1, 1.0); |
| 74 | + assert_almost_eq(r2, 10000.0); |
45 | 75 | }
|
46 | 76 |
|
47 | 77 | #[test]
|
48 | 78 | fn kilometer() {
|
49 |
| - assert_almost_eq(Length::from_meters(1.0).as_kilometers(), METER_KILOMETER_FACTOR); |
50 |
| - assert_almost_eq(Length::from_kilometers(METER_KILOMETER_FACTOR).as_meters(), 1.0); |
| 79 | + let i1 = Length::from_meters(100.0); |
| 80 | + let r1 = i1.as_kilometers(); |
| 81 | + |
| 82 | + let i2 = Length::from_kilometers(100.0); |
| 83 | + let r2 = i2.as_meters(); |
| 84 | + |
| 85 | + assert_almost_eq(r1, 0.1); |
| 86 | + assert_almost_eq(r2, 100000.0); |
51 | 87 | }
|
52 | 88 |
|
53 | 89 | // Imperial
|
54 | 90 | #[test]
|
55 | 91 | fn inches() {
|
56 |
| - assert_almost_eq(Length::from_meters(1.0).as_inches(), METER_INCH_FACTOR); |
57 |
| - assert_almost_eq(Length::from_inches(METER_INCH_FACTOR).as_meters(), 1.0); |
| 92 | + let i1 = Length::from_meters(100.0); |
| 93 | + let r1 = i1.as_inches(); |
| 94 | + |
| 95 | + let i2 = Length::from_inches(100.0); |
| 96 | + let r2 = i2.as_meters(); |
| 97 | + |
| 98 | + assert_almost_eq(r1, 3937.00787402); |
| 99 | + assert_almost_eq(r2, 2.54); |
58 | 100 | }
|
59 | 101 |
|
60 | 102 | #[test]
|
61 | 103 | fn feet() {
|
62 |
| - assert_almost_eq(Length::from_meters(1.0).as_feet(), METER_FEET_FACTOR); |
63 |
| - assert_almost_eq(Length::from_feet(METER_FEET_FACTOR).as_meters(), 1.0); |
| 104 | + let i1 = Length::from_meters(100.0); |
| 105 | + let r1 = i1.as_feet(); |
| 106 | + |
| 107 | + let i2 = Length::from_feet(100.0); |
| 108 | + let r2 = i2.as_meters(); |
| 109 | + |
| 110 | + assert_almost_eq(r1, 328.083989501); |
| 111 | + assert_almost_eq(r2, 30.48); |
64 | 112 | }
|
65 | 113 |
|
66 | 114 | #[test]
|
67 | 115 | fn yards() {
|
68 |
| - assert_almost_eq(Length::from_meters(1.0).as_yards(), METER_YARD_FACTOR); |
69 |
| - assert_almost_eq(Length::from_yards(METER_YARD_FACTOR).as_meters(), 1.0); |
| 116 | + let i1 = Length::from_meters(100.0); |
| 117 | + let r1 = i1.as_yards(); |
| 118 | + |
| 119 | + let i2 = Length::from_yards(100.0); |
| 120 | + let r2 = i2.as_meters(); |
| 121 | + |
| 122 | + assert_almost_eq(r1, 109.361329834); |
| 123 | + assert_almost_eq(r2, 91.44); |
70 | 124 | }
|
71 | 125 |
|
72 | 126 | #[test]
|
73 | 127 | fn furlongs() {
|
74 |
| - assert_almost_eq(Length::from_meters(1.0).as_furlongs(), METER_FURLONG_FACTOR); |
75 |
| - assert_almost_eq(Length::from_furlongs(METER_FURLONG_FACTOR).as_meters(), 1.0); |
| 128 | + let i1 = Length::from_meters(100.0); |
| 129 | + let r1 = i1.as_furlongs(); |
| 130 | + |
| 131 | + let i2 = Length::from_furlongs(100.0); |
| 132 | + let r2 = i2.as_meters(); |
| 133 | + |
| 134 | + assert_almost_eq(r1, 0.49709695379); |
| 135 | + assert_almost_eq(r2, 20116.8); |
76 | 136 | }
|
77 | 137 |
|
78 | 138 | #[test]
|
79 | 139 | fn miles() {
|
80 |
| - assert_almost_eq(Length::from_meters(1.0).as_miles(), METER_MILE_FACTOR); |
81 |
| - assert_almost_eq(Length::from_miles(METER_MILE_FACTOR).as_meters(), 1.0); |
| 140 | + let i1 = Length::from_meters(100.0); |
| 141 | + let r1 = i1.as_miles(); |
| 142 | + |
| 143 | + let i2 = Length::from_miles(100.0); |
| 144 | + let r2 = i2.as_meters(); |
| 145 | + |
| 146 | + assert_almost_eq(r1, 0.0621371192237); |
| 147 | + assert_almost_eq(r2, 160934.4); |
82 | 148 | }
|
83 | 149 |
|
84 | 150 | // Traits
|
|
0 commit comments