Skip to content

Commit 2256d07

Browse files
author
George Zhuikov
committed
Add unittests, Revolution, localization to Russian, English (US)
1 parent b2aa80a commit 2256d07

13 files changed

+453
-54
lines changed

Src/UnitsNet/Flow.cs

+9-6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ namespace UnitsNet
88
/// </summary>
99
public struct Flow : IComparable, IComparable<Flow>
1010
{
11+
private const double SecondToMinuteRatio = 60;
12+
private const double SecondToHourRatio = 3600;
13+
1114
public readonly double CubicMeterPerSecond;
1215

1316
private Flow(double cubicMeterPerSecond)
@@ -18,7 +21,7 @@ private Flow(double cubicMeterPerSecond)
1821

1922
public double CubicMeterPerHour
2023
{
21-
get { return CubicMeterPerSecond / 3600; }
24+
get { return CubicMeterPerSecond / SecondToHourRatio; }
2225
}
2326

2427
#region Static
@@ -28,14 +31,14 @@ public static Flow Zero
2831
get { return new Flow(); }
2932
}
3033

31-
public static Flow FromCubicMeterPerHour(double cmph)
34+
public static Flow FromCubicMeterPerHour(double cmh)
3235
{
33-
return new Flow(cmph * 3600);
36+
return new Flow(cmh * SecondToHourRatio);
3437
}
3538

36-
public static Flow FromCubicMeterPerSecond(double cubicMeterPerSecond)
39+
public static Flow FromCubicMeterPerSecond(double cms)
3740
{
38-
return new Flow(cubicMeterPerSecond);
41+
return new Flow(cms);
3942
}
4043

4144
#endregion
@@ -144,4 +147,4 @@ public override string ToString()
144147
return CubicMeterPerSecond + " " + UnitSystem.Create(CultureInfo.CurrentCulture).GetDefaultAbbreviation(Unit.CubicMeterPerSecond);
145148
}
146149
}
147-
}
150+
}

Src/UnitsNet/Pressure.cs

+13-2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public struct Pressure : IComparable, IComparable<Pressure>
3939
private const double AtmToPaRatio = 101325;
4040
private const double TorrToPaRatio = 1.3332266752*1E2;
4141
private const double PsiToPaRatio = 6.89464975179*1E3;
42+
private const double KFSCToPaRatio = 98066.5;
4243

4344
/// <summary>
4445
/// Pressure in pascal.
@@ -62,6 +63,11 @@ public double MegaPascals
6263
get { return Pascals / MpaToPaRatio; }
6364
}
6465

66+
public double KilogramForcePerSquareCentimeter
67+
{
68+
get { return Pascals / KFSCToPaRatio; }
69+
}
70+
6571
public double NewtonsPerSquareMeter
6672
{
6773
get { return Pascals/Nm2ToPaRatio; }
@@ -137,9 +143,14 @@ public static Pressure FromKiloPascals(double kpa)
137143
return new Pressure(KpaToPaRatio*kpa);
138144
}
139145

140-
public static Pressure FromMegaPascals(double kpa)
146+
public static Pressure FromMegaPascals(double mpa)
147+
{
148+
return new Pressure(MpaToPaRatio * mpa);
149+
}
150+
151+
public static Pressure FromKilogramForcePerSquareCentimeter(double kfsc)
141152
{
142-
return new Pressure(MpaToPaRatio * kpa);
153+
return new Pressure(KFSCToPaRatio * kfsc);
143154
}
144155

145156
public static Pressure FromNewtonsPerSquareCentimeter(double nsc)

Src/UnitsNet/UnitConverter.cs

+3
Original file line numberDiff line numberDiff line change
@@ -624,6 +624,9 @@ private static bool TryConvert(Pressure p, Unit toUnit, out double newValue)
624624
case Unit.MegaPascal:
625625
newValue = p.MegaPascals;
626626
return true;
627+
case Unit.KilogramForcePerSquareCentimeter:
628+
newValue = p.KilogramForcePerSquareCentimeter;
629+
return true;
627630
case Unit.Psi:
628631
newValue = p.Psi;
629632
return true;

