Skip to content

Commit d9dcb40

Browse files
authored
Merge pull request #224 from JenTechSystems/223_parse_micro_units_correctly
Replace all occurences of the Greek lower case letter 'mu' with the c…
2 parents 6b940b1 + db7d051 commit d9dcb40

File tree

7 files changed

+89
-31
lines changed

7 files changed

+89
-31
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/GeneratedCode/UnitClasses/VitaminA.g.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
namespace UnitsNet
5656
{
5757
/// <summary>
58-
/// Vitamin A: 1 IU is the biological equivalent of 0.3 μg retinol, or of 0.6 μg beta-carotene.
58+
/// Vitamin A: 1 IU is the biological equivalent of 0.3 µg retinol, or of 0.6 µg beta-carotene.
5959
/// </summary>
6060
// ReSharper disable once PartialTypeWithSinglePart
6161
#if WINDOWS_UWP

UnitsNet/GeneratedCode/UnitSystem.Default.g.cs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
7777
new CulturesForEnumValue((int) AccelerationUnit.MicrometerPerSecondSquared,
7878
new[]
7979
{
80-
new AbbreviationsForCulture("en-US", "μm/s²"),
80+
new AbbreviationsForCulture("en-US", "µm/s²"),
8181
}),
8282
new CulturesForEnumValue((int) AccelerationUnit.MillimeterPerSecondSquared,
8383
new[]
@@ -154,14 +154,14 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
154154
new CulturesForEnumValue((int) AngleUnit.Microdegree,
155155
new[]
156156
{
157-
new AbbreviationsForCulture("en-US", "μ°"),
158-
new AbbreviationsForCulture("ru-RU", "μ°"),
157+
new AbbreviationsForCulture("en-US", "µ°"),
158+
new AbbreviationsForCulture("ru-RU", "µ°"),
159159
}),
160160
new CulturesForEnumValue((int) AngleUnit.Microradian,
161161
new[]
162162
{
163-
new AbbreviationsForCulture("en-US", "μrad"),
164-
new AbbreviationsForCulture("ru-RU", "μрад"),
163+
new AbbreviationsForCulture("en-US", "µrad"),
164+
new AbbreviationsForCulture("ru-RU", "µрад"),
165165
}),
166166
new CulturesForEnumValue((int) AngleUnit.Millidegree,
167167
new[]
@@ -472,7 +472,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
472472
new CulturesForEnumValue((int) ElectricCurrentUnit.Microampere,
473473
new[]
474474
{
475-
new AbbreviationsForCulture("en-US", "μA"),
475+
new AbbreviationsForCulture("en-US", "µA"),
476476
}),
477477
new CulturesForEnumValue((int) ElectricCurrentUnit.Milliampere,
478478
new[]
@@ -503,8 +503,8 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
503503
new CulturesForEnumValue((int) ElectricPotentialUnit.Microvolt,
504504
new[]
505505
{
506-
new AbbreviationsForCulture("en-US", "μV"),
507-
new AbbreviationsForCulture("ru-RU", "μВ"),
506+
new AbbreviationsForCulture("en-US", "µV"),
507+
new AbbreviationsForCulture("ru-RU", "µВ"),
508508
}),
509509
new CulturesForEnumValue((int) ElectricPotentialUnit.Millivolt,
510510
new[]
@@ -662,7 +662,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
662662
new CulturesForEnumValue((int) FlowUnit.MicrolitersPerMinute,
663663
new[]
664664
{
665-
new AbbreviationsForCulture("en-US", "μLPM"),
665+
new AbbreviationsForCulture("en-US", "µLPM"),
666666
}),
667667
new CulturesForEnumValue((int) FlowUnit.MillilitersPerMinute,
668668
new[]
@@ -773,7 +773,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
773773
new CulturesForEnumValue((int) ForceChangeRateUnit.MicronewtonPerSecond,
774774
new[]
775775
{
776-
new AbbreviationsForCulture("en-US", "μN/s"),
776+
new AbbreviationsForCulture("en-US", "µN/s"),
777777
}),
778778
new CulturesForEnumValue((int) ForceChangeRateUnit.MillinewtonPerSecond,
779779
new[]
@@ -823,7 +823,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
823823
new CulturesForEnumValue((int) ForcePerLengthUnit.MicronewtonPerMeter,
824824
new[]
825825
{
826-
new AbbreviationsForCulture("en-US", "μN/m"),
826+
new AbbreviationsForCulture("en-US", "µN/m"),
827827
}),
828828
new CulturesForEnumValue((int) ForcePerLengthUnit.MillinewtonPerMeter,
829829
new[]
@@ -1043,7 +1043,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
10431043
new CulturesForEnumValue((int) KinematicViscosityUnit.Microstokes,
10441044
new[]
10451045
{
1046-
new AbbreviationsForCulture("en-US", "μSt"),
1046+
new AbbreviationsForCulture("en-US", "µSt"),
10471047
new AbbreviationsForCulture("ru-RU", "мкСт"),
10481048
}),
10491049
new CulturesForEnumValue((int) KinematicViscosityUnit.Millistokes,
@@ -1113,13 +1113,13 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
11131113
new CulturesForEnumValue((int) LengthUnit.Microinch,
11141114
new[]
11151115
{
1116-
new AbbreviationsForCulture("en-US", "μin"),
1116+
new AbbreviationsForCulture("en-US", "µin"),
11171117
new AbbreviationsForCulture("ru-RU", "микродюйм"),
11181118
}),
11191119
new CulturesForEnumValue((int) LengthUnit.Micrometer,
11201120
new[]
11211121
{
1122-
new AbbreviationsForCulture("en-US", "μm"),
1122+
new AbbreviationsForCulture("en-US", "µm"),
11231123
new AbbreviationsForCulture("ru-RU", "мкм"),
11241124
}),
11251125
new CulturesForEnumValue((int) LengthUnit.Mil,
@@ -1238,7 +1238,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
12381238
new CulturesForEnumValue((int) MassUnit.Microgram,
12391239
new[]
12401240
{
1241-
new AbbreviationsForCulture("en-US", "μg"),
1241+
new AbbreviationsForCulture("en-US", "µg"),
12421242
new AbbreviationsForCulture("ru-RU", "мкг"),
12431243
}),
12441244
new CulturesForEnumValue((int) MassUnit.Milligram,
@@ -1323,7 +1323,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
13231323
new CulturesForEnumValue((int) MassFlowUnit.MicrogramPerSecond,
13241324
new[]
13251325
{
1326-
new AbbreviationsForCulture("en-US", "μg/S"),
1326+
new AbbreviationsForCulture("en-US", "µg/S"),
13271327
}),
13281328
new CulturesForEnumValue((int) MassFlowUnit.MilligramPerSecond,
13291329
new[]
@@ -1392,7 +1392,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
13921392
new CulturesForEnumValue((int) PowerUnit.Microwatt,
13931393
new[]
13941394
{
1395-
new AbbreviationsForCulture("en-US", "μW"),
1395+
new AbbreviationsForCulture("en-US", "µW"),
13961396
}),
13971397
new CulturesForEnumValue((int) PowerUnit.Milliwatt,
13981398
new[]
@@ -1557,7 +1557,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
15571557
new CulturesForEnumValue((int) PressureUnit.Micropascal,
15581558
new[]
15591559
{
1560-
new AbbreviationsForCulture("en-US", "μPa"),
1560+
new AbbreviationsForCulture("en-US", "µPa"),
15611561
new AbbreviationsForCulture("ru-RU", "мкПа"),
15621562
}),
15631563
new CulturesForEnumValue((int) PressureUnit.Millibar,
@@ -1725,14 +1725,14 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
17251725
new CulturesForEnumValue((int) RotationalSpeedUnit.MicrodegreePerSecond,
17261726
new[]
17271727
{
1728-
new AbbreviationsForCulture("en-US", "μ°/s"),
1729-
new AbbreviationsForCulture("ru-RU", "μ°/с"),
1728+
new AbbreviationsForCulture("en-US", "µ°/s"),
1729+
new AbbreviationsForCulture("ru-RU", "µ°/с"),
17301730
}),
17311731
new CulturesForEnumValue((int) RotationalSpeedUnit.MicroradianPerSecond,
17321732
new[]
17331733
{
1734-
new AbbreviationsForCulture("en-US", "μrad/s"),
1735-
new AbbreviationsForCulture("ru-RU", "μрад/с"),
1734+
new AbbreviationsForCulture("en-US", "µrad/s"),
1735+
new AbbreviationsForCulture("ru-RU", "µрад/с"),
17361736
}),
17371737
new CulturesForEnumValue((int) RotationalSpeedUnit.MillidegreePerSecond,
17381738
new[]
@@ -1971,12 +1971,12 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
19711971
new CulturesForEnumValue((int) SpeedUnit.MicrometerPerMinute,
19721972
new[]
19731973
{
1974-
new AbbreviationsForCulture("en-US", "μm/min"),
1974+
new AbbreviationsForCulture("en-US", "µm/min"),
19751975
}),
19761976
new CulturesForEnumValue((int) SpeedUnit.MicrometerPerSecond,
19771977
new[]
19781978
{
1979-
new AbbreviationsForCulture("en-US", "μm/s"),
1979+
new AbbreviationsForCulture("en-US", "µm/s"),
19801980
}),
19811981
new CulturesForEnumValue((int) SpeedUnit.MilePerHour,
19821982
new[]
@@ -2084,7 +2084,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
20842084
new CulturesForEnumValue((int) TemperatureChangeRateUnit.MicrodegreeCelsiusPerSecond,
20852085
new[]
20862086
{
2087-
new AbbreviationsForCulture("en-US", "μ°C/s"),
2087+
new AbbreviationsForCulture("en-US", "µ°C/s"),
20882088
}),
20892089
new CulturesForEnumValue((int) TemperatureChangeRateUnit.MillidegreeCelsiusPerSecond,
20902090
new[]
@@ -2357,7 +2357,7 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
23572357
new CulturesForEnumValue((int) VolumeUnit.Microliter,
23582358
new[]
23592359
{
2360-
new AbbreviationsForCulture("en-US", "μl"),
2360+
new AbbreviationsForCulture("en-US", "µl"),
23612361
new AbbreviationsForCulture("ru-RU", "мкл"),
23622362
}),
23632363
new CulturesForEnumValue((int) VolumeUnit.Milliliter,

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)