Skip to content

Commit bf3ab9d

Browse files
Add Danish culture tests
1 parent ded18f3 commit bf3ab9d

File tree

1 file changed

+117
-52
lines changed

1 file changed

+117
-52
lines changed

tests/ImageSharp.Web.Tests/Commands/CommandParserTests.cs

Lines changed: 117 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -13,91 +13,156 @@ namespace SixLabors.ImageSharp.Web.Tests.Commands
1313
{
1414
public class CommandParserTests
1515
{
16-
public static TheoryData<object, string> IntegralValues = new TheoryData<object, string>
16+
private static readonly CultureInfo Invariant = CultureInfo.InvariantCulture;
17+
private static readonly CultureInfo Danish = new CultureInfo("da-DK");
18+
private const double Pi = 3.14159265358979;
19+
private static readonly string PiStringInvariant = Pi.ToString(CultureInfo.InvariantCulture);
20+
private static readonly string PiStringDanish = Pi.ToString(Danish);
21+
private static readonly double RoundedPi = Math.Round(Pi, MidpointRounding.AwayFromZero);
22+
23+
public static TheoryData<object, string, CultureInfo> IntegralValuesInvariant
24+
= new TheoryData<object, string, CultureInfo>
1725
{
18-
{ (sbyte)1, "1" },
19-
{ (byte)1, "1" },
20-
{ (short)1, "1" },
21-
{ (ushort)1, "1" },
22-
{ 1, "1" },
23-
{ 1U, "1" },
24-
{ 1L, "1" },
25-
{ 1UL, "1" },
26-
{ 1F, "1" },
27-
{ 1D, "1" },
28-
{ 1M, "1" },
26+
{ (sbyte)1, "1", Invariant },
27+
{ (byte)1, "1", Invariant },
28+
{ (short)1, "1", Invariant },
29+
{ (ushort)1, "1", Invariant },
30+
{ 1, "1", Invariant },
31+
{ 1U, "1", Invariant },
32+
{ 1L, "1", Invariant },
33+
{ 1UL, "1", Invariant },
34+
{ 1F, "1", Invariant },
35+
{ 1D, "1", Invariant },
36+
{ 1M, "1", Invariant },
2937
};
3038

31-
private const double Pi = 3.14159265358979;
32-
private static readonly string PiString = Pi.ToString(CultureInfo.InvariantCulture);
33-
private static readonly double RoundedPi = Math.Round(Pi, MidpointRounding.AwayFromZero);
39+
public static TheoryData<object, string, CultureInfo> IntegralValuesDanish
40+
= new TheoryData<object, string, CultureInfo>
41+
{
42+
{ (sbyte)1, "1", Danish },
43+
{ (byte)1, "1", Danish },
44+
{ (short)1, "1", Danish },
45+
{ (ushort)1, "1", Danish },
46+
{ 1, "1", Danish },
47+
{ 1U, "1", Danish },
48+
{ 1L, "1", Danish },
49+
{ 1UL, "1", Danish },
50+
{ 1F, "1", Danish },
51+
{ 1D, "1", Danish },
52+
{ 1M, "1", Danish },
53+
};
54+
55+
public static TheoryData<object, string, CultureInfo> RealValuesInvariant
56+
= new TheoryData<object, string, CultureInfo>
57+
{
58+
{ (sbyte)RoundedPi, PiStringInvariant, Invariant },
59+
{ (byte)RoundedPi, PiStringInvariant, Invariant },
60+
{ (short)RoundedPi, PiStringInvariant, Invariant },
61+
{ (ushort)RoundedPi, PiStringInvariant, Invariant },
62+
{ (int)RoundedPi, PiStringInvariant, Invariant },
63+
{ (uint)RoundedPi, PiStringInvariant, Invariant },
64+
{ (long)RoundedPi, PiStringInvariant, Invariant },
65+
{ (ulong)RoundedPi, PiStringInvariant, Invariant },
66+
{ (float)Pi, PiStringInvariant, Invariant },
67+
{ (double)Pi, PiStringInvariant, Invariant },
68+
{ (decimal)Pi, PiStringInvariant, Invariant },
69+
};
70+
71+
public static TheoryData<object, string, CultureInfo> RealValuesDanish
72+
= new TheoryData<object, string, CultureInfo>
73+
{
74+
{ (sbyte)RoundedPi, PiStringDanish, Danish },
75+
{ (byte)RoundedPi, PiStringDanish, Danish },
76+
{ (short)RoundedPi, PiStringDanish, Danish },
77+
{ (ushort)RoundedPi, PiStringDanish, Danish },
78+
{ (int)RoundedPi, PiStringDanish, Danish },
79+
{ (uint)RoundedPi, PiStringDanish, Danish },
80+
{ (long)RoundedPi, PiStringDanish, Danish },
81+
{ (ulong)RoundedPi, PiStringDanish, Danish },
82+
{ (float)Pi, PiStringDanish, Danish },
83+
{ (double)Pi, PiStringDanish, Danish },
84+
{ (decimal)Pi, PiStringDanish, Danish },
85+
};
86+
87+
public static TheoryData<ResizeMode, string, CultureInfo> EnumValues
88+
= new TheoryData<ResizeMode, string, CultureInfo>
89+
{
90+
{ ResizeMode.Max, "max", Invariant },
91+
{ ResizeMode.Crop, "this is not, an enum value", Invariant }, // Unknown returns default
92+
};
3493

35-
public static TheoryData<object, string> RealValues = new TheoryData<object, string>
94+
public static TheoryData<int[], string, CultureInfo> IntegralArrays
95+
= new TheoryData<int[], string, CultureInfo>
3696
{
37-
{ (sbyte)RoundedPi, PiString },
38-
{ (byte)RoundedPi, PiString },
39-
{ (short)RoundedPi, PiString },
40-
{ (ushort)RoundedPi, PiString },
41-
{ (int)RoundedPi, PiString },
42-
{ (uint)RoundedPi, PiString },
43-
{ (long)RoundedPi, PiString },
44-
{ (ulong)RoundedPi, PiString },
45-
{ (float)Pi, PiString },
46-
{ (double)Pi, PiString },
47-
{ (decimal)Pi, PiString },
97+
{ new[] { 1, 2, 3, 4 }, "1,2,3,4", Invariant },
4898
};
4999

50-
public static TheoryData<ResizeMode, string> EnumValues = new TheoryData<ResizeMode, string>
100+
public static TheoryData<float[], string, CultureInfo> RealArraysInvariant
101+
= new TheoryData<float[], string, CultureInfo>
51102
{
52-
{ ResizeMode.Max, "max" },
53-
{ ResizeMode.Crop, "this is not, an enum value" }, // Unknown returns default
103+
{ new[] { 1.667F, 2.667F, 3.667F, 4.667F }, "1.667,2.667,3.667,4.667", Invariant },
54104
};
55105

56-
public static TheoryData<int[], string> IntegralArrays = new TheoryData<int[], string>
106+
public static TheoryData<float[], string, CultureInfo> RealArraysDanish
107+
= new TheoryData<float[], string, CultureInfo>
57108
{
58-
{ new[] { 1, 2, 3, 4 }, "1,2,3,4" },
109+
{ new[] { 1.667F, 2.667F, 3.667F, 4.667F }, "1,667;2,667;3,667;4,667", Danish },
59110
};
60111

61-
public static TheoryData<float[], string> RealArrays = new TheoryData<float[], string>
112+
public static TheoryData<object, string, CultureInfo> IntegralLists
113+
= new TheoryData<object, string, CultureInfo>
62114
{
63-
{ new[] { 1.667F, 2.667F, 3.667F, 4.667F }, "1.667,2.667,3.667,4.667" },
115+
{ new List<int> { 1, 2, 3, 4 }, "1,2,3,4", Invariant },
64116
};
65117

66-
public static TheoryData<object, string> IntegralLists = new TheoryData<object, string>
118+
public static TheoryData<List<float>, string, CultureInfo> RealLists
119+
= new TheoryData<List<float>, string, CultureInfo>
67120
{
68-
{ new List<int> { 1, 2, 3, 4 }, "1,2,3,4" },
121+
{ new List<float> { 1.667F, 2.667F, 3.667F, 4.667F }, "1.667,2.667,3.667,4.667", Invariant },
69122
};
70123

71-
public static TheoryData<object, string> RealLists = new TheoryData<object, string>
124+
public static TheoryData<Color, string, CultureInfo> ColorValuesInvariant
125+
= new TheoryData<Color, string, CultureInfo>
72126
{
73-
{ new List<float> { 1.667F, 2.667F, 3.667F, 4.667F }, "1.667,2.667,3.667,4.667" },
127+
{ default, string.Empty, Invariant },
128+
{ Color.White, "255,255,255", Invariant },
129+
{ Color.Transparent, "0,0,0,0", Invariant },
130+
{ Color.Orange, "orange", Invariant },
131+
{ Color.RoyalBlue, "4169E1FF", Invariant },
132+
{ Color.Lime, "00FF00FF", Invariant },
133+
{ Color.YellowGreen, "9ACD32FF", Invariant },
74134
};
75135

76-
public static TheoryData<Color, string> ColorValues = new TheoryData<Color, string>
136+
public static TheoryData<Color, string, CultureInfo> ColorValuesDanish
137+
= new TheoryData<Color, string, CultureInfo>
77138
{
78-
{ default, string.Empty },
79-
{ Color.White, "255,255,255" },
80-
{ Color.Transparent, "0,0,0,0" },
81-
{ Color.Orange, "orange" },
82-
{ Color.RoyalBlue, "4169E1FF" },
83-
{ Color.Lime, "00FF00FF" },
84-
{ Color.YellowGreen, "9ACD32FF" },
139+
{ default, string.Empty, Danish },
140+
{ Color.White, "255;255;255", Danish },
141+
{ Color.Transparent, "0;0;0;0", Danish },
142+
{ Color.Orange, "orange", Danish },
143+
{ Color.RoyalBlue, "4169E1FF", Danish },
144+
{ Color.Lime, "00FF00FF", Danish },
145+
{ Color.YellowGreen, "9ACD32FF", Danish },
85146
};
86147

87148
private static readonly CommandParser Parser = GetCommandParser();
88149

89150
[Theory]
90-
[MemberData(nameof(IntegralValues))]
91-
[MemberData(nameof(RealValues))]
151+
[MemberData(nameof(IntegralValuesInvariant))]
152+
[MemberData(nameof(IntegralValuesDanish))]
153+
[MemberData(nameof(RealValuesInvariant))]
154+
[MemberData(nameof(RealValuesDanish))]
92155
[MemberData(nameof(EnumValues))]
93156
[MemberData(nameof(IntegralArrays))]
94-
[MemberData(nameof(RealArrays))]
157+
[MemberData(nameof(RealArraysInvariant))]
158+
[MemberData(nameof(RealArraysDanish))]
95159
[MemberData(nameof(IntegralLists))]
96160
[MemberData(nameof(RealLists))]
97-
[MemberData(nameof(ColorValues))]
98-
public void CommandParserCanConvert<T>(T expected, string param)
161+
[MemberData(nameof(ColorValuesInvariant))]
162+
[MemberData(nameof(ColorValuesDanish))]
163+
public void CommandParserCanConvert<T>(T expected, string param, CultureInfo culture)
99164
{
100-
T sb = Parser.ParseValue<T>(param, CultureInfo.InvariantCulture);
165+
T sb = Parser.ParseValue<T>(param, culture);
101166
Assert.IsType<T>(sb);
102167
Assert.Equal(expected, sb);
103168
}

0 commit comments

Comments
 (0)