Src/UnitsNet/UnitSystem.cs

+142-40
Original file line numberDiff line numberDiff line change
@@ -144,36 +144,80 @@ private void CreateRussian()
144144
// Note: For units with multiple abbreviations, the first one is used in GetDefaultAbbreviation().
145145
MapUnitToAbbreviation(Unit.Undefined, "(нет ед.изм.)");
146146

147+
// Length
148+
MapUnitToAbbreviation(Unit.Kilometer, "км");
149+
MapUnitToAbbreviation(Unit.Meter, "м");
150+
MapUnitToAbbreviation(Unit.Decimeter, "дм");
151+
MapUnitToAbbreviation(Unit.Centimeter, "см");
152+
MapUnitToAbbreviation(Unit.Millimeter, "мм");
153+
MapUnitToAbbreviation(Unit.Micrometer, "мкм");
154+
MapUnitToAbbreviation(Unit.Nanometer, "нм");
155+
147156
// Masses
157+
MapUnitToAbbreviation(Unit.Megatonne, "Мт");
158+
MapUnitToAbbreviation(Unit.Kilotonne, "кт");
159+
MapUnitToAbbreviation(Unit.Tonne, "т");
148160
MapUnitToAbbreviation(Unit.Kilogram, "кг");
161+
MapUnitToAbbreviation(Unit.Hectogram, "гг");
162+
MapUnitToAbbreviation(Unit.Decagram, "даг");
149163
MapUnitToAbbreviation(Unit.Gram, "г");
164+
MapUnitToAbbreviation(Unit.Decigram, "дг");
165+
MapUnitToAbbreviation(Unit.Centigram, "сг");
150166
MapUnitToAbbreviation(Unit.Milligram, "мг");
151167

168+
// Pressures
169+
MapUnitToAbbreviation(Unit.Pascal, "Па");
170+
MapUnitToAbbreviation(Unit.KiloPascal, "кПа");
171+
MapUnitToAbbreviation(Unit.MegaPascal, "МПа");
172+
MapUnitToAbbreviation(Unit.KilogramForcePerSquareCentimeter, "кгс/см²");
173+
MapUnitToAbbreviation(Unit.Psi, "psi");
174+
MapUnitToAbbreviation(Unit.NewtonPerSquareCentimeter, "Н/см²");
175+
MapUnitToAbbreviation(Unit.NewtonPerSquareMillimeter, "Н/мм²");
176+
MapUnitToAbbreviation(Unit.NewtonPerSquareMeter, "Н/м²");
177+
MapUnitToAbbreviation(Unit.Bar, "бар");
178+
MapUnitToAbbreviation(Unit.TechnicalAtmosphere, "ат");
179+
MapUnitToAbbreviation(Unit.Atmosphere, "атм");
180+
MapUnitToAbbreviation(Unit.Torr, "торр");
181+
152182
// Forces
153183
MapUnitToAbbreviation(Unit.Kilonewton, "кН");
154184
MapUnitToAbbreviation(Unit.Newton, "Н");
185+
MapUnitToAbbreviation(Unit.KilogramForce, "кгс");
186+
MapUnitToAbbreviation(Unit.Dyn, "дин");
155187

156-
// Torque
157-
MapUnitToAbbreviation(Unit.Newtonmeter, "Нм");
188+
// Area
189+
MapUnitToAbbreviation(Unit.SquareKilometer, "км²");
190+
MapUnitToAbbreviation(Unit.SquareMeter, "м²");
191+
MapUnitToAbbreviation(Unit.SquareDecimeter, "дм²");
192+
MapUnitToAbbreviation(Unit.SquareCentimeter, "см²");
193+
MapUnitToAbbreviation(Unit.SquareMillimeter, "мм²");
158194

