1 package org.djutils.cli;
2
3 import static org.junit.Assert.assertEquals;
4
5 import org.djunits.unit.AbsoluteTemperatureUnit;
6 import org.djunits.unit.AbsorbedDoseUnit;
7 import org.djunits.unit.AccelerationUnit;
8 import org.djunits.unit.AmountOfSubstanceUnit;
9 import org.djunits.unit.AngleUnit;
10 import org.djunits.unit.AngularAccelerationUnit;
11 import org.djunits.unit.AngularVelocityUnit;
12 import org.djunits.unit.AreaUnit;
13 import org.djunits.unit.CatalyticActivityUnit;
14 import org.djunits.unit.DensityUnit;
15 import org.djunits.unit.DimensionlessUnit;
16 import org.djunits.unit.DirectionUnit;
17 import org.djunits.unit.DurationUnit;
18 import org.djunits.unit.ElectricalCapacitanceUnit;
19 import org.djunits.unit.ElectricalChargeUnit;
20 import org.djunits.unit.ElectricalConductanceUnit;
21 import org.djunits.unit.ElectricalCurrentUnit;
22 import org.djunits.unit.ElectricalInductanceUnit;
23 import org.djunits.unit.ElectricalPotentialUnit;
24 import org.djunits.unit.ElectricalResistanceUnit;
25 import org.djunits.unit.EnergyUnit;
26 import org.djunits.unit.EquivalentDoseUnit;
27 import org.djunits.unit.FlowMassUnit;
28 import org.djunits.unit.FlowVolumeUnit;
29 import org.djunits.unit.ForceUnit;
30 import org.djunits.unit.FrequencyUnit;
31 import org.djunits.unit.IlluminanceUnit;
32 import org.djunits.unit.LengthUnit;
33 import org.djunits.unit.LinearDensityUnit;
34 import org.djunits.unit.LuminousFluxUnit;
35 import org.djunits.unit.LuminousIntensityUnit;
36 import org.djunits.unit.MagneticFluxDensityUnit;
37 import org.djunits.unit.MagneticFluxUnit;
38 import org.djunits.unit.MassUnit;
39 import org.djunits.unit.MomentumUnit;
40 import org.djunits.unit.PositionUnit;
41 import org.djunits.unit.PowerUnit;
42 import org.djunits.unit.PressureUnit;
43 import org.djunits.unit.RadioActivityUnit;
44 import org.djunits.unit.SolidAngleUnit;
45 import org.djunits.unit.SpeedUnit;
46 import org.djunits.unit.TemperatureUnit;
47 import org.djunits.unit.TimeUnit;
48 import org.djunits.unit.TorqueUnit;
49 import org.djunits.unit.VolumeUnit;
50 import org.djunits.value.vdouble.scalar.AbsoluteTemperature;
51 import org.djunits.value.vdouble.scalar.AbsorbedDose;
52 import org.djunits.value.vdouble.scalar.Acceleration;
53 import org.djunits.value.vdouble.scalar.AmountOfSubstance;
54 import org.djunits.value.vdouble.scalar.Angle;
55 import org.djunits.value.vdouble.scalar.AngularAcceleration;
56 import org.djunits.value.vdouble.scalar.AngularVelocity;
57 import org.djunits.value.vdouble.scalar.Area;
58 import org.djunits.value.vdouble.scalar.CatalyticActivity;
59 import org.djunits.value.vdouble.scalar.Density;
60 import org.djunits.value.vdouble.scalar.Dimensionless;
61 import org.djunits.value.vdouble.scalar.Direction;
62 import org.djunits.value.vdouble.scalar.Duration;
63 import org.djunits.value.vdouble.scalar.ElectricalCapacitance;
64 import org.djunits.value.vdouble.scalar.ElectricalCharge;
65 import org.djunits.value.vdouble.scalar.ElectricalConductance;
66 import org.djunits.value.vdouble.scalar.ElectricalCurrent;
67 import org.djunits.value.vdouble.scalar.ElectricalInductance;
68 import org.djunits.value.vdouble.scalar.ElectricalPotential;
69 import org.djunits.value.vdouble.scalar.ElectricalResistance;
70 import org.djunits.value.vdouble.scalar.Energy;
71 import org.djunits.value.vdouble.scalar.EquivalentDose;
72 import org.djunits.value.vdouble.scalar.FlowMass;
73 import org.djunits.value.vdouble.scalar.FlowVolume;
74 import org.djunits.value.vdouble.scalar.Force;
75 import org.djunits.value.vdouble.scalar.Frequency;
76 import org.djunits.value.vdouble.scalar.Illuminance;
77 import org.djunits.value.vdouble.scalar.Length;
78 import org.djunits.value.vdouble.scalar.LinearDensity;
79 import org.djunits.value.vdouble.scalar.LuminousFlux;
80 import org.djunits.value.vdouble.scalar.LuminousIntensity;
81 import org.djunits.value.vdouble.scalar.MagneticFlux;
82 import org.djunits.value.vdouble.scalar.MagneticFluxDensity;
83 import org.djunits.value.vdouble.scalar.Mass;
84 import org.djunits.value.vdouble.scalar.Momentum;
85 import org.djunits.value.vdouble.scalar.Position;
86 import org.djunits.value.vdouble.scalar.Power;
87 import org.djunits.value.vdouble.scalar.Pressure;
88 import org.djunits.value.vdouble.scalar.RadioActivity;
89 import org.djunits.value.vdouble.scalar.SolidAngle;
90 import org.djunits.value.vdouble.scalar.Speed;
91 import org.djunits.value.vdouble.scalar.Temperature;
92 import org.djunits.value.vdouble.scalar.Time;
93 import org.djunits.value.vdouble.scalar.Torque;
94 import org.djunits.value.vdouble.scalar.Volume;
95 import org.junit.Test;
96
97 import picocli.CommandLine.Command;
98 import picocli.CommandLine.Option;
99
100
101
102
103
104
105
106
107
108 @SuppressWarnings("checkstyle:visibilitymodifier")
109 public class TestCLIUnitConverters
110 {
111
112 @Command(description = "Test program for CLI", name = "Program", mixinStandardHelpOptions = true, version = "1.0")
113 public static class Options
114 {
115
116 @Option(names = {"--absolutetemperature"}, description = "AbsoluteTemperature", defaultValue = "200.0K")
117 protected AbsoluteTemperature absolutetemperature;
118
119
120 @Option(names = {"--absorbeddose"}, description = "AbsorbedDose", defaultValue = "200Gy")
121 protected AbsorbedDose absorbeddose;
122
123
124 @Option(names = {"--acceleration"}, description = "Acceleration", defaultValue = "2.0m/s^2")
125 protected Acceleration acceleration;
126
127
128 @Option(names = {"--amountofsubstance"}, description = "AmountOfSubstance", defaultValue = "200.0mol")
129 protected AmountOfSubstance amountofsubstance;
130
131
132 @Option(names = {"--angle"}, description = "Angle", defaultValue = "2.0rad")
133 protected Angle angle;
134
135
136 @Option(names = {"--angularacceleration"}, description = "AngularAcceleration", defaultValue = "2.0rad/s2")
137 protected AngularAcceleration angularacceleration;
138
139
140 @Option(names = {"--angularvelocity"}, description = "AngularVelocity", defaultValue = "2.0rad/s")
141 protected AngularVelocity angularvelocity;
142
143
144 @Option(names = {"--area"}, description = "Area", defaultValue = "2.0m^2")
145 protected Area area;
146
147
148 @Option(names = {"--catalyticactivity"}, description = "CatalyticActivity", defaultValue = "2.0kat")
149 protected CatalyticActivity catalyticactivity;
150
151
152 @Option(names = {"--density"}, description = "Density", defaultValue = "2.0kg/m^3")
153 protected Density density;
154
155
156 @Option(names = {"--dimensionless"}, description = "Dimensionless", defaultValue = "2.0")
157 protected Dimensionless dimensionless;
158
159
160 @Option(names = {"--direction"}, description = "Direction", defaultValue = "2.0rad(E)")
161 protected Direction direction;
162
163
164 @Option(names = {"--duration"}, description = "Duration", defaultValue = "2.0s")
165 protected Duration duration;
166
167
168 @Option(names = {"--electricalcapacitance"}, description = "ElectricalCapacitance", defaultValue = "2.0F")
169 protected ElectricalCapacitance electricalcapacitance;
170
171
172 @Option(names = {"--electricalcharge"}, description = "ElectricalCharge", defaultValue = "2.0C")
173 protected ElectricalCharge electricalcharge;
174
175
176 @Option(names = {"--electricalconductance"}, description = "ElectricalConductance", defaultValue = "2.0S")
177 protected ElectricalConductance electricalconductance;
178
179
180 @Option(names = {"--electricalcurrent"}, description = "ElectricalCurrent", defaultValue = "2.0A")
181 protected ElectricalCurrent electricalcurrent;
182
183
184 @Option(names = {"--electricalinductance"}, description = "ElectricalInductance", defaultValue = "2.0H")
185 protected ElectricalInductance electricalinductance;
186
187
188 @Option(names = {"--electricalpotential"}, description = "ElectricalPotential", defaultValue = "2.0V")
189 protected ElectricalPotential electricalpotential;
190
191
192 @Option(names = {"--electricalresistance"}, description = "ElectricalResistance", defaultValue = "2.0ohm")
193 protected ElectricalResistance electricalresistance;
194
195
196 @Option(names = {"--energy"}, description = "Energy", defaultValue = "2.0J")
197 protected Energy energy;
198
199
200 @Option(names = {"--equivalentdose"}, description = "EquivalentDose", defaultValue = "2.0Sv")
201 protected EquivalentDose equivalentdose;
202
203
204 @Option(names = {"--flowmass"}, description = "FlowMass", defaultValue = "2.0kg/s")
205 protected FlowMass flowmass;
206
207
208 @Option(names = {"--flowvolume"}, description = "FlowVolume", defaultValue = "2.0m^3/s")
209 protected FlowVolume flowvolume;
210
211
212 @Option(names = {"--force"}, description = "Force", defaultValue = "2.0N")
213 protected Force force;
214
215
216 @Option(names = {"--frequency"}, description = "Frequency", defaultValue = "2.0/s")
217 protected Frequency frequency;
218
219
220 @Option(names = {"--illuminance"}, description = "Illuminance", defaultValue = "2.0lx")
221 protected Illuminance illuminance;
222
223
224 @Option(names = {"--length"}, description = "Length", defaultValue = "2.0m")
225 protected Length length;
226
227
228 @Option(names = {"--lineardensity"}, description = "LinearDensity", defaultValue = "2.0/m")
229 protected LinearDensity lineardensity;
230
231
232 @Option(names = {"--luminousflux"}, description = "LuminousFlux", defaultValue = "2.0lm")
233 protected LuminousFlux luminousflux;
234
235
236 @Option(names = {"--luminousintensity"}, description = "LuminousIntensity", defaultValue = "2.0cd")
237 protected LuminousIntensity luminousintensity;
238
239
240 @Option(names = {"--magneticflux"}, description = "MagneticFlux", defaultValue = "2.0Wb")
241 protected MagneticFlux magneticflux;
242
243
244 @Option(names = {"--magneticfluxdensity"}, description = "MagneticFluxDensity", defaultValue = "2.0T")
245 protected MagneticFluxDensity magneticfluxdensity;
246
247
248 @Option(names = {"--mass"}, description = "Mass", defaultValue = "2.0kg")
249 protected Mass mass;
250
251
252 @Option(names = {"--momentum"}, description = "Momentum", defaultValue = "2.0kgm/s")
253 protected Momentum momentum;
254
255
256 @Option(names = {"--position"}, description = "Position", defaultValue = "2.0AU")
257 protected Position position;
258
259
260 @Option(names = {"--power"}, description = "Power", defaultValue = "2.0W")
261 protected Power power;
262
263
264 @Option(names = {"--pressure"}, description = "Pressure", defaultValue = "2.0Pa")
265 protected Pressure pressure;
266
267
268 @Option(names = {"--radioactivity"}, description = "RadioActivity", defaultValue = "2.0Bq")
269 protected RadioActivity radioactivity;
270
271
272 @Option(names = {"--solidangle"}, description = "SolidAngle", defaultValue = "2.0sr")
273 protected SolidAngle solidangle;
274
275
276 @Option(names = {"--speed"}, description = "Speed", defaultValue = "2.0m/s")
277 protected Speed speed;
278
279
280 @Option(names = {"--temperature"}, description = "Temperature", defaultValue = "2.0K")
281 protected Temperature temperature;
282
283
284 @Option(names = {"--time"}, description = "Time", defaultValue = "2.0h")
285 protected Time time;
286
287
288 @Option(names = {"--torque"}, description = "Torque", defaultValue = "2.0N.m")
289 protected Torque torque;
290
291
292 @Option(names = {"--volume"}, description = "Volume", defaultValue = "2.0m^3")
293 protected Volume volume;
294 }
295
296
297
298
299
300
301
302
303 @Test
304 public void testCli() throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException, CliException
305 {
306 String[] args;
307 Options options;
308
309 args = new String[] {};
310 options = new Options();
311 CliUtil.execute(options, args);
312 assertEquals(new AbsoluteTemperature(200.0, AbsoluteTemperatureUnit.KELVIN), options.absolutetemperature);
313 args = new String[] {"--absolutetemperature", "100.0C"};
314 CliUtil.execute(options, args);
315 assertEquals(new AbsoluteTemperature(100.0, AbsoluteTemperatureUnit.DEGREE_CELSIUS), options.absolutetemperature);
316
317 args = new String[] {};
318 options = new Options();
319 CliUtil.execute(options, args);
320 assertEquals(new AbsorbedDose(200.0, AbsorbedDoseUnit.GRAY), options.absorbeddose);
321 args = new String[] {"--absorbeddose", "100.0erg/g"};
322 CliUtil.execute(options, args);
323 assertEquals(new AbsorbedDose(100.0, AbsorbedDoseUnit.ERG_PER_GRAM), options.absorbeddose);
324
325 args = new String[] {};
326 options = new Options();
327 CliUtil.execute(options, args);
328 assertEquals(new Acceleration(2.0, AccelerationUnit.METER_PER_SECOND_2), options.acceleration);
329 args = new String[] {"--acceleration", "1.0km/h^2"};
330 CliUtil.execute(options, args);
331 assertEquals(new Acceleration(1.0, AccelerationUnit.KM_PER_HOUR_2), options.acceleration);
332
333 args = new String[] {};
334 options = new Options();
335 CliUtil.execute(options, args);
336 assertEquals(new AmountOfSubstance(200.0, AmountOfSubstanceUnit.MOLE), options.amountofsubstance);
337 args = new String[] {"--amountofsubstance", "10mmol"};
338 CliUtil.execute(options, args);
339 assertEquals(new AmountOfSubstance(10.0, AmountOfSubstanceUnit.MILLIMOLE), options.amountofsubstance);
340
341 args = new String[] {};
342 options = new Options();
343 CliUtil.execute(options, args);
344 assertEquals(new Angle(2.0, AngleUnit.RADIAN), options.angle);
345 args = new String[] {"--angle", "10.0deg"};
346 CliUtil.execute(options, args);
347 assertEquals(new Angle(10.0, AngleUnit.DEGREE), options.angle);
348
349 args = new String[] {};
350 options = new Options();
351 CliUtil.execute(options, args);
352 assertEquals(new AngularAcceleration(2.0, AngularAccelerationUnit.RADIAN_PER_SECOND_SQUARED),
353 options.angularacceleration);
354 args = new String[] {"--angularacceleration", "10.0c\"/sec2"};
355 CliUtil.execute(options, args);
356 assertEquals(new AngularAcceleration(10.0, AngularAccelerationUnit.CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED),
357 options.angularacceleration);
358
359 args = new String[] {};
360 options = new Options();
361 CliUtil.execute(options, args);
362 assertEquals(new AngularVelocity(2.0, AngularVelocityUnit.RADIAN_PER_SECOND), options.angularvelocity);
363 args = new String[] {"--angularvelocity", "10.0c\"/sec"};
364 CliUtil.execute(options, args);
365 assertEquals(new AngularVelocity(10.0, AngularVelocityUnit.CENTESIMAL_ARCSECOND_PER_SECOND), options.angularvelocity);
366
367 args = new String[] {};
368 options = new Options();
369 CliUtil.execute(options, args);
370 assertEquals(new Area(2.0, AreaUnit.SQUARE_METER), options.area);
371 args = new String[] {"--area", "1.0ac"};
372 CliUtil.execute(options, args);
373 assertEquals(new Area(1.0, AreaUnit.ACRE), options.area);
374
375 args = new String[] {};
376 options = new Options();
377 CliUtil.execute(options, args);
378 assertEquals(new CatalyticActivity(2.0, CatalyticActivityUnit.KATAL), options.catalyticactivity);
379 args = new String[] {"--catalyticactivity", "1.0mkat"};
380 CliUtil.execute(options, args);
381 assertEquals(new CatalyticActivity(1.0, CatalyticActivityUnit.MILLIKATAL), options.catalyticactivity);
382
383 args = new String[] {};
384 options = new Options();
385 CliUtil.execute(options, args);
386 assertEquals(new Density(2.0, DensityUnit.KG_PER_METER_3), options.density);
387 args = new String[] {"--density", "1.0g/cm^3"};
388 CliUtil.execute(options, args);
389 assertEquals(new Density(1.0, DensityUnit.GRAM_PER_CENTIMETER_3), options.density);
390
391 args = new String[] {};
392 options = new Options();
393 CliUtil.execute(options, args);
394 assertEquals(new Dimensionless(2.0, DimensionlessUnit.SI), options.dimensionless);
395 args = new String[] {"--dimensionless", "1.0"};
396 CliUtil.execute(options, args);
397 assertEquals(new Dimensionless(1.0, DimensionlessUnit.SI), options.dimensionless);
398
399 args = new String[] {};
400 options = new Options();
401 CliUtil.execute(options, args);
402 assertEquals(new Direction(2.0, DirectionUnit.EAST_RADIAN), options.direction);
403 args = new String[] {"--direction", "1.0deg(N)"};
404 CliUtil.execute(options, args);
405 assertEquals(new Direction(1.0, DirectionUnit.NORTH_DEGREE), options.direction);
406
407 args = new String[] {};
408 options = new Options();
409 CliUtil.execute(options, args);
410 assertEquals(new Duration(2.0, DurationUnit.SECOND), options.duration);
411 args = new String[] {"--duration", "1.0day"};
412 CliUtil.execute(options, args);
413 assertEquals(new Duration(1.0, DurationUnit.DAY), options.duration);
414
415 args = new String[] {};
416 options = new Options();
417 CliUtil.execute(options, args);
418 assertEquals(new ElectricalCapacitance(2.0, ElectricalCapacitanceUnit.FARAD), options.electricalcapacitance);
419 args = new String[] {"--electricalcapacitance", "1.0uF"};
420 CliUtil.execute(options, args);
421 assertEquals(new ElectricalCapacitance(1.0, ElectricalCapacitanceUnit.MICROFARAD), options.electricalcapacitance);
422
423 args = new String[] {};
424 options = new Options();
425 CliUtil.execute(options, args);
426 assertEquals(new ElectricalCharge(2.0, ElectricalChargeUnit.COULOMB), options.electricalcharge);
427 args = new String[] {"--electricalcharge", "1.0mAh"};
428 CliUtil.execute(options, args);
429 assertEquals(new ElectricalCharge(1.0, ElectricalChargeUnit.MILLIAMPERE_HOUR), options.electricalcharge);
430
431 args = new String[] {};
432 options = new Options();
433 CliUtil.execute(options, args);
434 assertEquals(new ElectricalConductance(2.0, ElectricalConductanceUnit.SIEMENS), options.electricalconductance);
435 args = new String[] {"--electricalconductance", "1.0mS"};
436 CliUtil.execute(options, args);
437 assertEquals(new ElectricalConductance(1.0, ElectricalConductanceUnit.MILLISIEMENS), options.electricalconductance);
438
439 args = new String[] {};
440 options = new Options();
441 CliUtil.execute(options, args);
442 assertEquals(new ElectricalCurrent(2.0, ElectricalCurrentUnit.AMPERE), options.electricalcurrent);
443 args = new String[] {"--electricalcurrent", "1.0statA"};
444 CliUtil.execute(options, args);
445 assertEquals(new ElectricalCurrent(1.0, ElectricalCurrentUnit.STATAMPERE), options.electricalcurrent);
446
447 args = new String[] {};
448 options = new Options();
449 CliUtil.execute(options, args);
450 assertEquals(new ElectricalInductance(2.0, ElectricalInductanceUnit.HENRY), options.electricalinductance);
451 args = new String[] {"--electricalinductance", "1.0mH"};
452 CliUtil.execute(options, args);
453 assertEquals(new ElectricalInductance(1.0, ElectricalInductanceUnit.MILLIHENRY), options.electricalinductance);
454
455 args = new String[] {};
456 options = new Options();
457 CliUtil.execute(options, args);
458 assertEquals(new ElectricalPotential(2.0, ElectricalPotentialUnit.VOLT), options.electricalpotential);
459 args = new String[] {"--electricalpotential", "1.0abV"};
460 CliUtil.execute(options, args);
461 assertEquals(new ElectricalPotential(1.0, ElectricalPotentialUnit.ABVOLT), options.electricalpotential);
462
463 args = new String[] {};
464 options = new Options();
465 CliUtil.execute(options, args);
466 assertEquals(new ElectricalResistance(2.0, ElectricalResistanceUnit.OHM), options.electricalresistance);
467 args = new String[] {"--electricalresistance", "1.0stohm"};
468 CliUtil.execute(options, args);
469 assertEquals(new ElectricalResistance(1.0, ElectricalResistanceUnit.STATOHM), options.electricalresistance);
470
471 args = new String[] {};
472 options = new Options();
473 CliUtil.execute(options, args);
474 assertEquals(new Energy(2.0, EnergyUnit.JOULE), options.energy);
475 args = new String[] {"--energy", "1.0kWh"};
476 CliUtil.execute(options, args);
477 assertEquals(new Energy(1.0, EnergyUnit.KILOWATT_HOUR), options.energy);
478
479 args = new String[] {};
480 options = new Options();
481 CliUtil.execute(options, args);
482 assertEquals(new EquivalentDose(2.0, EquivalentDoseUnit.SIEVERT), options.equivalentdose);
483 args = new String[] {"--equivalentdose", "1.0rem"};
484 CliUtil.execute(options, args);
485 assertEquals(new EquivalentDose(1.0, EquivalentDoseUnit.REM), options.equivalentdose);
486
487 args = new String[] {};
488 options = new Options();
489 CliUtil.execute(options, args);
490 assertEquals(new FlowMass(2.0, FlowMassUnit.KILOGRAM_PER_SECOND), options.flowmass);
491 args = new String[] {"--flowmass", "1.0lb/s"};
492 CliUtil.execute(options, args);
493 assertEquals(new FlowMass(1.0, FlowMassUnit.POUND_PER_SECOND), options.flowmass);
494
495 args = new String[] {};
496 options = new Options();
497 CliUtil.execute(options, args);
498 assertEquals(new FlowVolume(2.0, FlowVolumeUnit.CUBIC_METER_PER_SECOND), options.flowvolume);
499 args = new String[] {"--flowvolume", "1.0gal(US)/day"};
500 CliUtil.execute(options, args);
501 assertEquals(new FlowVolume(1.0, FlowVolumeUnit.GALLON_US_PER_DAY), options.flowvolume);
502
503 args = new String[] {};
504 options = new Options();
505 CliUtil.execute(options, args);
506 assertEquals(new Force(2.0, ForceUnit.NEWTON), options.force);
507 args = new String[] {"--force", "1.0kgf"};
508 CliUtil.execute(options, args);
509 assertEquals(new Force(1.0, ForceUnit.KILOGRAM_FORCE), options.force);
510
511 args = new String[] {};
512 options = new Options();
513 CliUtil.execute(options, args);
514 assertEquals(new Frequency(2.0, FrequencyUnit.PER_SECOND), options.frequency);
515 args = new String[] {"--frequency", "1.0kHz"};
516 CliUtil.execute(options, args);
517 assertEquals(new Frequency(1.0, FrequencyUnit.KILOHERTZ), options.frequency);
518
519 args = new String[] {};
520 options = new Options();
521 CliUtil.execute(options, args);
522 assertEquals(new Illuminance(2.0, IlluminanceUnit.LUX), options.illuminance);
523 args = new String[] {"--illuminance", "1.0nx"};
524 CliUtil.execute(options, args);
525 assertEquals(new Illuminance(1.0, IlluminanceUnit.NOX), options.illuminance);
526
527 args = new String[] {};
528 options = new Options();
529 CliUtil.execute(options, args);
530 assertEquals(new Length(2.0, LengthUnit.METER), options.length);
531 args = new String[] {"--length", "1.0in"};
532 CliUtil.execute(options, args);
533 assertEquals(new Length(1.0, LengthUnit.INCH), options.length);
534
535 args = new String[] {};
536 options = new Options();
537 CliUtil.execute(options, args);
538 assertEquals(new LinearDensity(2.0, LinearDensityUnit.PER_METER), options.lineardensity);
539 args = new String[] {"--lineardensity", "1.0/yd"};
540 CliUtil.execute(options, args);
541 assertEquals(new LinearDensity(1.0, LinearDensityUnit.PER_YARD), options.lineardensity);
542
543 args = new String[] {};
544 options = new Options();
545 CliUtil.execute(options, args);
546 assertEquals(new LuminousFlux(2.0, LuminousFluxUnit.LUMEN), options.luminousflux);
547 args = new String[] {"--luminousflux", "1.0srcd"};
548 CliUtil.execute(options, args);
549 assertEquals(new LuminousFlux(1.0, LuminousFluxUnit.LUMEN), options.luminousflux);
550
551 args = new String[] {};
552 options = new Options();
553 CliUtil.execute(options, args);
554 assertEquals(new LuminousIntensity(2.0, LuminousIntensityUnit.CANDELA), options.luminousintensity);
555 args = new String[] {"--luminousintensity", "1.0cd"};
556 CliUtil.execute(options, args);
557 assertEquals(new LuminousIntensity(1.0, LuminousIntensityUnit.SI), options.luminousintensity);
558
559 args = new String[] {};
560 options = new Options();
561 CliUtil.execute(options, args);
562 assertEquals(new MagneticFlux(2.0, MagneticFluxUnit.WEBER), options.magneticflux);
563 args = new String[] {"--magneticflux", "1.0Mx"};
564 CliUtil.execute(options, args);
565 assertEquals(new MagneticFlux(1.0, MagneticFluxUnit.MAXWELL), options.magneticflux);
566
567 args = new String[] {};
568 options = new Options();
569 CliUtil.execute(options, args);
570 assertEquals(new MagneticFluxDensity(2.0, MagneticFluxDensityUnit.TESLA), options.magneticfluxdensity);
571 args = new String[] {"--magneticfluxdensity", "1.0G"};
572 CliUtil.execute(options, args);
573 assertEquals(new MagneticFluxDensity(1.0, MagneticFluxDensityUnit.GAUSS), options.magneticfluxdensity);
574
575 args = new String[] {};
576 options = new Options();
577 CliUtil.execute(options, args);
578 assertEquals(new Mass(2.0, MassUnit.KILOGRAM), options.mass);
579 args = new String[] {"--mass", "1.0GeV"};
580 CliUtil.execute(options, args);
581 assertEquals(new Mass(1.0, MassUnit.GIGAELECTRONVOLT), options.mass);
582
583 args = new String[] {};
584 options = new Options();
585 CliUtil.execute(options, args);
586 assertEquals(new Momentum(2.0, MomentumUnit.SI), options.momentum);
587 args = new String[] {"--momentum", "1.0kgm/sec"};
588 CliUtil.execute(options, args);
589 assertEquals(new Momentum(1.0, MomentumUnit.KILOGRAM_METER_PER_SECOND), options.momentum);
590
591 args = new String[] {};
592 options = new Options();
593 CliUtil.execute(options, args);
594 assertEquals(new Position(2.0, PositionUnit.ASTRONOMICAL_UNIT), options.position);
595 args = new String[] {"--position", "1.0dm"};
596 CliUtil.execute(options, args);
597 assertEquals(new Position(1.0, PositionUnit.DECIMETER), options.position);
598
599 args = new String[] {};
600 options = new Options();
601 CliUtil.execute(options, args);
602 assertEquals(new Power(2.0, PowerUnit.WATT), options.power);
603 args = new String[] {"--power", "1.0ft.lbf/h"};
604 CliUtil.execute(options, args);
605 assertEquals(new Power(1.0, PowerUnit.FOOT_POUND_FORCE_PER_HOUR), options.power);
606
607 args = new String[] {};
608 options = new Options();
609 CliUtil.execute(options, args);
610 assertEquals(new Pressure(2.0, PressureUnit.PASCAL), options.pressure);
611 args = new String[] {"--pressure", "1.0mmHg"};
612 CliUtil.execute(options, args);
613 assertEquals(new Pressure(1.0, PressureUnit.MILLIMETER_MERCURY), options.pressure);
614
615 args = new String[] {};
616 options = new Options();
617 CliUtil.execute(options, args);
618 assertEquals(new RadioActivity(2.0, RadioActivityUnit.BECQUEREL), options.radioactivity);
619 args = new String[] {"--radioactivity", "1.0Ci"};
620 CliUtil.execute(options, args);
621 assertEquals(new RadioActivity(1.0, RadioActivityUnit.CURIE), options.radioactivity);
622
623 args = new String[] {};
624 options = new Options();
625 CliUtil.execute(options, args);
626 assertEquals(new SolidAngle(2.0, SolidAngleUnit.STERADIAN), options.solidangle);
627 args = new String[] {"--solidangle", "1.0sq.deg"};
628 CliUtil.execute(options, args);
629 assertEquals(new SolidAngle(1.0, SolidAngleUnit.SQUARE_DEGREE), options.solidangle);
630
631 args = new String[] {};
632 options = new Options();
633 CliUtil.execute(options, args);
634 assertEquals(new Speed(2.0, SpeedUnit.METER_PER_SECOND), options.speed);
635 args = new String[] {"--speed", "1.0mi/h"};
636 CliUtil.execute(options, args);
637 assertEquals(new Speed(1.0, SpeedUnit.MILE_PER_HOUR), options.speed);
638
639 args = new String[] {};
640 options = new Options();
641 CliUtil.execute(options, args);
642 assertEquals(new Temperature(2.0, TemperatureUnit.KELVIN), options.temperature);
643 args = new String[] {"--temperature", "1.0degC"};
644 CliUtil.execute(options, args);
645 assertEquals(new Temperature(1.0, TemperatureUnit.DEGREE_CELSIUS), options.temperature);
646
647 args = new String[] {};
648 options = new Options();
649 CliUtil.execute(options, args);
650 assertEquals(new Time(2.0, TimeUnit.BASE_HOUR), options.time);
651 args = new String[] {"--time", "1.0day"};
652 CliUtil.execute(options, args);
653 assertEquals(new Time(1.0, TimeUnit.EPOCH_DAY), options.time);
654
655 args = new String[] {};
656 options = new Options();
657 CliUtil.execute(options, args);
658 assertEquals(new Torque(2.0, TorqueUnit.NEWTON_METER), options.torque);
659 args = new String[] {"--torque", "1.0lbf.ft"};
660 CliUtil.execute(options, args);
661 assertEquals(new Torque(1.0, TorqueUnit.POUND_FOOT), options.torque);
662
663 args = new String[] {};
664 options = new Options();
665 CliUtil.execute(options, args);
666 assertEquals(new Volume(2.0, VolumeUnit.CUBIC_METER), options.volume);
667 args = new String[] {"--volume", "1.0L"};
668 CliUtil.execute(options, args);
669 assertEquals(new Volume(1.0, VolumeUnit.LITER), options.volume);
670
671 }
672
673 }