Skip to content

Commit 1adc76a

Browse files
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.
1 parent 6b940b1 commit 1adc76a

File tree

5 files changed

+62
-4
lines changed

5 files changed

+62
-4
lines changed

UnitsNet.Tests/UnitSystemTests.cs

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,64 @@ public string ScientificNotationUpperIntervalFormatting(double value)
256256
return Length.FromMeters(value).ToString();
257257
}
258258

259+
[Test]
260+
public void ShouldUseCorrectMicroSign()
261+
{
262+
// "\u00b5" = Micro sign
263+
Assert.AreEqual(AccelerationUnit.MicrometerPerSecondSquared, Acceleration.ParseUnit("\u00b5m/s²"));
264+
Assert.AreEqual(AmplitudeRatioUnit.DecibelMicrovolt, AmplitudeRatio.ParseUnit("dB\u00b5V"));
265+
Assert.AreEqual(AngleUnit.Microdegree, Angle.ParseUnit("\u00b5°"));
266+
Assert.AreEqual(AngleUnit.Microradian, Angle.ParseUnit("\u00b5rad"));
267+
Assert.AreEqual(AreaUnit.SquareMicrometer, Area.ParseUnit("\u00b5m²"));
268+
Assert.AreEqual(DurationUnit.Microsecond, Duration.ParseUnit("\u00b5s"));
269+
Assert.AreEqual(ElectricCurrentUnit.Microampere, ElectricCurrent.ParseUnit("\u00b5A"));
270+
Assert.AreEqual(ElectricPotentialUnit.Microvolt, ElectricPotential.ParseUnit("\u00b5V"));
271+
Assert.AreEqual(FlowUnit.MicrolitersPerMinute, Flow.ParseUnit("\u00b5LPM"));
272+
Assert.AreEqual(ForceChangeRateUnit.MicronewtonPerSecond, ForceChangeRate.ParseUnit("\u00b5N/s"));
273+
Assert.AreEqual(ForcePerLengthUnit.MicronewtonPerMeter, ForcePerLength.ParseUnit("\u00b5N/m"));
274+
Assert.AreEqual(KinematicViscosityUnit.Microstokes, KinematicViscosity.ParseUnit("\u00b5St"));
275+
Assert.AreEqual(LengthUnit.Microinch, Length.ParseUnit("\u00b5in"));
276+
Assert.AreEqual(LengthUnit.Micrometer, Length.ParseUnit("\u00b5m"));
277+
Assert.AreEqual(MassFlowUnit.MicrogramPerSecond, MassFlow.ParseUnit("\u00b5g/S"));
278+
Assert.AreEqual(MassUnit.Microgram, Mass.ParseUnit("\u00b5g"));
279+
Assert.AreEqual(PowerUnit.Microwatt, Power.ParseUnit("\u00b5W"));
280+
Assert.AreEqual(PressureUnit.Micropascal, Pressure.ParseUnit("\u00b5Pa"));
281+
Assert.AreEqual(RotationalSpeedUnit.MicrodegreePerSecond, RotationalSpeed.ParseUnit("\u00b5°/s"));
282+
Assert.AreEqual(RotationalSpeedUnit.MicroradianPerSecond, RotationalSpeed.ParseUnit("\u00b5rad/s"));
283+
Assert.AreEqual(SpeedUnit.MicrometerPerMinute, Speed.ParseUnit("\u00b5m/min"));
284+
Assert.AreEqual(SpeedUnit.MicrometerPerSecond, Speed.ParseUnit("\u00b5m/s"));
285+
Assert.AreEqual(TemperatureChangeRateUnit.MicrodegreeCelsiusPerSecond, TemperatureChangeRate.ParseUnit("\u00b5°C/s"));
286+
Assert.AreEqual(VolumeUnit.Microliter, Volume.ParseUnit("\u00b5l"));
287+
Assert.AreEqual(VolumeUnit.CubicMicrometer, Volume.ParseUnit("\u00b5m³"));
288+
289+
// "\u03bc" = Lower case greek letter 'Mu'
290+
Assert.Throws<UnitsNetException>(() => Acceleration.ParseUnit("\u03bcm/s²"));
291+
Assert.Throws<UnitsNetException>(() => AmplitudeRatio.ParseUnit("dB\u03bcV"));
292+
Assert.Throws<UnitsNetException>(() => Angle.ParseUnit("\u03bc°"));
293+
Assert.Throws<UnitsNetException>(() => Angle.ParseUnit("\u03bcrad"));
294+
Assert.Throws<UnitsNetException>(() => Area.ParseUnit("\u03bcm²"));
295+
Assert.Throws<UnitsNetException>(() => Duration.ParseUnit("\u03bcs"));
296+
Assert.Throws<UnitsNetException>(() => ElectricCurrent.ParseUnit("\u03bcA"));
297+
Assert.Throws<UnitsNetException>(() => ElectricPotential.ParseUnit("\u03bcV"));
298+
Assert.Throws<UnitsNetException>(() => Flow.ParseUnit("\u03bcLPM"));
299+
Assert.Throws<UnitsNetException>(() => ForceChangeRate.ParseUnit("\u03bcN/s"));
300+
Assert.Throws<UnitsNetException>(() => ForcePerLength.ParseUnit("\u03bcN/m"));
301+
Assert.Throws<UnitsNetException>(() => KinematicViscosity.ParseUnit("\u03bcSt"));
302+
Assert.Throws<UnitsNetException>(() => Length.ParseUnit("\u03bcin"));
303+
Assert.Throws<UnitsNetException>(() => Length.ParseUnit("\u03bcm"));
304+
Assert.Throws<UnitsNetException>(() => MassFlow.ParseUnit("\u03bcg/S"));
305+
Assert.Throws<UnitsNetException>(() => Mass.ParseUnit("\u03bcg"));
306+
Assert.Throws<UnitsNetException>(() => Power.ParseUnit("\u03bcW"));
307+
Assert.Throws<UnitsNetException>(() => Pressure.ParseUnit("\u03bcPa"));
308+
Assert.Throws<UnitsNetException>(() => RotationalSpeed.ParseUnit("\u03bc°/s"));
309+
Assert.Throws<UnitsNetException>(() => RotationalSpeed.ParseUnit("\u03bcrad/s"));
310+
Assert.Throws<UnitsNetException>(() => Speed.ParseUnit("\u03bcm/min"));
311+
Assert.Throws<UnitsNetException>(() => Speed.ParseUnit("\u03bcm/s"));
312+
Assert.Throws<UnitsNetException>(() => TemperatureChangeRate.ParseUnit("\u03bc°C/s"));
313+
Assert.Throws<UnitsNetException>(() => Volume.ParseUnit("\u03bcl"));
314+
Assert.Throws<UnitsNetException>(() => Volume.ParseUnit("\u03bcm³"));
315+
}
316+
259317
[Test]
260318
public void AllUnitAbbreviationsImplemented([Values("en-US", "nb-NO", "ru-RU")] string cultureName)
261319
{

UnitsNet/Scripts/GenerateUnits.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ function Add-PrefixUnits {
173173
"Deci" { "d", "1e-1d"; break; }
174174
"Centi" { "c", "1e-2d"; break; }
175175
"Milli" { "m", "1e-3d"; break; }
176-
"Micro" { "μ", "1e-6d"; break; }
176+
"Micro" { "µ", "1e-6d"; break; }
177177
"Nano" { "n", "1e-9d"; break; }
178178

179179
# Optimization, move less frequently used prefixes to the end

UnitsNet/UnitDefinitions/Flow.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
{
7070
"Culture": "en-US",
7171
"Abbreviations": [ "LPM" ],
72-
"AbbreviationsWithPrefixes": [ "nLPM", "μLPM", "mLPM", "cLPM", "dLPM", "kLPM" ]
72+
"AbbreviationsWithPrefixes": [ "nLPM", "µLPM", "mLPM", "cLPM", "dLPM", "kLPM" ]
7373
}
7474
]
7575
},

UnitsNet/UnitDefinitions/Length.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
"Localization": [
138138
{
139139
"Culture": "en-US",
140-
"Abbreviations": [ "μin" ]
140+
"Abbreviations": [ "µin" ]
141141
},
142142
{
143143
"Culture": "ru-RU",

UnitsNet/UnitDefinitions/VitaminA.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"Name": "VitaminA",
33
"BaseUnit": "InternationalUnit",
4-
"XmlDoc": "Vitamin A: 1 IU is the biological equivalent of 0.3 μg retinol, or of 0.6 μg beta-carotene.",
4+
"XmlDoc": "Vitamin A: 1 IU is the biological equivalent of 0.3 µg retinol, or of 0.6 µg beta-carotene.",
55
"Units": [
66
{
77
"SingularName": "InternationalUnit",

0 commit comments

Comments
 (0)