159-
// Distances
160-
MapUnitToAbbreviation(Unit.Meter, "м");
161-
MapUnitToAbbreviation(Unit.Centimeter, "см");
162-
MapUnitToAbbreviation(Unit.Millimeter, "мм");
195+
// Angle
196+
MapUnitToAbbreviation(Unit.Degree, "°");
197+
MapUnitToAbbreviation(Unit.Radian, "рад");
198+
MapUnitToAbbreviation(Unit.Gradian, "g");
163199

164200
// Volumes
201+
MapUnitToAbbreviation(Unit.CubicKilometer, "км³");
202+
MapUnitToAbbreviation(Unit.CubicMeter, "м³");
203+
MapUnitToAbbreviation(Unit.CubicDecimeter, "дм³");
204+
MapUnitToAbbreviation(Unit.CubicCentimeter, "см³");
205+
MapUnitToAbbreviation(Unit.CubicMillimeter, "мм³");
206+
MapUnitToAbbreviation(Unit.Hectoliter, "гл");
165207
MapUnitToAbbreviation(Unit.Liter, "л");
208+
MapUnitToAbbreviation(Unit.Deciliter, "дл");
209+
MapUnitToAbbreviation(Unit.Centiliter, "сл");
166210
MapUnitToAbbreviation(Unit.Milliliter, "мл");
167211

168-
// Other units
169-
MapUnitToAbbreviation(Unit.Volt, "В");
212+
// Torque
213+
MapUnitToAbbreviation(Unit.Newtonmeter, "Н·м");
214+
215+
// Generic / Other
216+
MapUnitToAbbreviation(Unit.Piece, "штук");
170217
MapUnitToAbbreviation(Unit.Percent, "%");
171218

172-
// Pressures
173-
MapUnitToAbbreviation(Unit.Pascal, "Па");
174-
MapUnitToAbbreviation(Unit.KiloPascal, "кПа");
175-
MapUnitToAbbreviation(Unit.MegaPascal, "МПа");
176-
MapUnitToAbbreviation(Unit.KilogramForcePerSquareCentimeter, "кгс/см²");
219+
// Electric potential
220+
MapUnitToAbbreviation(Unit.Volt, "В");
177221

178222
// Times
179223
MapUnitToAbbreviation(Unit.Nanosecond, "нс");
@@ -184,6 +228,10 @@ private void CreateRussian()
184228
MapUnitToAbbreviation(Unit.Hour, "ч");
185229
MapUnitToAbbreviation(Unit.Day, "д");
186230

231+
// Cooking units
232+
MapUnitToAbbreviation(Unit.Tablespoon, "столовая ложка");
233+
MapUnitToAbbreviation(Unit.Teaspoon, "чайная ложка");
234+
187235
// Flow
188236
MapUnitToAbbreviation(Unit.CubicMeterPerSecond, "м³/с");
189237
MapUnitToAbbreviation(Unit.CubicMeterPerHour, "м³/ч");
@@ -199,40 +247,94 @@ private void CreateCultureInvariants()
199247
// Note: For units with multiple abbreviations, the first one is used in GetDefaultAbbreviation().
200248
MapUnitToAbbreviation(Unit.Undefined, "(no unit)");
201249

202-
// Masses
203-
MapUnitToAbbreviation(Unit.Kilogram, "kg");
204-
MapUnitToAbbreviation(Unit.Hectogram, "hg");
205-
MapUnitToAbbreviation(Unit.Gram, "g");
206-
MapUnitToAbbreviation(Unit.Milligram, "mg");
207-
208-
// Forces
209-
MapUnitToAbbreviation(Unit.Kilonewton, "kN");
210-
MapUnitToAbbreviation(Unit.Newton, "N");
211-
212-
// Torque
213-
MapUnitToAbbreviation(Unit.Newtonmeter, "Nm");
250+
// Length
251+
MapUnitToAbbreviation(Unit.Kilometer, "km");
252+
MapUnitToAbbreviation(Unit.Meter, "m");
253+
MapUnitToAbbreviation(Unit.Decimeter, "dm");
254+
MapUnitToAbbreviation(Unit.Centimeter, "cm");
255+
MapUnitToAbbreviation(Unit.Millimeter, "mm");
256+
MapUnitToAbbreviation(Unit.Micrometer, "μm");
257+
MapUnitToAbbreviation(Unit.Nanometer, "nm");
214258

