package org.djutils.cli;
import static org.junit.Assert.assertEquals;
import org.djunits.unit.AbsoluteTemperatureUnit;
import org.djunits.unit.AbsorbedDoseUnit;
import org.djunits.unit.AccelerationUnit;
import org.djunits.unit.AmountOfSubstanceUnit;
import org.djunits.unit.AngleUnit;
import org.djunits.unit.AngularAccelerationUnit;
import org.djunits.unit.AngularVelocityUnit;
import org.djunits.unit.AreaUnit;
import org.djunits.unit.CatalyticActivityUnit;
import org.djunits.unit.DensityUnit;
import org.djunits.unit.DimensionlessUnit;
import org.djunits.unit.DirectionUnit;
import org.djunits.unit.DurationUnit;
import org.djunits.unit.ElectricalCapacitanceUnit;
import org.djunits.unit.ElectricalChargeUnit;
import org.djunits.unit.ElectricalConductanceUnit;
import org.djunits.unit.ElectricalCurrentUnit;
import org.djunits.unit.ElectricalInductanceUnit;
import org.djunits.unit.ElectricalPotentialUnit;
import org.djunits.unit.ElectricalResistanceUnit;
import org.djunits.unit.EnergyUnit;
import org.djunits.unit.EquivalentDoseUnit;
import org.djunits.unit.FlowMassUnit;
import org.djunits.unit.FlowVolumeUnit;
import org.djunits.unit.ForceUnit;
import org.djunits.unit.FrequencyUnit;
import org.djunits.unit.IlluminanceUnit;
import org.djunits.unit.LengthUnit;
import org.djunits.unit.LinearDensityUnit;
import org.djunits.unit.LuminousFluxUnit;
import org.djunits.unit.LuminousIntensityUnit;
import org.djunits.unit.MagneticFluxDensityUnit;
import org.djunits.unit.MagneticFluxUnit;
import org.djunits.unit.MassUnit;
import org.djunits.unit.MomentumUnit;
import org.djunits.unit.PositionUnit;
import org.djunits.unit.PowerUnit;
import org.djunits.unit.PressureUnit;
import org.djunits.unit.RadioActivityUnit;
import org.djunits.unit.SolidAngleUnit;
import org.djunits.unit.SpeedUnit;
import org.djunits.unit.TemperatureUnit;
import org.djunits.unit.TimeUnit;
import org.djunits.unit.TorqueUnit;
import org.djunits.unit.VolumeUnit;
import org.djunits.value.vdouble.scalar.AbsoluteTemperature;
import org.djunits.value.vdouble.scalar.AbsorbedDose;
import org.djunits.value.vdouble.scalar.Acceleration;
import org.djunits.value.vdouble.scalar.AmountOfSubstance;
import org.djunits.value.vdouble.scalar.Angle;
import org.djunits.value.vdouble.scalar.AngularAcceleration;
import org.djunits.value.vdouble.scalar.AngularVelocity;
import org.djunits.value.vdouble.scalar.Area;
import org.djunits.value.vdouble.scalar.CatalyticActivity;
import org.djunits.value.vdouble.scalar.Density;
import org.djunits.value.vdouble.scalar.Dimensionless;
import org.djunits.value.vdouble.scalar.Direction;
import org.djunits.value.vdouble.scalar.Duration;
import org.djunits.value.vdouble.scalar.ElectricalCapacitance;
import org.djunits.value.vdouble.scalar.ElectricalCharge;
import org.djunits.value.vdouble.scalar.ElectricalConductance;
import org.djunits.value.vdouble.scalar.ElectricalCurrent;
import org.djunits.value.vdouble.scalar.ElectricalInductance;
import org.djunits.value.vdouble.scalar.ElectricalPotential;
import org.djunits.value.vdouble.scalar.ElectricalResistance;
import org.djunits.value.vdouble.scalar.Energy;
import org.djunits.value.vdouble.scalar.EquivalentDose;
import org.djunits.value.vdouble.scalar.FlowMass;
import org.djunits.value.vdouble.scalar.FlowVolume;
import org.djunits.value.vdouble.scalar.Force;
import org.djunits.value.vdouble.scalar.Frequency;
import org.djunits.value.vdouble.scalar.Illuminance;
import org.djunits.value.vdouble.scalar.Length;
import org.djunits.value.vdouble.scalar.LinearDensity;
import org.djunits.value.vdouble.scalar.LuminousFlux;
import org.djunits.value.vdouble.scalar.LuminousIntensity;
import org.djunits.value.vdouble.scalar.MagneticFlux;
import org.djunits.value.vdouble.scalar.MagneticFluxDensity;
import org.djunits.value.vdouble.scalar.Mass;
import org.djunits.value.vdouble.scalar.Momentum;
import org.djunits.value.vdouble.scalar.Position;
import org.djunits.value.vdouble.scalar.Power;
import org.djunits.value.vdouble.scalar.Pressure;
import org.djunits.value.vdouble.scalar.RadioActivity;
import org.djunits.value.vdouble.scalar.SolidAngle;
import org.djunits.value.vdouble.scalar.Speed;
import org.djunits.value.vdouble.scalar.Temperature;
import org.djunits.value.vdouble.scalar.Time;
import org.djunits.value.vdouble.scalar.Torque;
import org.djunits.value.vdouble.scalar.Volume;
import org.junit.Test;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
/**
* Program to test the DJUNITS unit converters for CLI.
*
* Copyright (c) 2003-2018 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See
* for project information www.simulation.tudelft.nl. The
* source code and binary code of this software is proprietary information of Delft University of Technology.
* @author Alexander Verbraeck
*/
@SuppressWarnings("checkstyle:visibilitymodifier")
public class TestCLIUnitConverters
{
/** */
@Command(description = "Test program for CLI", name = "Program", mixinStandardHelpOptions = true, version = "1.0")
public static class Options
{
/** */
@Option(names = {"--absolutetemperature"}, description = "AbsoluteTemperature", defaultValue = "200.0K")
protected AbsoluteTemperature absolutetemperature;
/** */
@Option(names = {"--absorbeddose"}, description = "AbsorbedDose", defaultValue = "200Gy")
protected AbsorbedDose absorbeddose;
/** */
@Option(names = {"--acceleration"}, description = "Acceleration", defaultValue = "2.0m/s^2")
protected Acceleration acceleration;
/** */
@Option(names = {"--amountofsubstance"}, description = "AmountOfSubstance", defaultValue = "200.0mol")
protected AmountOfSubstance amountofsubstance;
/** */
@Option(names = {"--angle"}, description = "Angle", defaultValue = "2.0rad")
protected Angle angle;
/** */
@Option(names = {"--angularacceleration"}, description = "AngularAcceleration", defaultValue = "2.0rad/s2")
protected AngularAcceleration angularacceleration;
/** */
@Option(names = {"--angularvelocity"}, description = "AngularVelocity", defaultValue = "2.0rad/s")
protected AngularVelocity angularvelocity;
/** */
@Option(names = {"--area"}, description = "Area", defaultValue = "2.0m^2")
protected Area area;
/** */
@Option(names = {"--catalyticactivity"}, description = "CatalyticActivity", defaultValue = "2.0kat")
protected CatalyticActivity catalyticactivity;
/** */
@Option(names = {"--density"}, description = "Density", defaultValue = "2.0kg/m^3")
protected Density density;
/** */
@Option(names = {"--dimensionless"}, description = "Dimensionless", defaultValue = "2.0")
protected Dimensionless dimensionless;
/** */
@Option(names = {"--direction"}, description = "Direction", defaultValue = "2.0rad(E)")
protected Direction direction;
/** */
@Option(names = {"--duration"}, description = "Duration", defaultValue = "2.0s")
protected Duration duration;
/** */
@Option(names = {"--electricalcapacitance"}, description = "ElectricalCapacitance", defaultValue = "2.0F")
protected ElectricalCapacitance electricalcapacitance;
/** */
@Option(names = {"--electricalcharge"}, description = "ElectricalCharge", defaultValue = "2.0C")
protected ElectricalCharge electricalcharge;
/** */
@Option(names = {"--electricalconductance"}, description = "ElectricalConductance", defaultValue = "2.0S")
protected ElectricalConductance electricalconductance;
/** */
@Option(names = {"--electricalcurrent"}, description = "ElectricalCurrent", defaultValue = "2.0A")
protected ElectricalCurrent electricalcurrent;
/** */
@Option(names = {"--electricalinductance"}, description = "ElectricalInductance", defaultValue = "2.0H")
protected ElectricalInductance electricalinductance;
/** */
@Option(names = {"--electricalpotential"}, description = "ElectricalPotential", defaultValue = "2.0V")
protected ElectricalPotential electricalpotential;
/** */
@Option(names = {"--electricalresistance"}, description = "ElectricalResistance", defaultValue = "2.0ohm")
protected ElectricalResistance electricalresistance;
/** */
@Option(names = {"--energy"}, description = "Energy", defaultValue = "2.0J")
protected Energy energy;
/** */
@Option(names = {"--equivalentdose"}, description = "EquivalentDose", defaultValue = "2.0Sv")
protected EquivalentDose equivalentdose;
/** */
@Option(names = {"--flowmass"}, description = "FlowMass", defaultValue = "2.0kg/s")
protected FlowMass flowmass;
/** */
@Option(names = {"--flowvolume"}, description = "FlowVolume", defaultValue = "2.0m^3/s")
protected FlowVolume flowvolume;
/** */
@Option(names = {"--force"}, description = "Force", defaultValue = "2.0N")
protected Force force;
/** */
@Option(names = {"--frequency"}, description = "Frequency", defaultValue = "2.0/s")
protected Frequency frequency;
/** */
@Option(names = {"--illuminance"}, description = "Illuminance", defaultValue = "2.0lx")
protected Illuminance illuminance;
/** */
@Option(names = {"--length"}, description = "Length", defaultValue = "2.0m")
protected Length length;
/** */
@Option(names = {"--lineardensity"}, description = "LinearDensity", defaultValue = "2.0/m")
protected LinearDensity lineardensity;
/** */
@Option(names = {"--luminousflux"}, description = "LuminousFlux", defaultValue = "2.0lm")
protected LuminousFlux luminousflux;
/** */
@Option(names = {"--luminousintensity"}, description = "LuminousIntensity", defaultValue = "2.0cd")
protected LuminousIntensity luminousintensity;
/** */
@Option(names = {"--magneticflux"}, description = "MagneticFlux", defaultValue = "2.0Wb")
protected MagneticFlux magneticflux;
/** */
@Option(names = {"--magneticfluxdensity"}, description = "MagneticFluxDensity", defaultValue = "2.0T")
protected MagneticFluxDensity magneticfluxdensity;
/** */
@Option(names = {"--mass"}, description = "Mass", defaultValue = "2.0kg")
protected Mass mass;
/** */
@Option(names = {"--momentum"}, description = "Momentum", defaultValue = "2.0kgm/s")
protected Momentum momentum;
/** */
@Option(names = {"--position"}, description = "Position", defaultValue = "2.0AU")
protected Position position;
/** */
@Option(names = {"--power"}, description = "Power", defaultValue = "2.0W")
protected Power power;
/** */
@Option(names = {"--pressure"}, description = "Pressure", defaultValue = "2.0Pa")
protected Pressure pressure;
/** */
@Option(names = {"--radioactivity"}, description = "RadioActivity", defaultValue = "2.0Bq")
protected RadioActivity radioactivity;
/** */
@Option(names = {"--solidangle"}, description = "SolidAngle", defaultValue = "2.0sr")
protected SolidAngle solidangle;
/** */
@Option(names = {"--speed"}, description = "Speed", defaultValue = "2.0m/s")
protected Speed speed;
/** */
@Option(names = {"--temperature"}, description = "Temperature", defaultValue = "2.0K")
protected Temperature temperature;
/** */
@Option(names = {"--time"}, description = "Time", defaultValue = "2.0h")
protected Time time;
/** */
@Option(names = {"--torque"}, description = "Torque", defaultValue = "2.0N.m")
protected Torque torque;
/** */
@Option(names = {"--volume"}, description = "Volume", defaultValue = "2.0m^3")
protected Volume volume;
}
/**
* Test the CliUtil methods.
* @throws CliException on error
* @throws IllegalAccessException on error
* @throws IllegalArgumentException on error
* @throws NoSuchFieldException on error
*/
@Test
public void testCli() throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException, CliException
{
String[] args;
Options options;
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new AbsoluteTemperature(200.0, AbsoluteTemperatureUnit.KELVIN), options.absolutetemperature);
args = new String[] {"--absolutetemperature", "100.0C"};
CliUtil.execute(options, args);
assertEquals(new AbsoluteTemperature(100.0, AbsoluteTemperatureUnit.DEGREE_CELSIUS), options.absolutetemperature);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new AbsorbedDose(200.0, AbsorbedDoseUnit.GRAY), options.absorbeddose);
args = new String[] {"--absorbeddose", "100.0erg/g"};
CliUtil.execute(options, args);
assertEquals(new AbsorbedDose(100.0, AbsorbedDoseUnit.ERG_PER_GRAM), options.absorbeddose);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Acceleration(2.0, AccelerationUnit.METER_PER_SECOND_2), options.acceleration);
args = new String[] {"--acceleration", "1.0km/h^2"};
CliUtil.execute(options, args);
assertEquals(new Acceleration(1.0, AccelerationUnit.KM_PER_HOUR_2), options.acceleration);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new AmountOfSubstance(200.0, AmountOfSubstanceUnit.MOLE), options.amountofsubstance);
args = new String[] {"--amountofsubstance", "10mmol"};
CliUtil.execute(options, args);
assertEquals(new AmountOfSubstance(10.0, AmountOfSubstanceUnit.MILLIMOLE), options.amountofsubstance);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Angle(2.0, AngleUnit.RADIAN), options.angle);
args = new String[] {"--angle", "10.0deg"};
CliUtil.execute(options, args);
assertEquals(new Angle(10.0, AngleUnit.DEGREE), options.angle);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new AngularAcceleration(2.0, AngularAccelerationUnit.RADIAN_PER_SECOND_SQUARED),
options.angularacceleration);
args = new String[] {"--angularacceleration", "10.0c\"/sec2"};
CliUtil.execute(options, args);
assertEquals(new AngularAcceleration(10.0, AngularAccelerationUnit.CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED),
options.angularacceleration);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new AngularVelocity(2.0, AngularVelocityUnit.RADIAN_PER_SECOND), options.angularvelocity);
args = new String[] {"--angularvelocity", "10.0c\"/sec"};
CliUtil.execute(options, args);
assertEquals(new AngularVelocity(10.0, AngularVelocityUnit.CENTESIMAL_ARCSECOND_PER_SECOND), options.angularvelocity);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Area(2.0, AreaUnit.SQUARE_METER), options.area);
args = new String[] {"--area", "1.0ac"};
CliUtil.execute(options, args);
assertEquals(new Area(1.0, AreaUnit.ACRE), options.area);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new CatalyticActivity(2.0, CatalyticActivityUnit.KATAL), options.catalyticactivity);
args = new String[] {"--catalyticactivity", "1.0mkat"};
CliUtil.execute(options, args);
assertEquals(new CatalyticActivity(1.0, CatalyticActivityUnit.MILLIKATAL), options.catalyticactivity);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Density(2.0, DensityUnit.KG_PER_METER_3), options.density);
args = new String[] {"--density", "1.0g/cm^3"};
CliUtil.execute(options, args);
assertEquals(new Density(1.0, DensityUnit.GRAM_PER_CENTIMETER_3), options.density);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Dimensionless(2.0, DimensionlessUnit.SI), options.dimensionless);
args = new String[] {"--dimensionless", "1.0"};
CliUtil.execute(options, args);
assertEquals(new Dimensionless(1.0, DimensionlessUnit.SI), options.dimensionless);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Direction(2.0, DirectionUnit.EAST_RADIAN), options.direction);
args = new String[] {"--direction", "1.0deg(N)"};
CliUtil.execute(options, args);
assertEquals(new Direction(1.0, DirectionUnit.NORTH_DEGREE), options.direction);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Duration(2.0, DurationUnit.SECOND), options.duration);
args = new String[] {"--duration", "1.0day"};
CliUtil.execute(options, args);
assertEquals(new Duration(1.0, DurationUnit.DAY), options.duration);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new ElectricalCapacitance(2.0, ElectricalCapacitanceUnit.FARAD), options.electricalcapacitance);
args = new String[] {"--electricalcapacitance", "1.0uF"};
CliUtil.execute(options, args);
assertEquals(new ElectricalCapacitance(1.0, ElectricalCapacitanceUnit.MICROFARAD), options.electricalcapacitance);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new ElectricalCharge(2.0, ElectricalChargeUnit.COULOMB), options.electricalcharge);
args = new String[] {"--electricalcharge", "1.0mAh"};
CliUtil.execute(options, args);
assertEquals(new ElectricalCharge(1.0, ElectricalChargeUnit.MILLIAMPERE_HOUR), options.electricalcharge);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new ElectricalConductance(2.0, ElectricalConductanceUnit.SIEMENS), options.electricalconductance);
args = new String[] {"--electricalconductance", "1.0mS"};
CliUtil.execute(options, args);
assertEquals(new ElectricalConductance(1.0, ElectricalConductanceUnit.MILLISIEMENS), options.electricalconductance);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new ElectricalCurrent(2.0, ElectricalCurrentUnit.AMPERE), options.electricalcurrent);
args = new String[] {"--electricalcurrent", "1.0statA"};
CliUtil.execute(options, args);
assertEquals(new ElectricalCurrent(1.0, ElectricalCurrentUnit.STATAMPERE), options.electricalcurrent);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new ElectricalInductance(2.0, ElectricalInductanceUnit.HENRY), options.electricalinductance);
args = new String[] {"--electricalinductance", "1.0mH"};
CliUtil.execute(options, args);
assertEquals(new ElectricalInductance(1.0, ElectricalInductanceUnit.MILLIHENRY), options.electricalinductance);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new ElectricalPotential(2.0, ElectricalPotentialUnit.VOLT), options.electricalpotential);
args = new String[] {"--electricalpotential", "1.0abV"};
CliUtil.execute(options, args);
assertEquals(new ElectricalPotential(1.0, ElectricalPotentialUnit.ABVOLT), options.electricalpotential);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new ElectricalResistance(2.0, ElectricalResistanceUnit.OHM), options.electricalresistance);
args = new String[] {"--electricalresistance", "1.0stohm"};
CliUtil.execute(options, args);
assertEquals(new ElectricalResistance(1.0, ElectricalResistanceUnit.STATOHM), options.electricalresistance);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Energy(2.0, EnergyUnit.JOULE), options.energy);
args = new String[] {"--energy", "1.0kWh"};
CliUtil.execute(options, args);
assertEquals(new Energy(1.0, EnergyUnit.KILOWATT_HOUR), options.energy);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new EquivalentDose(2.0, EquivalentDoseUnit.SIEVERT), options.equivalentdose);
args = new String[] {"--equivalentdose", "1.0rem"};
CliUtil.execute(options, args);
assertEquals(new EquivalentDose(1.0, EquivalentDoseUnit.REM), options.equivalentdose);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new FlowMass(2.0, FlowMassUnit.KILOGRAM_PER_SECOND), options.flowmass);
args = new String[] {"--flowmass", "1.0lb/s"};
CliUtil.execute(options, args);
assertEquals(new FlowMass(1.0, FlowMassUnit.POUND_PER_SECOND), options.flowmass);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new FlowVolume(2.0, FlowVolumeUnit.CUBIC_METER_PER_SECOND), options.flowvolume);
args = new String[] {"--flowvolume", "1.0gal(US)/day"};
CliUtil.execute(options, args);
assertEquals(new FlowVolume(1.0, FlowVolumeUnit.GALLON_US_PER_DAY), options.flowvolume);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Force(2.0, ForceUnit.NEWTON), options.force);
args = new String[] {"--force", "1.0kgf"};
CliUtil.execute(options, args);
assertEquals(new Force(1.0, ForceUnit.KILOGRAM_FORCE), options.force);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Frequency(2.0, FrequencyUnit.PER_SECOND), options.frequency);
args = new String[] {"--frequency", "1.0kHz"};
CliUtil.execute(options, args);
assertEquals(new Frequency(1.0, FrequencyUnit.KILOHERTZ), options.frequency);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Illuminance(2.0, IlluminanceUnit.LUX), options.illuminance);
args = new String[] {"--illuminance", "1.0nx"};
CliUtil.execute(options, args);
assertEquals(new Illuminance(1.0, IlluminanceUnit.NOX), options.illuminance);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Length(2.0, LengthUnit.METER), options.length);
args = new String[] {"--length", "1.0in"};
CliUtil.execute(options, args);
assertEquals(new Length(1.0, LengthUnit.INCH), options.length);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new LinearDensity(2.0, LinearDensityUnit.PER_METER), options.lineardensity);
args = new String[] {"--lineardensity", "1.0/yd"};
CliUtil.execute(options, args);
assertEquals(new LinearDensity(1.0, LinearDensityUnit.PER_YARD), options.lineardensity);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new LuminousFlux(2.0, LuminousFluxUnit.LUMEN), options.luminousflux);
args = new String[] {"--luminousflux", "1.0srcd"};
CliUtil.execute(options, args);
assertEquals(new LuminousFlux(1.0, LuminousFluxUnit.LUMEN), options.luminousflux);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new LuminousIntensity(2.0, LuminousIntensityUnit.CANDELA), options.luminousintensity);
args = new String[] {"--luminousintensity", "1.0cd"};
CliUtil.execute(options, args);
assertEquals(new LuminousIntensity(1.0, LuminousIntensityUnit.SI), options.luminousintensity);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new MagneticFlux(2.0, MagneticFluxUnit.WEBER), options.magneticflux);
args = new String[] {"--magneticflux", "1.0Mx"};
CliUtil.execute(options, args);
assertEquals(new MagneticFlux(1.0, MagneticFluxUnit.MAXWELL), options.magneticflux);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new MagneticFluxDensity(2.0, MagneticFluxDensityUnit.TESLA), options.magneticfluxdensity);
args = new String[] {"--magneticfluxdensity", "1.0G"};
CliUtil.execute(options, args);
assertEquals(new MagneticFluxDensity(1.0, MagneticFluxDensityUnit.GAUSS), options.magneticfluxdensity);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Mass(2.0, MassUnit.KILOGRAM), options.mass);
args = new String[] {"--mass", "1.0GeV"};
CliUtil.execute(options, args);
assertEquals(new Mass(1.0, MassUnit.GIGAELECTRONVOLT), options.mass);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Momentum(2.0, MomentumUnit.SI), options.momentum);
args = new String[] {"--momentum", "1.0kgm/sec"};
CliUtil.execute(options, args);
assertEquals(new Momentum(1.0, MomentumUnit.KILOGRAM_METER_PER_SECOND), options.momentum);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Position(2.0, PositionUnit.ASTRONOMICAL_UNIT), options.position);
args = new String[] {"--position", "1.0dm"};
CliUtil.execute(options, args);
assertEquals(new Position(1.0, PositionUnit.DECIMETER), options.position);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Power(2.0, PowerUnit.WATT), options.power);
args = new String[] {"--power", "1.0ft.lbf/h"};
CliUtil.execute(options, args);
assertEquals(new Power(1.0, PowerUnit.FOOT_POUND_FORCE_PER_HOUR), options.power);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Pressure(2.0, PressureUnit.PASCAL), options.pressure);
args = new String[] {"--pressure", "1.0mmHg"};
CliUtil.execute(options, args);
assertEquals(new Pressure(1.0, PressureUnit.MILLIMETER_MERCURY), options.pressure);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new RadioActivity(2.0, RadioActivityUnit.BECQUEREL), options.radioactivity);
args = new String[] {"--radioactivity", "1.0Ci"};
CliUtil.execute(options, args);
assertEquals(new RadioActivity(1.0, RadioActivityUnit.CURIE), options.radioactivity);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new SolidAngle(2.0, SolidAngleUnit.STERADIAN), options.solidangle);
args = new String[] {"--solidangle", "1.0sq.deg"};
CliUtil.execute(options, args);
assertEquals(new SolidAngle(1.0, SolidAngleUnit.SQUARE_DEGREE), options.solidangle);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Speed(2.0, SpeedUnit.METER_PER_SECOND), options.speed);
args = new String[] {"--speed", "1.0mi/h"};
CliUtil.execute(options, args);
assertEquals(new Speed(1.0, SpeedUnit.MILE_PER_HOUR), options.speed);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Temperature(2.0, TemperatureUnit.KELVIN), options.temperature);
args = new String[] {"--temperature", "1.0degC"};
CliUtil.execute(options, args);
assertEquals(new Temperature(1.0, TemperatureUnit.DEGREE_CELSIUS), options.temperature);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Time(2.0, TimeUnit.BASE_HOUR), options.time);
args = new String[] {"--time", "1.0day"};
CliUtil.execute(options, args);
assertEquals(new Time(1.0, TimeUnit.EPOCH_DAY), options.time);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Torque(2.0, TorqueUnit.NEWTON_METER), options.torque);
args = new String[] {"--torque", "1.0lbf.ft"};
CliUtil.execute(options, args);
assertEquals(new Torque(1.0, TorqueUnit.POUND_FOOT), options.torque);
args = new String[] {};
options = new Options();
CliUtil.execute(options, args);
assertEquals(new Volume(2.0, VolumeUnit.CUBIC_METER), options.volume);
args = new String[] {"--volume", "1.0L"};
CliUtil.execute(options, args);
assertEquals(new Volume(1.0, VolumeUnit.LITER), options.volume);
}
}