Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge v5 alpha #1158

Closed
wants to merge 73 commits into from
Closed

Merge v5 alpha #1158

wants to merge 73 commits into from

Conversation

angularsen
Copy link
Owner

@angularsen angularsen commented Nov 29, 2022

Merging the v5 release branch.

Although still in alpha, it is functional, nugets are published and there are not many planned breaking changes left:

By merging, all efforts moving forward are targeting v5.
This reduces several friction points:

  • No more merge conflicts trying to forward port changes to v5, instead we cherry pick new units and important changes back to v4 until v5 is fully stable.
  • Contributors are having trouble building v4 locally due to net40 and Windows Runtime Component targets.

angularsen and others added 30 commits November 1, 2021 21:05
Only a single hyphen per function name allowed.
Rename JSON field and quantity class property.
No longer needed after dropping net40 target
- MinValue
- MaxValue
- ToString overloads
To avoid floating point rounding issues, uses should use Equals() methods instead.
angularsen and others added 25 commits February 8, 2022 22:17
Should instead rename BaseUnits to SiBaseUnits to distinguish them.
Co-authored-by: Andreas Leeb <Andreas.Leeb@tgw-group.com>

Fixes #875 

Regarding #875 (reply in thread) a PR draft for #875 (comment)

Size comparison
```
Before: Marshal.SizeOf<QuantityValue>(): 40 B
After:  Marshal.SizeOf<QuantityValue>(): 16 B
```

