1
+ // Copyright © 2007 by Initial Force AS. All rights reserved.
2
+ // https://github.com/InitialForce/UnitsNet
3
+ //
4
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ // of this software and associated documentation files (the "Software"), to deal
6
+ // in the Software without restriction, including without limitation the rights
7
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ // copies of the Software, and to permit persons to whom the Software is
9
+ // furnished to do so, subject to the following conditions:
10
+ //
11
+ // The above copyright notice and this permission notice shall be included in
12
+ // all copies or substantial portions of the Software.
13
+ //
14
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ // THE SOFTWARE.
21
+
22
+ using System ;
23
+ using System . Collections . Generic ;
24
+ using System . Globalization ;
25
+ using System . Linq ;
26
+ using System . Threading ;
27
+ using NUnit . Framework ;
28
+
29
+ namespace UnitsNet . Tests . net35
30
+ {
31
+ [ TestFixture ]
32
+ public class UnitSystemTests
33
+ {
34
+ [ Test ]
35
+ public void AllUnitAbbreviationsImplemented ( [ Values ( "" , "en-US" , "nb-NO" , "ru-RU" ) ] string cultureName )
36
+ {
37
+ IEnumerable < Unit > unitValues = Enum . GetValues ( typeof ( Unit ) ) . Cast < Unit > ( ) ;
38
+ UnitSystem unitSystem = UnitSystem . Create ( new CultureInfo ( cultureName ) ) ;
39
+
40
+ var unitsMissingAbbreviations = new List < Unit > ( ) ;
41
+ foreach ( Unit unit in unitValues )
42
+ {
43
+ try
44
+ {
45
+ unitSystem . GetDefaultAbbreviation ( unit ) ;
46
+ }
47
+ catch
48
+ {
49
+ unitsMissingAbbreviations . Add ( unit ) ;
50
+ }
51
+ }
52
+
53
+ Assert . IsEmpty ( unitsMissingAbbreviations ,
54
+ "Units missing abbreviations: " + string . Join ( ", " , unitsMissingAbbreviations ) ) ;
55
+ }
56
+
57
+ [ Test ]
58
+ public void AllUnitsImplementToStringForInvariantCulture ( )
59
+ {
60
+ var originalCulture = Thread . CurrentThread . CurrentUICulture ;
61
+ try
62
+ {
63
+ Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
64
+
65
+ Assert . AreEqual ( "1 °" , Angle . FromDegrees ( 1 ) . ToString ( ) ) ;
66
+ Assert . AreEqual ( "1 m²" , Area . FromSquareMeters ( 1 ) . ToString ( ) ) ;
67
+ Assert . AreEqual ( "1 V" , ElectricPotential . FromVolts ( 1 ) . ToString ( ) ) ;
68
+ Assert . AreEqual ( "1 m³/s" , Flow . FromCubicMeterPerSecond ( 1 ) . ToString ( ) ) ;
69
+ Assert . AreEqual ( "1 N" , Force . FromNewtons ( 1 ) . ToString ( ) ) ;
70
+ Assert . AreEqual ( "1 m" , Length . FromMeters ( 1 ) . ToString ( ) ) ;
71
+ Assert . AreEqual ( "1 kg" , Mass . FromKilograms ( 1 ) . ToString ( ) ) ;
72
+ Assert . AreEqual ( "1 Pa" , Pressure . FromPascals ( 1 ) . ToString ( ) ) ;
73
+ Assert . AreEqual ( "1 r/s" , Revolution . FromRevolutionsPerSecond ( 1 ) . ToString ( ) ) ;
74
+ Assert . AreEqual ( "1 Nm" , Torque . FromNewtonmeters ( 1 ) . ToString ( ) ) ;
75
+ Assert . AreEqual ( "1 m³" , Volume . FromCubicMeters ( 1 ) . ToString ( ) ) ;
76
+ }
77
+ finally
78
+ {
79
+ Thread . CurrentThread . CurrentUICulture = originalCulture ;
80
+ }
81
+ }
82
+
83
+ [ Test ]
84
+ public void AllUnitsImplementToStringForNorwegian ( )
85
+ {
86
+ var originalCulture = Thread . CurrentThread . CurrentUICulture ;
87
+ try
88
+ {
89
+ Thread . CurrentThread . CurrentUICulture = CultureInfo . InvariantCulture ;
90
+
91
+ Assert . AreEqual ( "1 °" , Angle . FromDegrees ( 1 ) . ToString ( ) ) ;
92
+ Assert . AreEqual ( "1 m²" , Area . FromSquareMeters ( 1 ) . ToString ( ) ) ;
93
+ Assert . AreEqual ( "1 V" , ElectricPotential . FromVolts ( 1 ) . ToString ( ) ) ;
94
+ Assert . AreEqual ( "1 m³/s" , Flow . FromCubicMeterPerSecond ( 1 ) . ToString ( ) ) ;
95
+ Assert . AreEqual ( "1 N" , Force . FromNewtons ( 1 ) . ToString ( ) ) ;
96
+ Assert . AreEqual ( "1 m" , Length . FromMeters ( 1 ) . ToString ( ) ) ;
97
+ Assert . AreEqual ( "1 kg" , Mass . FromKilograms ( 1 ) . ToString ( ) ) ;
98
+ Assert . AreEqual ( "1 Pa" , Pressure . FromPascals ( 1 ) . ToString ( ) ) ;
99
+ Assert . AreEqual ( "1 r/s" , Revolution . FromRevolutionsPerSecond ( 1 ) . ToString ( ) ) ;
100
+ Assert . AreEqual ( "1 Nm" , Torque . FromNewtonmeters ( 1 ) . ToString ( ) ) ;
101
+ Assert . AreEqual ( "1 m³" , Volume . FromCubicMeters ( 1 ) . ToString ( ) ) ;
102
+ }
103
+ finally
104
+ {
105
+ Thread . CurrentThread . CurrentUICulture = originalCulture ;
106
+ }
107
+ }
108
+
109
+
110
+ [ Test ]
111
+ public void AllUnitsImplementToStringForRussian ( )
112
+ {
113
+ var originalCulture = Thread . CurrentThread . CurrentUICulture ;
114
+ try
115
+ {
116
+ Thread . CurrentThread . CurrentUICulture = new CultureInfo ( "ru-RU" ) ;
117
+
118
+ Assert . AreEqual ( "1 °" , Angle . FromDegrees ( 1 ) . ToString ( ) ) ;
119
+ Assert . AreEqual ( "1 м²" , Area . FromSquareMeters ( 1 ) . ToString ( ) ) ;
120
+ Assert . AreEqual ( "1 В" , ElectricPotential . FromVolts ( 1 ) . ToString ( ) ) ;
121
+ Assert . AreEqual ( "1 м³/с" , Flow . FromCubicMeterPerSecond ( 1 ) . ToString ( ) ) ;
122
+ Assert . AreEqual ( "1 Н" , Force . FromNewtons ( 1 ) . ToString ( ) ) ;
123
+ Assert . AreEqual ( "1 м" , Length . FromMeters ( 1 ) . ToString ( ) ) ;
124
+ Assert . AreEqual ( "1 кг" , Mass . FromKilograms ( 1 ) . ToString ( ) ) ;
125
+ Assert . AreEqual ( "1 Па" , Pressure . FromPascals ( 1 ) . ToString ( ) ) ;
126
+ Assert . AreEqual ( "1 об/с" , Revolution . FromRevolutionsPerSecond ( 1 ) . ToString ( ) ) ;
127
+ Assert . AreEqual ( "1 Н·м" , Torque . FromNewtonmeters ( 1 ) . ToString ( ) ) ;
128
+ Assert . AreEqual ( "1 м³" , Volume . FromCubicMeters ( 1 ) . ToString ( ) ) ;
129
+ }
130
+ finally
131
+ {
132
+ Thread . CurrentThread . CurrentUICulture = originalCulture ;
133
+ }
134
+ }
135
+ }
136
+ }
0 commit comments