215-
// Distances
216-
MapUnitToAbbreviation(Unit.Meter, "m");
217-
MapUnitToAbbreviation(Unit.Centimeter, "cm");
218-
MapUnitToAbbreviation(Unit.Millimeter, "mm");
219-
220-
// Volumes
221-
MapUnitToAbbreviation(Unit.Liter, "l", "L");
222-
MapUnitToAbbreviation(Unit.Deciliter, "dl", "dL");
223-
MapUnitToAbbreviation(Unit.Centiliter, "cl", "cL");
224-
MapUnitToAbbreviation(Unit.Milliliter, "ml", "mL");
225-
226-
// Other units
227-
MapUnitToAbbreviation(Unit.Volt, "V");
228-
MapUnitToAbbreviation(Unit.Percent, "%");
229-
MapUnitToAbbreviation(Unit.Second, "s");
259+
// Masses
260+
MapUnitToAbbreviation(Unit.Megatonne, "Mt");
261+
MapUnitToAbbreviation(Unit.Kilotonne, "kt");
262+
MapUnitToAbbreviation(Unit.Tonne, "t");
263+
MapUnitToAbbreviation(Unit.Kilogram, "kg");
264+
MapUnitToAbbreviation(Unit.Hectogram, "hg");
265+
MapUnitToAbbreviation(Unit.Decagram, "dag");
266+
MapUnitToAbbreviation(Unit.Gram, "g");
267+
MapUnitToAbbreviation(Unit.Decigram, "dg");
268+
MapUnitToAbbreviation(Unit.Centigram, "cg");
269+
MapUnitToAbbreviation(Unit.Milligram, "mg");
230270

231271
// Pressures
232272
MapUnitToAbbreviation(Unit.Pascal, "Pa");
233273
MapUnitToAbbreviation(Unit.KiloPascal, "kPa");
234274
MapUnitToAbbreviation(Unit.MegaPascal, "MPa");
235275
MapUnitToAbbreviation(Unit.KilogramForcePerSquareCentimeter, "kgf/cm²");
276+
MapUnitToAbbreviation(Unit.Psi, "psi");
277+
MapUnitToAbbreviation(Unit.NewtonPerSquareCentimeter, "N/cm²");
278+
MapUnitToAbbreviation(Unit.NewtonPerSquareMillimeter, "N/mm²");
279+
MapUnitToAbbreviation(Unit.NewtonPerSquareMeter, "N/m²");
280+
MapUnitToAbbreviation(Unit.Bar, "bar");
281+
MapUnitToAbbreviation(Unit.TechnicalAtmosphere, "at");
282+
MapUnitToAbbreviation(Unit.Atmosphere, "atm");
283+
MapUnitToAbbreviation(Unit.Torr, "Torr");
284+
285+
// Forces
286+
MapUnitToAbbreviation(Unit.Kilonewton, "kN");
287+
MapUnitToAbbreviation(Unit.Newton, "N");
288+
MapUnitToAbbreviation(Unit.KilogramForce, "kgf");
289+
MapUnitToAbbreviation(Unit.Dyn, "dyn");
290+
291+
// Area
292+
MapUnitToAbbreviation(Unit.SquareKilometer, "km²");
293+
MapUnitToAbbreviation(Unit.SquareMeter, "m²");
294+
MapUnitToAbbreviation(Unit.SquareDecimeter, "dm²");
295+
MapUnitToAbbreviation(Unit.SquareCentimeter, "cm²");
296+
MapUnitToAbbreviation(Unit.SquareMillimeter, "mm²");
297+
298+
// Angle
299+
MapUnitToAbbreviation(Unit.Degree, "°");
300+
MapUnitToAbbreviation(Unit.Radian, "rad");
301+
MapUnitToAbbreviation(Unit.Gradian, "g");
302+
303+
// Volumes
304+
MapUnitToAbbreviation(Unit.CubicKilometer, "km³");
305+
MapUnitToAbbreviation(Unit.CubicMeter, "m³");
306+
MapUnitToAbbreviation(Unit.CubicDecimeter, "dm³");
307+
MapUnitToAbbreviation(Unit.CubicCentimeter, "cm³");
308+
MapUnitToAbbreviation(Unit.CubicMillimeter, "mm³");
309+
MapUnitToAbbreviation(Unit.Hectoliter, "hl");
310+
MapUnitToAbbreviation(Unit.Liter, "l");
311+
MapUnitToAbbreviation(Unit.Deciliter, "dl");
312+
MapUnitToAbbreviation(Unit.Centiliter, "cl");
313+
MapUnitToAbbreviation(Unit.Milliliter, "ml");
314+
315+
// Torque
316+
MapUnitToAbbreviation(Unit.Newtonmeter, "N·m");
317+
318+
// Generic / Other
319+
MapUnitToAbbreviation(Unit.Piece, "piece");
320+
MapUnitToAbbreviation(Unit.Percent, "%");
321+
322+
// Electric potential
323+
MapUnitToAbbreviation(Unit.Volt, "V");
324+
325+
// Times
326+
MapUnitToAbbreviation(Unit.Nanosecond, "ns");
327+
MapUnitToAbbreviation(Unit.Microsecond, "μs");
328+
MapUnitToAbbreviation(Unit.Millisecond, "ms");
329+
MapUnitToAbbreviation(Unit.Second, "s");
330+
MapUnitToAbbreviation(Unit.Minute, "min");
331+
MapUnitToAbbreviation(Unit.Hour, "h");
332+
MapUnitToAbbreviation(Unit.Day, "d");
333+
MapUnitToAbbreviation(Unit.Week, "week");
334+
335+
// Cooking units
336+
MapUnitToAbbreviation(Unit.Tablespoon, "tbsp.");
337+
MapUnitToAbbreviation(Unit.Teaspoon, "tsp.");
236338

237339
// Flow
238340
MapUnitToAbbreviation(Unit.CubicMeterPerSecond, "m³/s");

Src/UnitsNet/UnitsNet.netcore45.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,10 @@
9797
<ItemGroup>
9898
<Compile Include="Angle.cs" />
9999
<Compile Include="Area.cs" />
100+
<Compile Include="Revolution.cs" />
100101
<Compile Include="ElectricPotential.cs" />
101102
<Compile Include="EnumUtils.cs" />
103+
<Compile Include="Flow.cs" />
102104
<Compile Include="Force.cs" />
103105
<Compile Include="Length.cs" />
104106
<Compile Include="Length2d.cs" />

Src/UnitsNet/UnitsNet.pcl.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@
3737
<ItemGroup>
3838
<Compile Include="Angle.cs" />
3939
<Compile Include="Area.cs" />
40+
<Compile Include="Revolution.cs" />
4041
<Compile Include="ElectricPotential.cs" />
4142
<Compile Include="EnumUtils.cs" />
43+
<Compile Include="Flow.cs" />
4244
<Compile Include="Force.cs" />
4345
<Compile Include="Length.cs" />
4446
<Compile Include="Length2d.cs" />

Src/UnitsNet/UnitsNet.sl4.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@
5858
<ItemGroup>
5959
<Compile Include="Angle.cs" />
6060
<Compile Include="Area.cs" />
61+
<Compile Include="Revolution.cs" />
6162
<Compile Include="EnumUtils.cs" />
63+
<Compile Include="Flow.cs" />
6264
<Compile Include="Force.cs" />
6365
<Compile Include="Length.cs" />
6466
<Compile Include="Length2d.cs" />

0 commit comments

Comments
 (0)