- Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy pathTestUnitConverter.swift
305 lines (275 loc) · 20 KB
/
TestUnitConverter.swift
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
classTestUnitConverter:XCTestCase{
func test_baseUnit(){
XCTAssertEqual(UnitAcceleration.baseUnit().symbol,
UnitAcceleration.metersPerSecondSquared.symbol)
XCTAssertEqual(UnitAngle.baseUnit().symbol,
UnitAngle.degrees.symbol)
XCTAssertEqual(UnitArea.baseUnit().symbol,
UnitArea.squareMeters.symbol)
XCTAssertEqual(UnitConcentrationMass.baseUnit().symbol,
UnitConcentrationMass.gramsPerLiter.symbol)
XCTAssertEqual(UnitDispersion.baseUnit().symbol,
UnitDispersion.partsPerMillion.symbol)
XCTAssertEqual(UnitDuration.baseUnit().symbol,
UnitDuration.seconds.symbol)
XCTAssertEqual(UnitElectricCharge.baseUnit().symbol,
UnitElectricCharge.coulombs.symbol)
XCTAssertEqual(UnitElectricCurrent.baseUnit().symbol,
UnitElectricCurrent.amperes.symbol)
XCTAssertEqual(UnitElectricPotentialDifference.baseUnit().symbol,
UnitElectricPotentialDifference.volts.symbol)
XCTAssertEqual(UnitElectricResistance.baseUnit().symbol,
UnitElectricResistance.ohms.symbol)
XCTAssertEqual(UnitEnergy.baseUnit().symbol,
UnitEnergy.joules.symbol)
XCTAssertEqual(UnitFrequency.baseUnit().symbol,
UnitFrequency.hertz.symbol)
XCTAssertEqual(UnitFuelEfficiency.baseUnit().symbol,
UnitFuelEfficiency.litersPer100Kilometers.symbol)
XCTAssertEqual(UnitLength.baseUnit().symbol,
UnitLength.meters.symbol)
XCTAssertEqual(UnitIlluminance.baseUnit().symbol,
UnitIlluminance.lux.symbol)
XCTAssertEqual(UnitMass.baseUnit().symbol,
UnitMass.kilograms.symbol)
XCTAssertEqual(UnitPower.baseUnit().symbol,
UnitPower.watts.symbol)
XCTAssertEqual(UnitPressure.baseUnit().symbol,
UnitPressure.newtonsPerMetersSquared.symbol)
XCTAssertEqual(UnitSpeed.baseUnit().symbol,
UnitSpeed.metersPerSecond.symbol)
XCTAssertEqual(UnitTemperature.baseUnit().symbol,
UnitTemperature.kelvin.symbol)
XCTAssertEqual(UnitVolume.baseUnit().symbol,
UnitVolume.liters.symbol)
}
func test_linearity(){
letcoefficient=7.0
letbaseUnitConverter=UnitConverterLinear(coefficient: coefficient)
XCTAssertEqual(baseUnitConverter.value(fromBaseUnitValue: coefficient),1.0)
XCTAssertEqual(baseUnitConverter.baseUnitValue(fromValue:1), coefficient)
}
func test_bijectivity(){
letdelta=1e-9
lettestIdentity:(Dimension)->Double={ dimension in
letconverter= dimension.converter
return converter.value(fromBaseUnitValue: converter.baseUnitValue(fromValue:1))
}
XCTAssertEqual(testIdentity(UnitAcceleration.metersPerSecondSquared),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitAcceleration.gravity),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitAngle.degrees),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitAngle.arcMinutes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitAngle.arcSeconds),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitAngle.radians),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitAngle.gradians),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitAngle.revolutions),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareMegameters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareKilometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareMeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareCentimeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareMillimeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareMicrometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareNanometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareInches),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareFeet),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareYards),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.squareMiles),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.acres),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.ares),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitArea.hectares),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitConcentrationMass.gramsPerLiter),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitConcentrationMass.milligramsPerDeciliter),1, accuracy: delta)
XCTAssertEqual(
testIdentity(UnitConcentrationMass.millimolesPerLiter(withGramsPerMole:1)),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitDispersion.partsPerMillion),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitDuration.seconds),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitDuration.minutes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitDuration.hours),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCharge.coulombs),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCharge.megaampereHours),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCharge.kiloampereHours),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCharge.ampereHours),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCharge.milliampereHours),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCharge.microampereHours),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCurrent.megaamperes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCurrent.kiloamperes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCurrent.amperes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCurrent.milliamperes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricCurrent.microamperes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricPotentialDifference.megavolts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricPotentialDifference.kilovolts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricPotentialDifference.volts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricPotentialDifference.millivolts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricPotentialDifference.microvolts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricResistance.megaohms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricResistance.kiloohms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricResistance.ohms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricResistance.milliohms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitElectricResistance.microohms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitEnergy.kilojoules),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitEnergy.joules),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitEnergy.kilocalories),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitEnergy.calories),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitEnergy.kilowattHours),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFrequency.terahertz),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFrequency.gigahertz),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFrequency.megahertz),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFrequency.kilohertz),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFrequency.hertz),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFrequency.millihertz),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFrequency.microhertz),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFrequency.nanohertz),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFuelEfficiency.litersPer100Kilometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFuelEfficiency.milesPerImperialGallon),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitFuelEfficiency.milesPerGallon),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.bytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.bits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.nibbles),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.yottabytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.zettabytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.exabytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.petabytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.terabytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.gigabytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.megabytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.kilobytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.yottabits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.zettabits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.exabits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.petabits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.terabits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.gigabits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.megabits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.kilobits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.yobibytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.zebibytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.exbibytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.pebibytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.tebibytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.gibibytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.mebibytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.kibibytes),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.yobibits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.zebibits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.exbibits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.pebibits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.tebibits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.gibibits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.mebibits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitInformationStorage.kibibits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.megameters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.kilometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.hectometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.decameters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.meters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.decimeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.centimeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.millimeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.micrometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.nanometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.picometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.inches),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.feet),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.yards),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.miles),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.scandinavianMiles),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.nauticalMiles),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.fathoms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.furlongs),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.astronomicalUnits),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitLength.parsecs),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitIlluminance.lux),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.kilograms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.grams),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.decigrams),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.milligrams),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.nanograms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.picograms),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.ounces),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.pounds),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.stones),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.metricTons),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.carats),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.ouncesTroy),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitMass.slugs),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.terawatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.gigawatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.megawatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.kilowatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.watts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.milliwatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.microwatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.nanowatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.picowatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.femtowatts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPower.horsepower),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.newtonsPerMetersSquared),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.gigapascals),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.megapascals),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.kilopascals),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.hectopascals),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.inchesOfMercury),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.bars),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.millibars),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.millimetersOfMercury),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitPressure.poundsForcePerSquareInch),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitSpeed.metersPerSecond),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitSpeed.kilometersPerHour),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitSpeed.milesPerHour),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitSpeed.knots),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitTemperature.kelvin),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitTemperature.celsius),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitTemperature.fahrenheit),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.megaliters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.kiloliters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.liters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.deciliters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.milliliters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicKilometers),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicMeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicDecimeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicCentimeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicMillimeters),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicInches),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicFeet),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicYards),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cubicMiles),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.acreFeet),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.bushels),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.teaspoons),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.tablespoons),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.fluidOunces),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.cups),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.pints),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.quarts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.gallons),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.imperialTeaspoons),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.imperialTablespoons),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.imperialFluidOunces),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.imperialPints),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.imperialQuarts),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.imperialGallons),1, accuracy: delta)
XCTAssertEqual(testIdentity(UnitVolume.metricCups),1, accuracy: delta)
}
func test_equality(){
letu1=UnitConverterLinear(coefficient:1, constant:2)
letu2=UnitConverterLinear(coefficient:1, constant:2)
XCTAssertEqual(u1, u2)
XCTAssertEqual(u2, u1)
letu3=UnitConverterLinear(coefficient:1, constant:3)
XCTAssertNotEqual(u1, u3)
XCTAssertNotEqual(u3, u1)
letu4=UnitConverterLinear(coefficient:2, constant:2)
XCTAssertNotEqual(u1, u4)
XCTAssertNotEqual(u4, u1)
// Cannot test NSUnitConverterReciprocal due to no support for @testable import.
}
}