`UnderlyingDataType` could support up to 256 different enum values, I guess we won't ever need more different underlying types that can fit into this struct 😄
# Conflicts:
#	CodeGen/Generators/NanoFrameworkGen/NuspecGenerator.cs
#	UnitsNet.NanoFramework/GeneratedCode/Acceleration/UnitsNet.NanoFramework.Acceleration.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/AmountOfSubstance/UnitsNet.NanoFramework.AmountOfSubstance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/AmplitudeRatio/UnitsNet.NanoFramework.AmplitudeRatio.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Angle/UnitsNet.NanoFramework.Angle.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ApparentEnergy/UnitsNet.NanoFramework.ApparentEnergy.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ApparentPower/UnitsNet.NanoFramework.ApparentPower.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Area/UnitsNet.NanoFramework.Area.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/AreaDensity/UnitsNet.NanoFramework.AreaDensity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/AreaMomentOfInertia/UnitsNet.NanoFramework.AreaMomentOfInertia.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/BitRate/UnitsNet.NanoFramework.BitRate.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/BrakeSpecificFuelConsumption/UnitsNet.NanoFramework.BrakeSpecificFuelConsumption.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Capacitance/UnitsNet.NanoFramework.Capacitance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/CoefficientOfThermalExpansion/UnitsNet.NanoFramework.CoefficientOfThermalExpansion.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Density/UnitsNet.NanoFramework.Density.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Duration/UnitsNet.NanoFramework.Duration.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/DynamicViscosity/UnitsNet.NanoFramework.DynamicViscosity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricAdmittance/UnitsNet.NanoFramework.ElectricAdmittance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricCharge/UnitsNet.NanoFramework.ElectricCharge.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricChargeDensity/UnitsNet.NanoFramework.ElectricChargeDensity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricConductance/UnitsNet.NanoFramework.ElectricConductance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricConductivity/UnitsNet.NanoFramework.ElectricConductivity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricCurrent/UnitsNet.NanoFramework.ElectricCurrent.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricCurrentDensity/UnitsNet.NanoFramework.ElectricCurrentDensity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricCurrentGradient/UnitsNet.NanoFramework.ElectricCurrentGradient.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricField/UnitsNet.NanoFramework.ElectricField.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricInductance/UnitsNet.NanoFramework.ElectricInductance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricPotential/UnitsNet.NanoFramework.ElectricPotential.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricPotentialAc/UnitsNet.NanoFramework.ElectricPotentialAc.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricPotentialChangeRate/UnitsNet.NanoFramework.ElectricPotentialChangeRate.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricPotentialDc/UnitsNet.NanoFramework.ElectricPotentialDc.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricResistance/UnitsNet.NanoFramework.ElectricResistance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricResistivity/UnitsNet.NanoFramework.ElectricResistivity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ElectricSurfaceChargeDensity/UnitsNet.NanoFramework.ElectricSurfaceChargeDensity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Energy/UnitsNet.NanoFramework.Energy.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Entropy/UnitsNet.NanoFramework.Entropy.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Force/UnitsNet.NanoFramework.Force.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ForceChangeRate/UnitsNet.NanoFramework.ForceChangeRate.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ForcePerLength/UnitsNet.NanoFramework.ForcePerLength.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Frequency/UnitsNet.NanoFramework.Frequency.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/FuelEfficiency/UnitsNet.NanoFramework.FuelEfficiency.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/HeatFlux/UnitsNet.NanoFramework.HeatFlux.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/HeatTransferCoefficient/UnitsNet.NanoFramework.HeatTransferCoefficient.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Illuminance/UnitsNet.NanoFramework.Illuminance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Information/UnitsNet.NanoFramework.Information.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Irradiance/UnitsNet.NanoFramework.Irradiance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Irradiation/UnitsNet.NanoFramework.Irradiation.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/KinematicViscosity/UnitsNet.NanoFramework.KinematicViscosity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/LapseRate/UnitsNet.NanoFramework.LapseRate.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Length/UnitsNet.NanoFramework.Length.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Level/UnitsNet.NanoFramework.Level.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/LinearDensity/UnitsNet.NanoFramework.LinearDensity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/LinearPowerDensity/UnitsNet.NanoFramework.LinearPowerDensity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Luminosity/UnitsNet.NanoFramework.Luminosity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/LuminousFlux/UnitsNet.NanoFramework.LuminousFlux.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/LuminousIntensity/UnitsNet.NanoFramework.LuminousIntensity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MagneticField/UnitsNet.NanoFramework.MagneticField.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MagneticFlux/UnitsNet.NanoFramework.MagneticFlux.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Magnetization/UnitsNet.NanoFramework.Magnetization.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Mass/UnitsNet.NanoFramework.Mass.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MassConcentration/UnitsNet.NanoFramework.MassConcentration.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MassFlow/UnitsNet.NanoFramework.MassFlow.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MassFlux/UnitsNet.NanoFramework.MassFlux.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MassFraction/UnitsNet.NanoFramework.MassFraction.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MassMomentOfInertia/UnitsNet.NanoFramework.MassMomentOfInertia.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MolarEnergy/UnitsNet.NanoFramework.MolarEnergy.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MolarEntropy/UnitsNet.NanoFramework.MolarEntropy.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/MolarMass/UnitsNet.NanoFramework.MolarMass.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Molarity/UnitsNet.NanoFramework.Molarity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Permeability/UnitsNet.NanoFramework.Permeability.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Permittivity/UnitsNet.NanoFramework.Permittivity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Power/UnitsNet.NanoFramework.Power.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/PowerDensity/UnitsNet.NanoFramework.PowerDensity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/PowerRatio/UnitsNet.NanoFramework.PowerRatio.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Pressure/UnitsNet.NanoFramework.Pressure.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/PressureChangeRate/UnitsNet.NanoFramework.PressureChangeRate.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Properties/AssemblyInfo.cs
#	UnitsNet.NanoFramework/GeneratedCode/Quantities/Length.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Quantities/Power.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Quantities/Pressure.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Quantities/SpecificEnergy.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Ratio/UnitsNet.NanoFramework.Ratio.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/RatioChangeRate/UnitsNet.NanoFramework.RatioChangeRate.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ReactiveEnergy/UnitsNet.NanoFramework.ReactiveEnergy.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ReactivePower/UnitsNet.NanoFramework.ReactivePower.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ReciprocalArea/UnitsNet.NanoFramework.ReciprocalArea.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ReciprocalLength/UnitsNet.NanoFramework.ReciprocalLength.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/RelativeHumidity/UnitsNet.NanoFramework.RelativeHumidity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/RotationalAcceleration/UnitsNet.NanoFramework.RotationalAcceleration.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/RotationalSpeed/UnitsNet.NanoFramework.RotationalSpeed.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/RotationalStiffness/UnitsNet.NanoFramework.RotationalStiffness.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/RotationalStiffnessPerLength/UnitsNet.NanoFramework.RotationalStiffnessPerLength.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Scalar/UnitsNet.NanoFramework.Scalar.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/SolidAngle/UnitsNet.NanoFramework.SolidAngle.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/SpecificEnergy/UnitsNet.NanoFramework.SpecificEnergy.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/SpecificEntropy/UnitsNet.NanoFramework.SpecificEntropy.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/SpecificFuelConsumption/UnitsNet.NanoFramework.SpecificFuelConsumption.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/SpecificVolume/UnitsNet.NanoFramework.SpecificVolume.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/SpecificWeight/UnitsNet.NanoFramework.SpecificWeight.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Speed/UnitsNet.NanoFramework.Speed.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/StandardVolumeFlow/UnitsNet.NanoFramework.StandardVolumeFlow.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Temperature/UnitsNet.NanoFramework.Temperature.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/TemperatureChangeRate/UnitsNet.NanoFramework.TemperatureChangeRate.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/TemperatureDelta/UnitsNet.NanoFramework.TemperatureDelta.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/TemperatureGradient/UnitsNet.NanoFramework.TemperatureGradient.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ThermalConductivity/UnitsNet.NanoFramework.ThermalConductivity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/ThermalResistance/UnitsNet.NanoFramework.ThermalResistance.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Torque/UnitsNet.NanoFramework.Torque.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/TorquePerLength/UnitsNet.NanoFramework.TorquePerLength.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Turbidity/UnitsNet.NanoFramework.Turbidity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/VitaminA/UnitsNet.NanoFramework.VitaminA.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/Volume/UnitsNet.NanoFramework.Volume.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/VolumeConcentration/UnitsNet.NanoFramework.VolumeConcentration.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/VolumeFlow/UnitsNet.NanoFramework.VolumeFlow.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/VolumeFlowPerArea/UnitsNet.NanoFramework.VolumeFlowPerArea.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/VolumePerLength/UnitsNet.NanoFramework.VolumePerLength.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/VolumetricHeatCapacity/UnitsNet.NanoFramework.VolumetricHeatCapacity.nuspec
#	UnitsNet.NanoFramework/GeneratedCode/WarpingMomentOfInertia/UnitsNet.NanoFramework.WarpingMomentOfInertia.nuspec
#	UnitsNet.NumberExtensions/UnitsNet.NumberExtensions.csproj
#	UnitsNet.Tests/GeneratedCode/IQuantityTests.g.cs
#	UnitsNet.Tests/UnitsNet.Tests.csproj
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/Length.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/Power.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/Pressure.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/SpecificEnergy.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantity.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/QuantityType.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Units/LengthUnit.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Units/PowerUnit.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Units/PressureUnit.g.cs
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Units/SpecificEnergyUnit.g.cs
#	UnitsNet.WindowsRuntimeComponent/Properties/AssemblyInfo.cs
#	UnitsNet.WindowsRuntimeComponent/UnitsNet.WindowsRuntimeComponent.nuspec
#	UnitsNet/GeneratedCode/Quantity.g.cs
#	UnitsNet/QuantityTypeConverter.cs
#	UnitsNet/UnitsNet.csproj
#	appveyor.yml
* Switch nanoFramework build to x64

