From 1adc76a0b5fd52a4365077534b05d57c5ad77416 Mon Sep 17 00:00:00 2001 From: Jentech Systems Date: Wed, 1 Feb 2017 15:21:40 +1030 Subject: [PATCH 1/2] Replace all occurences of the Greek lower case letter 'mu' with the correct unicode Micro symbol. Add tests to ensure all units that use the Micro scale are using the correct unicode character. --- UnitsNet.Tests/UnitSystemTests.cs | 58 ++++++++++++++++++++++++++ UnitsNet/Scripts/GenerateUnits.ps1 | 2 +- UnitsNet/UnitDefinitions/Flow.json | 2 +- UnitsNet/UnitDefinitions/Length.json | 2 +- UnitsNet/UnitDefinitions/VitaminA.json | 2 +- 5 files changed, 62 insertions(+), 4 deletions(-) diff --git a/UnitsNet.Tests/UnitSystemTests.cs b/UnitsNet.Tests/UnitSystemTests.cs index e2b646b196..41ea82e210 100644 --- a/UnitsNet.Tests/UnitSystemTests.cs +++ b/UnitsNet.Tests/UnitSystemTests.cs @@ -256,6 +256,64 @@ public string ScientificNotationUpperIntervalFormatting(double value) return Length.FromMeters(value).ToString(); } + [Test] + public void ShouldUseCorrectMicroSign() + { + // "\u00b5" = Micro sign + Assert.AreEqual(AccelerationUnit.MicrometerPerSecondSquared, Acceleration.ParseUnit("\u00b5m/s²")); + Assert.AreEqual(AmplitudeRatioUnit.DecibelMicrovolt, AmplitudeRatio.ParseUnit("dB\u00b5V")); + Assert.AreEqual(AngleUnit.Microdegree, Angle.ParseUnit("\u00b5°")); + Assert.AreEqual(AngleUnit.Microradian, Angle.ParseUnit("\u00b5rad")); + Assert.AreEqual(AreaUnit.SquareMicrometer, Area.ParseUnit("\u00b5m²")); + Assert.AreEqual(DurationUnit.Microsecond, Duration.ParseUnit("\u00b5s")); + Assert.AreEqual(ElectricCurrentUnit.Microampere, ElectricCurrent.ParseUnit("\u00b5A")); + Assert.AreEqual(ElectricPotentialUnit.Microvolt, ElectricPotential.ParseUnit("\u00b5V")); + Assert.AreEqual(FlowUnit.MicrolitersPerMinute, Flow.ParseUnit("\u00b5LPM")); + Assert.AreEqual(ForceChangeRateUnit.MicronewtonPerSecond, ForceChangeRate.ParseUnit("\u00b5N/s")); + Assert.AreEqual(ForcePerLengthUnit.MicronewtonPerMeter, ForcePerLength.ParseUnit("\u00b5N/m")); + Assert.AreEqual(KinematicViscosityUnit.Microstokes, KinematicViscosity.ParseUnit("\u00b5St")); + Assert.AreEqual(LengthUnit.Microinch, Length.ParseUnit("\u00b5in")); + Assert.AreEqual(LengthUnit.Micrometer, Length.ParseUnit("\u00b5m")); + Assert.AreEqual(MassFlowUnit.MicrogramPerSecond, MassFlow.ParseUnit("\u00b5g/S")); + Assert.AreEqual(MassUnit.Microgram, Mass.ParseUnit("\u00b5g")); + Assert.AreEqual(PowerUnit.Microwatt, Power.ParseUnit("\u00b5W")); + Assert.AreEqual(PressureUnit.Micropascal, Pressure.ParseUnit("\u00b5Pa")); + Assert.AreEqual(RotationalSpeedUnit.MicrodegreePerSecond, RotationalSpeed.ParseUnit("\u00b5°/s")); + Assert.AreEqual(RotationalSpeedUnit.MicroradianPerSecond, RotationalSpeed.ParseUnit("\u00b5rad/s")); + Assert.AreEqual(SpeedUnit.MicrometerPerMinute, Speed.ParseUnit("\u00b5m/min")); + Assert.AreEqual(SpeedUnit.MicrometerPerSecond, Speed.ParseUnit("\u00b5m/s")); + Assert.AreEqual(TemperatureChangeRateUnit.MicrodegreeCelsiusPerSecond, TemperatureChangeRate.ParseUnit("\u00b5°C/s")); + Assert.AreEqual(VolumeUnit.Microliter, Volume.ParseUnit("\u00b5l")); + Assert.AreEqual(VolumeUnit.CubicMicrometer, Volume.ParseUnit("\u00b5m³")); + + // "\u03bc" = Lower case greek letter 'Mu' + Assert.Throws(() => Acceleration.ParseUnit("\u03bcm/s²")); + Assert.Throws(() => AmplitudeRatio.ParseUnit("dB\u03bcV")); + Assert.Throws(() => Angle.ParseUnit("\u03bc°")); + Assert.Throws(() => Angle.ParseUnit("\u03bcrad")); + Assert.Throws(() => Area.ParseUnit("\u03bcm²")); + Assert.Throws(() => Duration.ParseUnit("\u03bcs")); + Assert.Throws(() => ElectricCurrent.ParseUnit("\u03bcA")); + Assert.Throws(() => ElectricPotential.ParseUnit("\u03bcV")); + Assert.Throws(() => Flow.ParseUnit("\u03bcLPM")); + Assert.Throws(() => ForceChangeRate.ParseUnit("\u03bcN/s")); + Assert.Throws(() => ForcePerLength.ParseUnit("\u03bcN/m")); + Assert.Throws(() => KinematicViscosity.ParseUnit("\u03bcSt")); + Assert.Throws(() => Length.ParseUnit("\u03bcin")); + Assert.Throws(() => Length.ParseUnit("\u03bcm")); + Assert.Throws(() => MassFlow.ParseUnit("\u03bcg/S")); + Assert.Throws(() => Mass.ParseUnit("\u03bcg")); + Assert.Throws(() => Power.ParseUnit("\u03bcW")); + Assert.Throws(() => Pressure.ParseUnit("\u03bcPa")); + Assert.Throws(() => RotationalSpeed.ParseUnit("\u03bc°/s")); + Assert.Throws(() => RotationalSpeed.ParseUnit("\u03bcrad/s")); + Assert.Throws(() => Speed.ParseUnit("\u03bcm/min")); + Assert.Throws(() => Speed.ParseUnit("\u03bcm/s")); + Assert.Throws(() => TemperatureChangeRate.ParseUnit("\u03bc°C/s")); + Assert.Throws(() => Volume.ParseUnit("\u03bcl")); + Assert.Throws(() => Volume.ParseUnit("\u03bcm³")); + } + [Test] public void AllUnitAbbreviationsImplemented([Values("en-US", "nb-NO", "ru-RU")] string cultureName) { diff --git a/UnitsNet/Scripts/GenerateUnits.ps1 b/UnitsNet/Scripts/GenerateUnits.ps1 index 3b70fb8245..66df7c1fb5 100644 --- a/UnitsNet/Scripts/GenerateUnits.ps1 +++ b/UnitsNet/Scripts/GenerateUnits.ps1 @@ -173,7 +173,7 @@ function Add-PrefixUnits { "Deci" { "d", "1e-1d"; break; } "Centi" { "c", "1e-2d"; break; } "Milli" { "m", "1e-3d"; break; } - "Micro" { "μ", "1e-6d"; break; } + "Micro" { "µ", "1e-6d"; break; } "Nano" { "n", "1e-9d"; break; } # Optimization, move less frequently used prefixes to the end diff --git a/UnitsNet/UnitDefinitions/Flow.json b/UnitsNet/UnitDefinitions/Flow.json index fde3ceabdc..5c49e8c1f3 100644 --- a/UnitsNet/UnitDefinitions/Flow.json +++ b/UnitsNet/UnitDefinitions/Flow.json @@ -69,7 +69,7 @@ { "Culture": "en-US", "Abbreviations": [ "LPM" ], - "AbbreviationsWithPrefixes": [ "nLPM", "μLPM", "mLPM", "cLPM", "dLPM", "kLPM" ] + "AbbreviationsWithPrefixes": [ "nLPM", "µLPM", "mLPM", "cLPM", "dLPM", "kLPM" ] } ] }, diff --git a/UnitsNet/UnitDefinitions/Length.json b/UnitsNet/UnitDefinitions/Length.json index 3de846ae15..01f7ad5be0 100644 --- a/UnitsNet/UnitDefinitions/Length.json +++ b/UnitsNet/UnitDefinitions/Length.json @@ -137,7 +137,7 @@ "Localization": [ { "Culture": "en-US", - "Abbreviations": [ "μin" ] + "Abbreviations": [ "µin" ] }, { "Culture": "ru-RU", diff --git a/UnitsNet/UnitDefinitions/VitaminA.json b/UnitsNet/UnitDefinitions/VitaminA.json index b31d1c2dae..412a37b713 100644 --- a/UnitsNet/UnitDefinitions/VitaminA.json +++ b/UnitsNet/UnitDefinitions/VitaminA.json @@ -1,7 +1,7 @@ { "Name": "VitaminA", "BaseUnit": "InternationalUnit", - "XmlDoc": "Vitamin A: 1 IU is the biological equivalent of 0.3 μg retinol, or of 0.6 μg beta-carotene.", + "XmlDoc": "Vitamin A: 1 IU is the biological equivalent of 0.3 µg retinol, or of 0.6 µg beta-carotene.", "Units": [ { "SingularName": "InternationalUnit", From db7d0517b59662044bcbdc6440d800794269f50d Mon Sep 17 00:00:00 2001 From: Jentech Systems Date: Wed, 1 Feb 2017 15:51:35 +1030 Subject: [PATCH 2/2] Updating auto-generated files with changes resulting from replace the greek letter 'mu' with the correct Micro sign character. --- .../GeneratedCode/UnitClasses/VitaminA.g.cs | 2 +- .../GeneratedCode/UnitSystem.Default.g.cs | 52 +++++++++---------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/UnitsNet/GeneratedCode/UnitClasses/VitaminA.g.cs b/UnitsNet/GeneratedCode/UnitClasses/VitaminA.g.cs index 30c1e5f67e..5b8b1c4efc 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/VitaminA.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/VitaminA.g.cs @@ -55,7 +55,7 @@ namespace UnitsNet { /// - /// Vitamin A: 1 IU is the biological equivalent of 0.3 μg retinol, or of 0.6 μg beta-carotene. + /// Vitamin A: 1 IU is the biological equivalent of 0.3 µg retinol, or of 0.6 µg beta-carotene. /// // ReSharper disable once PartialTypeWithSinglePart #if WINDOWS_UWP diff --git a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs index 2e20d8150a..b4241dda67 100644 --- a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs +++ b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs @@ -77,7 +77,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) AccelerationUnit.MicrometerPerSecondSquared, new[] { - new AbbreviationsForCulture("en-US", "μm/s²"), + new AbbreviationsForCulture("en-US", "µm/s²"), }), new CulturesForEnumValue((int) AccelerationUnit.MillimeterPerSecondSquared, new[] @@ -154,14 +154,14 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) AngleUnit.Microdegree, new[] { - new AbbreviationsForCulture("en-US", "μ°"), - new AbbreviationsForCulture("ru-RU", "μ°"), + new AbbreviationsForCulture("en-US", "µ°"), + new AbbreviationsForCulture("ru-RU", "µ°"), }), new CulturesForEnumValue((int) AngleUnit.Microradian, new[] { - new AbbreviationsForCulture("en-US", "μrad"), - new AbbreviationsForCulture("ru-RU", "μрад"), + new AbbreviationsForCulture("en-US", "µrad"), + new AbbreviationsForCulture("ru-RU", "µрад"), }), new CulturesForEnumValue((int) AngleUnit.Millidegree, new[] @@ -472,7 +472,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) ElectricCurrentUnit.Microampere, new[] { - new AbbreviationsForCulture("en-US", "μA"), + new AbbreviationsForCulture("en-US", "µA"), }), new CulturesForEnumValue((int) ElectricCurrentUnit.Milliampere, new[] @@ -503,8 +503,8 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) ElectricPotentialUnit.Microvolt, new[] { - new AbbreviationsForCulture("en-US", "μV"), - new AbbreviationsForCulture("ru-RU", "μВ"), + new AbbreviationsForCulture("en-US", "µV"), + new AbbreviationsForCulture("ru-RU", "µВ"), }), new CulturesForEnumValue((int) ElectricPotentialUnit.Millivolt, new[] @@ -662,7 +662,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) FlowUnit.MicrolitersPerMinute, new[] { - new AbbreviationsForCulture("en-US", "μLPM"), + new AbbreviationsForCulture("en-US", "µLPM"), }), new CulturesForEnumValue((int) FlowUnit.MillilitersPerMinute, new[] @@ -773,7 +773,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) ForceChangeRateUnit.MicronewtonPerSecond, new[] { - new AbbreviationsForCulture("en-US", "μN/s"), + new AbbreviationsForCulture("en-US", "µN/s"), }), new CulturesForEnumValue((int) ForceChangeRateUnit.MillinewtonPerSecond, new[] @@ -823,7 +823,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) ForcePerLengthUnit.MicronewtonPerMeter, new[] { - new AbbreviationsForCulture("en-US", "μN/m"), + new AbbreviationsForCulture("en-US", "µN/m"), }), new CulturesForEnumValue((int) ForcePerLengthUnit.MillinewtonPerMeter, new[] @@ -1043,7 +1043,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) KinematicViscosityUnit.Microstokes, new[] { - new AbbreviationsForCulture("en-US", "μSt"), + new AbbreviationsForCulture("en-US", "µSt"), new AbbreviationsForCulture("ru-RU", "мкСт"), }), new CulturesForEnumValue((int) KinematicViscosityUnit.Millistokes, @@ -1113,13 +1113,13 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) LengthUnit.Microinch, new[] { - new AbbreviationsForCulture("en-US", "μin"), + new AbbreviationsForCulture("en-US", "µin"), new AbbreviationsForCulture("ru-RU", "микродюйм"), }), new CulturesForEnumValue((int) LengthUnit.Micrometer, new[] { - new AbbreviationsForCulture("en-US", "μm"), + new AbbreviationsForCulture("en-US", "µm"), new AbbreviationsForCulture("ru-RU", "мкм"), }), new CulturesForEnumValue((int) LengthUnit.Mil, @@ -1238,7 +1238,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) MassUnit.Microgram, new[] { - new AbbreviationsForCulture("en-US", "μg"), + new AbbreviationsForCulture("en-US", "µg"), new AbbreviationsForCulture("ru-RU", "мкг"), }), new CulturesForEnumValue((int) MassUnit.Milligram, @@ -1323,7 +1323,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) MassFlowUnit.MicrogramPerSecond, new[] { - new AbbreviationsForCulture("en-US", "μg/S"), + new AbbreviationsForCulture("en-US", "µg/S"), }), new CulturesForEnumValue((int) MassFlowUnit.MilligramPerSecond, new[] @@ -1392,7 +1392,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) PowerUnit.Microwatt, new[] { - new AbbreviationsForCulture("en-US", "μW"), + new AbbreviationsForCulture("en-US", "µW"), }), new CulturesForEnumValue((int) PowerUnit.Milliwatt, new[] @@ -1557,7 +1557,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) PressureUnit.Micropascal, new[] { - new AbbreviationsForCulture("en-US", "μPa"), + new AbbreviationsForCulture("en-US", "µPa"), new AbbreviationsForCulture("ru-RU", "мкПа"), }), new CulturesForEnumValue((int) PressureUnit.Millibar, @@ -1725,14 +1725,14 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) RotationalSpeedUnit.MicrodegreePerSecond, new[] { - new AbbreviationsForCulture("en-US", "μ°/s"), - new AbbreviationsForCulture("ru-RU", "μ°/с"), + new AbbreviationsForCulture("en-US", "µ°/s"), + new AbbreviationsForCulture("ru-RU", "µ°/с"), }), new CulturesForEnumValue((int) RotationalSpeedUnit.MicroradianPerSecond, new[] { - new AbbreviationsForCulture("en-US", "μrad/s"), - new AbbreviationsForCulture("ru-RU", "μрад/с"), + new AbbreviationsForCulture("en-US", "µrad/s"), + new AbbreviationsForCulture("ru-RU", "µрад/с"), }), new CulturesForEnumValue((int) RotationalSpeedUnit.MillidegreePerSecond, new[] @@ -1971,12 +1971,12 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) SpeedUnit.MicrometerPerMinute, new[] { - new AbbreviationsForCulture("en-US", "μm/min"), + new AbbreviationsForCulture("en-US", "µm/min"), }), new CulturesForEnumValue((int) SpeedUnit.MicrometerPerSecond, new[] { - new AbbreviationsForCulture("en-US", "μm/s"), + new AbbreviationsForCulture("en-US", "µm/s"), }), new CulturesForEnumValue((int) SpeedUnit.MilePerHour, new[] @@ -2084,7 +2084,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) TemperatureChangeRateUnit.MicrodegreeCelsiusPerSecond, new[] { - new AbbreviationsForCulture("en-US", "μ°C/s"), + new AbbreviationsForCulture("en-US", "µ°C/s"), }), new CulturesForEnumValue((int) TemperatureChangeRateUnit.MillidegreeCelsiusPerSecond, new[] @@ -2357,7 +2357,7 @@ private static readonly ReadOnlyCollection DefaultLocalization new CulturesForEnumValue((int) VolumeUnit.Microliter, new[] { - new AbbreviationsForCulture("en-US", "μl"), + new AbbreviationsForCulture("en-US", "µl"), new AbbreviationsForCulture("ru-RU", "мкл"), }), new CulturesForEnumValue((int) VolumeUnit.Milliliter,