/// <summary>
 /// Converts the float input to the correct float value.
 /// </summary>
 /// <typeparam name="TInput"> The temperature type to be converted to. </typeparam>
 /// <param name="input"> The value to be converted. </param>
 /// <exception cref="ArgumentException"> The TInput type is not a valid type for this method. </exception>
 /// <returns>
 /// The result of the conversion.
 /// </returns>
 public static float To <TInput>(this FloatBase input)
     where TInput : TemperatureBase
 {
     return(typeof(TInput).Name switch
     {
         nameof(Celsius) when input is CelsiusFloat castInput => FloatParser(CelsiusConverter.CelsiusToCelsius(castInput.Temperature)),
         nameof(Celsius) when input is FahrenheitFloat castInput => FloatParser(FahrenheitConverter.FahrenheitToCelsius(castInput.Temperature)),
         nameof(Celsius) when input is KelvinFloat castInput => (float)Math.Round(FloatParser(KelvinConverter.KelvinToCelsius(castInput.Temperature)), 2),
         nameof(Celsius) when input is GasFloat castInput => FloatParser(GasConverter.GasToCelsius(castInput.Temperature)),
         nameof(Celsius) when input is RankineFloat castInput => (float)Math.Round(FloatParser(RankineConverter.RankineToCelsius(castInput.Temperature)), 2),
         nameof(Fahrenheit) when input is CelsiusFloat castInput => FloatParser(CelsiusConverter.CelsiusToFahrenheit(castInput.Temperature)),
         nameof(Fahrenheit) when input is FahrenheitFloat castInput => FloatParser(FahrenheitConverter.FahrenheitToFahrenheit(castInput.Temperature)),
         nameof(Fahrenheit) when input is KelvinFloat castInput => (float)Math.Round(FloatParser(KelvinConverter.KelvinToFahrenheit(castInput.Temperature)), 2),
         nameof(Fahrenheit) when input is GasFloat castInput => FloatParser(GasConverter.GasToFahrenheit(castInput.Temperature)),
         nameof(Fahrenheit) when input is RankineFloat castInput => FloatParser(RankineConverter.RankineToFahrenheit(castInput.Temperature)),
         nameof(Kelvin) when input is CelsiusFloat castInput => FloatParser(CelsiusConverter.CelsiusToKelvin(castInput.Temperature)),
         nameof(Kelvin) when input is FahrenheitFloat castInput => FloatParser(FahrenheitConverter.FahrenheitToKelvin(castInput.Temperature)),
         nameof(Kelvin) when input is KelvinFloat castInput => FloatParser(KelvinConverter.KelvinToKelvin(castInput.Temperature)),
         nameof(Kelvin) when input is GasFloat castInput => FloatParser(GasConverter.GasToKelvin(castInput.Temperature)),
         nameof(Kelvin) when input is RankineFloat castInput => FloatParser(RankineConverter.RankineToKelvin(castInput.Temperature)),
         nameof(Gas) when input is CelsiusFloat castInput => FloatParser(CelsiusConverter.CelsiusToGas(castInput.Temperature)),
         nameof(Gas) when input is FahrenheitFloat castInput => FloatParser(FahrenheitConverter.FahrenheitToGas(castInput.Temperature)),
         nameof(Gas) when input is KelvinFloat castInput => FloatParser(KelvinConverter.KelvinToGas(castInput.Temperature)),
         nameof(Gas) when input is GasFloat castInput => FloatParser(GasConverter.GasToGas(castInput.Temperature)),
         nameof(Gas) when input is RankineFloat castInput => FloatParser(RankineConverter.RankineToGas(castInput.Temperature)),
         nameof(Rankine) when input is CelsiusFloat castInput => FloatParser(CelsiusConverter.CelsiusToRankine(castInput.Temperature)),
         nameof(Rankine) when input is FahrenheitFloat castInput => FloatParser(FahrenheitConverter.FahrenheitToRankine(castInput.Temperature)),
         nameof(Rankine) when input is KelvinFloat castInput => FloatParser(KelvinConverter.KelvinToRankine(castInput.Temperature)),
         nameof(Rankine) when input is GasFloat castInput => FloatParser(GasConverter.GasToRankine(castInput.Temperature)),
         nameof(Rankine) when input is RankineFloat castInput => FloatParser(RankineConverter.RankineToRankine(castInput.Temperature)),
         _ => throw new ArgumentException($"Invalid type: {typeof(TInput).Name}")
     });
 /// <summary>
 /// Converts the Double input to the correct double value.
 /// </summary>
 /// <typeparam name="TInput"> The temperature type to be converted to. </typeparam>
 /// <param name="input"> The value to be converted. </param>
 /// <exception cref="ArgumentException"> The TInput type is not a valid type for this method. </exception>
 /// <returns>
 /// The result of the conversion.
 /// </returns>
 public static double To <TInput>(this DoubleBase input)
     where TInput : TemperatureBase
 {
     return(typeof(TInput).Name switch
     {
         nameof(Celsius) when input is CelsiusDouble castInput => CelsiusConverter.CelsiusToCelsius(castInput.Temperature),
         nameof(Celsius) when input is FahrenheitDouble castInput => FahrenheitConverter.FahrenheitToCelsius(castInput.Temperature),
         nameof(Celsius) when input is KelvinDouble castInput => KelvinConverter.KelvinToCelsius(castInput.Temperature),
         nameof(Celsius) when input is GasDouble castInput => GasConverter.GasToCelsius(castInput.Temperature),
         nameof(Celsius) when input is RankineDouble castInput => RankineConverter.RankineToCelsius(castInput.Temperature),
         nameof(Fahrenheit) when input is CelsiusDouble castInput => CelsiusConverter.CelsiusToFahrenheit(castInput.Temperature),
         nameof(Fahrenheit) when input is FahrenheitDouble castInput => FahrenheitConverter.FahrenheitToFahrenheit(castInput.Temperature),
         nameof(Fahrenheit) when input is KelvinDouble castInput => KelvinConverter.KelvinToFahrenheit(castInput.Temperature),
         nameof(Fahrenheit) when input is GasDouble castInput => GasConverter.GasToFahrenheit(castInput.Temperature),
         nameof(Fahrenheit) when input is RankineDouble castInput => RankineConverter.RankineToFahrenheit(castInput.Temperature),
         nameof(Kelvin) when input is CelsiusDouble castInput => CelsiusConverter.CelsiusToKelvin(castInput.Temperature),
         nameof(Kelvin) when input is FahrenheitDouble castInput => FahrenheitConverter.FahrenheitToKelvin(castInput.Temperature),
         nameof(Kelvin) when input is KelvinDouble castInput => KelvinConverter.KelvinToKelvin(castInput.Temperature),
         nameof(Kelvin) when input is GasDouble castInput => GasConverter.GasToKelvin(castInput.Temperature),
         nameof(Kelvin) when input is RankineDouble castInput => RankineConverter.RankineToKelvin(castInput.Temperature),
         nameof(Gas) when input is CelsiusDouble castInput => CelsiusConverter.CelsiusToGas(castInput.Temperature),
         nameof(Gas) when input is FahrenheitDouble castInput => FahrenheitConverter.FahrenheitToGas(castInput.Temperature),
         nameof(Gas) when input is KelvinDouble castInput => KelvinConverter.KelvinToGas(castInput.Temperature),
         nameof(Gas) when input is GasDouble castInput => GasConverter.GasToGas(castInput.Temperature),
         nameof(Gas) when input is RankineDouble castInput => RankineConverter.RankineToGas(castInput.Temperature),
         nameof(Rankine) when input is CelsiusDouble castInput => CelsiusConverter.CelsiusToRankine(castInput.Temperature),
         nameof(Rankine) when input is FahrenheitDouble castInput => FahrenheitConverter.FahrenheitToRankine(castInput.Temperature),
         nameof(Rankine) when input is KelvinDouble castInput => KelvinConverter.KelvinToRankine(castInput.Temperature),
         nameof(Rankine) when input is GasDouble castInput => GasConverter.GasToRankine(castInput.Temperature),
         nameof(Rankine) when input is RankineDouble castInput => RankineConverter.RankineToRankine(castInput.Temperature),
         _ => throw new ArgumentException($"Invalid type: {typeof(TInput).Name}")
     });
Exemplo n.º 3
0
        public void KelvinToCFahreinheit(decimal input, decimal expectedResult)
        {
            var cc     = new FahrenheitConverter();
            var temp   = new Temperature(input, Unit.Kelvin);
            var result = cc.FromKelvin(temp);

            Assert.Equal(expectedResult, Math.Round(result.Value, 2));
        }
        public void FromCelsiusToFahrenheit(
            double input,
            double expectedOutput
            )
        {
            ITemperatureConverter converter = new FahrenheitConverter();

            Assert.AreEqual(expectedOutput, converter.FromCelsiusToUnit(input), Tolerance);
        }
Exemplo n.º 5
0
        public void FromC_Returns_Expected(double celsius, double expectedFahrenheit)
        {
            var converter          = new FahrenheitConverter();
            var celsiusTemperature = new Temperature(celsius, TemperatureUnit.C);

            var fahrenheitTemperature = converter.FromC(celsiusTemperature);

            Assert.AreEqual(converter.Unit, fahrenheitTemperature.Unit);
            Assert.AreEqual(expectedFahrenheit, fahrenheitTemperature.Degrees, Tolerance);
        }
Exemplo n.º 6
0
        public void ToC_Returns_Expected(double fahrenheit, double expectedCelsius)
        {
            var converter             = new FahrenheitConverter();
            var fahrenheitTemperature = new Temperature(fahrenheit, converter.Unit);

            var celsiusTemperature = converter.ToC(fahrenheitTemperature);

            Assert.AreEqual(TemperatureUnit.C, celsiusTemperature.Unit);
            Assert.AreEqual(expectedCelsius, celsiusTemperature.Degrees, Tolerance);
        }
 /// <summary>
 /// Converts the FahrenheitConverter <paramref name="input"/> to FahrenheitConverter
 /// </summary>
 /// <param name="input"> The value to be converted. </param>
 /// <returns>
 /// The FahrenheitConverter <see langword="float"/> result.
 /// </returns>
 public static float ToFahrenheit(this FahrenheitFloat input)
 {
     return(FloatParser(FahrenheitConverter.FahrenheitToFahrenheit(input.Temperature)));
 }
Exemplo n.º 8
0
 /// <summary>
 /// Converts the FahrenheitConverter <paramref name="input"/> to Celsius
 /// </summary>
 /// <param name="input"> The value to be converted. </param>
 /// <exception cref="T:System.ArgumentOutOfRangeException"> If calculated value is beyond the limits of the type. </exception>
 /// <returns>
 /// The Celsius <see langword="int"/> result.
 /// </returns>
 public static int ToCelsius(this FahrenheitInt input)
 {
     return(IntParser(FahrenheitConverter.FahrenheitToCelsius(input.Temperature)));
 }
 /// <summary>
 /// Converts the FahrenheitConverter <paramref name="input"/> to FahrenheitConverter
 /// </summary>
 /// <param name="input"> The value to be converted. </param>
 /// <returns>
 /// The FahrenheitConverter <see langword="double"/> result.
 /// </returns>
 public static double ToFahrenheit(this FahrenheitDouble input)
 {
     return(FahrenheitConverter.FahrenheitToFahrenheit(input.Temperature));
 }