* Migrate nanoFramework projects and generator to VS2022 style
# Conflicts:
#	UnitsNet.NanoFramework/GeneratedCode/Units/AccelerationUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/AmountOfSubstanceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/AmplitudeRatioUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/AngleUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ApparentEnergyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ApparentPowerUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/AreaDensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/AreaMomentOfInertiaUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/AreaUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/BitRateUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/BrakeSpecificFuelConsumptionUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/CapacitanceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/CoefficientOfThermalExpansionUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/CompressibilityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/DensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/DurationUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/DynamicViscosityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricAdmittanceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricChargeDensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricChargeUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricConductanceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricConductivityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricCurrentDensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricCurrentGradientUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricCurrentUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricFieldUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricInductanceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricPotentialAcUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricPotentialChangeRateUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricPotentialDcUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricPotentialUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricResistanceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricResistivityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ElectricSurfaceChargeDensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/EnergyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/EntropyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ForceChangeRateUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ForcePerLengthUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ForceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/FrequencyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/FuelEfficiencyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/HeatFluxUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/HeatTransferCoefficientUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/IlluminanceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/InformationUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/IrradianceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/IrradiationUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/JerkUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/KinematicViscosityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/LapseRateUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/LevelUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/LinearDensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/LinearPowerDensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/LuminosityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/LuminousFluxUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/LuminousIntensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MagneticFieldUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MagneticFluxUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MagnetizationUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MassConcentrationUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MassFlowUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MassFluxUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MassFractionUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MassMomentOfInertiaUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MassUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MolarEnergyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MolarEntropyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MolarMassUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/MolarityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/PermeabilityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/PermittivityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/PorousMediumPermeabilityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/PowerDensityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/PowerRatioUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/PowerUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/PressureChangeRateUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/PressureUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/RatioChangeRateUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/RatioUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ReactiveEnergyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ReactivePowerUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ReciprocalAreaUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ReciprocalLengthUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/RelativeHumidityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/RotationalAccelerationUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/RotationalSpeedUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/RotationalStiffnessPerLengthUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/RotationalStiffnessUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ScalarUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/SolidAngleUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/SpecificEnergyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/SpecificEntropyUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/SpecificFuelConsumptionUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/SpecificVolumeUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/SpecificWeightUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/SpeedUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/StandardVolumeFlowUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/TemperatureChangeRateUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/TemperatureDeltaUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/TemperatureGradientUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/TemperatureUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ThermalConductivityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/ThermalResistanceUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/TorquePerLengthUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/TorqueUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/TurbidityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/VitaminAUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/VolumeConcentrationUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/VolumeFlowPerAreaUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/VolumeFlowUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/VolumePerLengthUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/VolumeUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/VolumetricHeatCapacityUnit.g.cs
#	UnitsNet.NanoFramework/GeneratedCode/Units/WarpingMomentOfInertiaUnit.g.cs
#	UnitsNet/GeneratedCode/Units/AccelerationUnit.g.cs
#	UnitsNet/GeneratedCode/Units/AmountOfSubstanceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/AmplitudeRatioUnit.g.cs
#	UnitsNet/GeneratedCode/Units/AngleUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ApparentEnergyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ApparentPowerUnit.g.cs
#	UnitsNet/GeneratedCode/Units/AreaDensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/AreaMomentOfInertiaUnit.g.cs
#	UnitsNet/GeneratedCode/Units/AreaUnit.g.cs
#	UnitsNet/GeneratedCode/Units/BitRateUnit.g.cs
#	UnitsNet/GeneratedCode/Units/BrakeSpecificFuelConsumptionUnit.g.cs
#	UnitsNet/GeneratedCode/Units/CapacitanceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/CoefficientOfThermalExpansionUnit.g.cs
#	UnitsNet/GeneratedCode/Units/CompressibilityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/DensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/DurationUnit.g.cs
#	UnitsNet/GeneratedCode/Units/DynamicViscosityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricAdmittanceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricChargeDensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricChargeUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricConductanceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricConductivityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricCurrentDensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricCurrentGradientUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricCurrentUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricFieldUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricInductanceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricPotentialAcUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricPotentialChangeRateUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricPotentialDcUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricPotentialUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricResistanceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricResistivityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ElectricSurfaceChargeDensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/EnergyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/EntropyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ForceChangeRateUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ForcePerLengthUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ForceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/FrequencyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/FuelEfficiencyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/HeatFluxUnit.g.cs
#	UnitsNet/GeneratedCode/Units/HeatTransferCoefficientUnit.g.cs
#	UnitsNet/GeneratedCode/Units/IlluminanceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/InformationUnit.g.cs
#	UnitsNet/GeneratedCode/Units/IrradianceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/IrradiationUnit.g.cs
#	UnitsNet/GeneratedCode/Units/JerkUnit.g.cs
#	UnitsNet/GeneratedCode/Units/KinematicViscosityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/LapseRateUnit.g.cs
#	UnitsNet/GeneratedCode/Units/LevelUnit.g.cs
#	UnitsNet/GeneratedCode/Units/LinearDensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/LinearPowerDensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/LuminosityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/LuminousFluxUnit.g.cs
#	UnitsNet/GeneratedCode/Units/LuminousIntensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MagneticFieldUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MagneticFluxUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MagnetizationUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MassConcentrationUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MassFlowUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MassFluxUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MassFractionUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MassMomentOfInertiaUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MassUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MolarEnergyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MolarEntropyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MolarMassUnit.g.cs
#	UnitsNet/GeneratedCode/Units/MolarityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/PermeabilityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/PermittivityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/PorousMediumPermeabilityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/PowerDensityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/PowerRatioUnit.g.cs
#	UnitsNet/GeneratedCode/Units/PowerUnit.g.cs
#	UnitsNet/GeneratedCode/Units/PressureChangeRateUnit.g.cs
#	UnitsNet/GeneratedCode/Units/PressureUnit.g.cs
#	UnitsNet/GeneratedCode/Units/RatioChangeRateUnit.g.cs
#	UnitsNet/GeneratedCode/Units/RatioUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ReactiveEnergyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ReactivePowerUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ReciprocalAreaUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ReciprocalLengthUnit.g.cs
#	UnitsNet/GeneratedCode/Units/RelativeHumidityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/RotationalAccelerationUnit.g.cs
#	UnitsNet/GeneratedCode/Units/RotationalSpeedUnit.g.cs
#	UnitsNet/GeneratedCode/Units/RotationalStiffnessPerLengthUnit.g.cs
#	UnitsNet/GeneratedCode/Units/RotationalStiffnessUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ScalarUnit.g.cs
#	UnitsNet/GeneratedCode/Units/SolidAngleUnit.g.cs
#	UnitsNet/GeneratedCode/Units/SpecificEnergyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/SpecificEntropyUnit.g.cs
#	UnitsNet/GeneratedCode/Units/SpecificFuelConsumptionUnit.g.cs
#	UnitsNet/GeneratedCode/Units/SpecificVolumeUnit.g.cs
#	UnitsNet/GeneratedCode/Units/SpecificWeightUnit.g.cs
#	UnitsNet/GeneratedCode/Units/SpeedUnit.g.cs
#	UnitsNet/GeneratedCode/Units/StandardVolumeFlowUnit.g.cs
#	UnitsNet/GeneratedCode/Units/TemperatureChangeRateUnit.g.cs
#	UnitsNet/GeneratedCode/Units/TemperatureDeltaUnit.g.cs
#	UnitsNet/GeneratedCode/Units/TemperatureGradientUnit.g.cs
#	UnitsNet/GeneratedCode/Units/TemperatureUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ThermalConductivityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/ThermalResistanceUnit.g.cs
#	UnitsNet/GeneratedCode/Units/TorquePerLengthUnit.g.cs
#	UnitsNet/GeneratedCode/Units/TorqueUnit.g.cs
#	UnitsNet/GeneratedCode/Units/TurbidityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/VitaminAUnit.g.cs
#	UnitsNet/GeneratedCode/Units/VolumeConcentrationUnit.g.cs
#	UnitsNet/GeneratedCode/Units/VolumeFlowPerAreaUnit.g.cs
#	UnitsNet/GeneratedCode/Units/VolumeFlowUnit.g.cs
#	UnitsNet/GeneratedCode/Units/VolumePerLengthUnit.g.cs
#	UnitsNet/GeneratedCode/Units/VolumeUnit.g.cs
#	UnitsNet/GeneratedCode/Units/VolumetricHeatCapacityUnit.g.cs
#	UnitsNet/GeneratedCode/Units/WarpingMomentOfInertiaUnit.g.cs
# Conflicts:
#	UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/Compressibility.g.cs
#	UnitsNet.WindowsRuntimeComponent/Properties/AssemblyInfo.cs
#	UnitsNet.WindowsRuntimeComponent/UnitsNet.WindowsRuntimeComponent.nuspec
There is no unit with enum value 0 anymore. In v4, this was Undefined.
- QuantityValue implements most of the INumber interface members / operators (operations  preserving decimal when possible, failing back to double, clamped to the real values- infinities excluded)
- changed the type of IQuantity.Value/As to QuantityValue (explicit cast required)
- added back the IEquatable interface: behavior depending on the runtime type of the quantity values (strict equality comparison for double/double)
- added back the fix for the non-reflexive CompareTo issue (and the corresponding tests)
- added a check preventing the possible stack overflow exception when calling ToUnit() with default(TUnit) (or any other invalid Enum value)
- DataContracts changed to reflect the possible use of either double or decimal as ValueType (the Json converters were not changed- but probably should be)
- removed the obsolete Json converter tests
The converter it tested no longer exists.
Fixes #1058 

Return the correct value type for quantities that use `decimal` internally; `Power, Information, BitRate`.

- Quantity properties return `decimal` or `double` based on internal value type.
- `IQuantity.Value` returns `QuantityValue`, which supports both double and decimal.
- `QuantityValue`: Implement IEquality<QuantityValue>, IComparable<QuantityValue>, IComparable.

Co-authored-by: Andreas Gullberg Larsen <andreas.larsen84@gmail.com>
@angularsen angularsen mentioned this pull request Nov 29, 2022
@angularsen angularsen closed this Nov 29, 2022
@angularsen
Copy link
Owner Author

I forgot there was already #982 for merging this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants