@@ -9,6 +9,8 @@ namespace UnitsNet.Tests
9
9
{
10
10
public class FeetInchesTests
11
11
{
12
+ private static readonly CultureInfo EnglishUs = new ( "en-US" , useUserOverride : false ) ;
13
+ private static readonly CultureInfo GermanSwitzerland = new ( "de-CH" , useUserOverride : false ) ;
12
14
private const double FeetInOneMeter = 3.28084 ;
13
15
private const double InchesInOneMeter = 39.37007874 ;
14
16
private const double FeetTolerance = 1e-5 ;
@@ -33,42 +35,42 @@ public void FeetInchesRoundTrip()
33
35
34
36
public static IEnumerable < object [ ] > ValidData => new List < object [ ] >
35
37
{
36
- new object [ ] { "1'" , 1 , new CultureInfo ( "en-US" , false ) } , // Feet only
37
- new object [ ] { "1′" , 1 , new CultureInfo ( "en-US" , false ) } , // Feet only
38
- new object [ ] { "1,000′" , 1000 , new CultureInfo ( "en-US" , false ) } , // Feet only, with seperator
39
- new object [ ] { "1e3'" , 1000 , new CultureInfo ( "en-US" , false ) } , // Feet only, exponential notation
40
- new object [ ] { "1\" " , 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
41
- new object [ ] { "1″" , 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
42
- new object [ ] { "0' 1\" " , 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
43
- new object [ ] { "0' 1″" , 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
44
- new object [ ] { "0′ 1\" " , 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
45
- new object [ ] { "0′ 1″" , 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
46
- new object [ ] { "1' 1\" " , 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Normal form
47
- new object [ ] { "1′ 1″" , 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Normal form
48
- new object [ ] { " 1′ 1″ " , 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Normal form, requires trimming
49
- new object [ ] { "1'1\" " , 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Without space
50
- new object [ ] { "1′1″" , 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Without space
51
- new object [ ] { "1 ft 1 in" , 1.08333333 , new CultureInfo ( "en-US" , false ) } ,
52
- new object [ ] { "1ft 1in" , 1.08333333 , new CultureInfo ( "en-US" , false ) } ,
53
- new object [ ] { "-1'" , - 1 , new CultureInfo ( "en-US" , false ) } , // Feet only
54
- new object [ ] { "-1′" , - 1 , new CultureInfo ( "en-US" , false ) } , // Feet only
55
- new object [ ] { "-1,000′" , - 1000 , new CultureInfo ( "en-US" , false ) } , // Feet only, with seperator
56
- new object [ ] { "-1e3'" , - 1000 , new CultureInfo ( "en-US" , false ) } , // Feet only, exponential notation
57
- new object [ ] { "-1\" " , - 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
58
- new object [ ] { "-1″" , - 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
59
- new object [ ] { "-0' 1\" " , - 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
60
- new object [ ] { "-0' 1″" , - 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
61
- new object [ ] { "-0′ 1\" " , - 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
62
- new object [ ] { "-0′ 1″" , - 0.08333333 , new CultureInfo ( "en-US" , false ) } , // Inches only
63
- new object [ ] { "-1' 1\" " , - 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Normal form
64
- new object [ ] { "-1′ 1″" , - 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Normal form
65
- new object [ ] { " -1′ 1″ " , - 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Normal form, requires trimming
66
- new object [ ] { "-1'1\" " , - 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Without space
67
- new object [ ] { "-1′1″" , - 1.08333333 , new CultureInfo ( "en-US" , false ) } , // Without space
68
- new object [ ] { "-1 ft 1 in" , - 1.08333333 , new CultureInfo ( "en-US" , false ) } ,
69
- new object [ ] { "-1ft 1in" , - 1.08333333 , new CultureInfo ( "en-US" , false ) } ,
70
- new object [ ] { "1’000′" , 1000 , new CultureInfo ( "de-CH" , false ) } , // Feet only, with seperator
71
- new object [ ] { "1’000′ 6\" " , 1000.5 , new CultureInfo ( "de-CH" , false ) } , // Normal form, using separators for culture
38
+ new object [ ] { "1'" , 1 , EnglishUs } , // Feet only
39
+ new object [ ] { "1′" , 1 , EnglishUs } , // Feet only
40
+ new object [ ] { "1,000′" , 1000 , EnglishUs } , // Feet only, with seperator
41
+ new object [ ] { "1e3'" , 1000 , EnglishUs } , // Feet only, exponential notation
42
+ new object [ ] { "1\" " , 0.08333333 , EnglishUs } , // Inches only
43
+ new object [ ] { "1″" , 0.08333333 , EnglishUs } , // Inches only
44
+ new object [ ] { "0' 1\" " , 0.08333333 , EnglishUs } , // Inches only
45
+ new object [ ] { "0' 1″" , 0.08333333 , EnglishUs } , // Inches only
46
+ new object [ ] { "0′ 1\" " , 0.08333333 , EnglishUs } , // Inches only
47
+ new object [ ] { "0′ 1″" , 0.08333333 , EnglishUs } , // Inches only
48
+ new object [ ] { "1' 1\" " , 1.08333333 , EnglishUs } , // Normal form
49
+ new object [ ] { "1′ 1″" , 1.08333333 , EnglishUs } , // Normal form
50
+ new object [ ] { " 1′ 1″ " , 1.08333333 , EnglishUs } , // Normal form, requires trimming
51
+ new object [ ] { "1'1\" " , 1.08333333 , EnglishUs } , // Without space
52
+ new object [ ] { "1′1″" , 1.08333333 , EnglishUs } , // Without space
53
+ new object [ ] { "1 ft 1 in" , 1.08333333 , EnglishUs } ,
54
+ new object [ ] { "1ft 1in" , 1.08333333 , EnglishUs } ,
55
+ new object [ ] { "-1'" , - 1 , EnglishUs } , // Feet only
56
+ new object [ ] { "-1′" , - 1 , EnglishUs } , // Feet only
57
+ new object [ ] { "-1,000′" , - 1000 , EnglishUs } , // Feet only, with seperator
58
+ new object [ ] { "-1e3'" , - 1000 , EnglishUs } , // Feet only, exponential notation
59
+ new object [ ] { "-1\" " , - 0.08333333 , EnglishUs } , // Inches only
60
+ new object [ ] { "-1″" , - 0.08333333 , EnglishUs } , // Inches only
61
+ new object [ ] { "-0' 1\" " , - 0.08333333 , EnglishUs } , // Inches only
62
+ new object [ ] { "-0' 1″" , - 0.08333333 , EnglishUs } , // Inches only
63
+ new object [ ] { "-0′ 1\" " , - 0.08333333 , EnglishUs } , // Inches only
64
+ new object [ ] { "-0′ 1″" , - 0.08333333 , EnglishUs } , // Inches only
65
+ new object [ ] { "-1' 1\" " , - 1.08333333 , EnglishUs } , // Normal form
66
+ new object [ ] { "-1′ 1″" , - 1.08333333 , EnglishUs } , // Normal form
67
+ new object [ ] { " -1′ 1″ " , - 1.08333333 , EnglishUs } , // Normal form, requires trimming
68
+ new object [ ] { "-1'1\" " , - 1.08333333 , EnglishUs } , // Without space
69
+ new object [ ] { "-1′1″" , - 1.08333333 , EnglishUs } , // Without space
70
+ new object [ ] { "-1 ft 1 in" , - 1.08333333 , EnglishUs } ,
71
+ new object [ ] { "-1ft 1in" , - 1.08333333 , EnglishUs } ,
72
+ new object [ ] { "1’000′" , 1000 , GermanSwitzerland } , // Feet only, with seperator
73
+ new object [ ] { "1’000′ 6\" " , 1000.5 , GermanSwitzerland } , // Normal form, using separators for culture
72
74
} ;
73
75
74
76
[ Theory ]
@@ -81,22 +83,22 @@ public void TryParseFeetInches(string str, double expectedFeet, CultureInfo form
81
83
82
84
public static IEnumerable < object [ ] > InvalidData => new List < object [ ] >
83
85
{
84
- new object [ ] { "a" , new CultureInfo ( "en-US" , false ) } , // Missing or invalid apostrophe or double prime chars
85
- new object [ ] { "1" , new CultureInfo ( "en-US" , false ) } ,
86
- new object [ ] { "1`" , new CultureInfo ( "en-US" , false ) } ,
87
- new object [ ] { "1^" , new CultureInfo ( "en-US" , false ) } ,
88
- new object [ ] { "1' 1'" , new CultureInfo ( "en-US" , false ) } , // Feet apostrophe twice
89
- new object [ ] { "1′ 1′" , new CultureInfo ( "en-US" , false ) } ,
90
- new object [ ] { "1' 1" , new CultureInfo ( "en-US" , false ) } , // No inches double prime
91
- new object [ ] { "1′ 1" , new CultureInfo ( "en-US" , false ) } ,
92
- new object [ ] { "1′ 1`" , new CultureInfo ( "en-US" , false ) } , // Invalid inches double prime
93
- new object [ ] { "1' 1`" , new CultureInfo ( "en-US" , false ) } ,
94
- new object [ ] { "1'1'" , new CultureInfo ( "en-US" , false ) } , // Same without space
95
- new object [ ] { "1′1′" , new CultureInfo ( "en-US" , false ) } ,
96
- new object [ ] { "1'1" , new CultureInfo ( "en-US" , false ) } ,
97
- new object [ ] { "1′1" , new CultureInfo ( "en-US" , false ) } ,
98
- new object [ ] { "1′1`" , new CultureInfo ( "en-US" , false ) } ,
99
- new object [ ] { "1'1`" , new CultureInfo ( "en-US" , false ) }
86
+ new object [ ] { "a" , EnglishUs } , // Missing or invalid apostrophe or double prime chars
87
+ new object [ ] { "1" , EnglishUs } ,
88
+ new object [ ] { "1`" , EnglishUs } ,
89
+ new object [ ] { "1^" , EnglishUs } ,
90
+ new object [ ] { "1' 1'" , EnglishUs } , // Feet apostrophe twice
91
+ new object [ ] { "1′ 1′" , EnglishUs } ,
92
+ new object [ ] { "1' 1" , EnglishUs } , // No inches double prime
93
+ new object [ ] { "1′ 1" , EnglishUs } ,
94
+ new object [ ] { "1′ 1`" , EnglishUs } , // Invalid inches double prime
95
+ new object [ ] { "1' 1`" , EnglishUs } ,
96
+ new object [ ] { "1'1'" , EnglishUs } , // Same without space
97
+ new object [ ] { "1′1′" , EnglishUs } ,
98
+ new object [ ] { "1'1" , EnglishUs } ,
99
+ new object [ ] { "1′1" , EnglishUs } ,
100
+ new object [ ] { "1′1`" , EnglishUs } ,
101
+ new object [ ] { "1'1`" , EnglishUs }
100
102
} ;
101
103
102
104
[ Theory ]
0 commit comments