Skip to content

Commit 0ac3760

Browse files
committed
Add RangeSelector Initialize tests
1 parent 382e8d0 commit 0ac3760

File tree

2 files changed

+210
-0
lines changed

2 files changed

+210
-0
lines changed
Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
using Microsoft.Toolkit.Uwp;
6+
using Microsoft.Toolkit.Uwp.UI.Controls;
7+
using Microsoft.VisualStudio.TestTools.UnitTesting;
8+
using System.Threading.Tasks;
9+
10+
namespace UnitTests.UI.Controls
11+
{
12+
[TestClass]
13+
public class Test_RangeSelector : VisualUITestBase
14+
{
15+
[TestCategory("Initialize")]
16+
[TestMethod]
17+
18+
// If
19+
// Minimum < Maximum
20+
//
21+
// Then
22+
// Minimum dose not change
23+
// Maximum dose not change
24+
25+
// If
26+
// Minimum < Maximum
27+
// RangeStart >= Minimum
28+
// RangeStart <= Maximum
29+
// RangeStart <= RangeEnd
30+
//
31+
// Then
32+
// RangeStart does not change
33+
34+
// If
35+
// Minimum < Maximum
36+
// RangeEnd >= Minimum
37+
// RangeEnd <= Maximum
38+
// RangeEnd >= RangeStart
39+
//
40+
// Then
41+
// RangeEnd dose not change
42+
// Input:Sf Min Start End Max Expected:Sf Min Start End Max
43+
[DataRow( 1, 0, 0, 100, 100, 1, 0, 0, 100, 100, DisplayName = "Minimum < Maximum, Minimum == RangeStart < RangeEnd == Maximum")]
44+
[DataRow( 1, 0, 10, 90, 100, 1, 0, 10, 90, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart < RangeEnd < Maximum")]
45+
[DataRow( 1, 0, 50, 50, 100, 1, 0, 50, 50, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart == RangeEnd < Maximum")]
46+
[DataRow( 1, 0, 0, 90, 100, 1, 0, 0, 90, 100, DisplayName = "Minimum < Maximum, Minimum == RangeStart < RangeEnd < Maximum")]
47+
[DataRow( 1, 0, 0, 0, 100, 1, 0, 0, 0, 100, DisplayName = "Minimum < Maximum, Minimum == RangeStart == RangeEnd < Maximum")]
48+
[DataRow( 1, 0, 10, 100, 100, 1, 0, 10, 100, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart < RangeEnd == Maximum")]
49+
[DataRow( 1, 0, 100, 100, 100, 1, 0, 100, 100, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart == RangeEnd == Maximum")]
50+
51+
// If
52+
// Minimum < Maximum
53+
// RangeEnd <= Maximum
54+
// RangeEnd >= Minimum
55+
// RangeStart >= Minimum
56+
// RangeStart >= RangeEnd
57+
//
58+
// Then
59+
// RangeStart will be RangeEnd
60+
[DataRow( 1, 0, 90, 10, 100, 1, 0, 10, 10, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart > RangeEnd < Maximum")]
61+
[DataRow( 1, 0, 110, 10, 100, 1, 0, 10, 10, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart > RangeEnd < Maximum, RangeStart > Maximum")]
62+
63+
// If
64+
// Minimum < Maximum
65+
// RangeStart <= Minimum
66+
//
67+
// Then
68+
// RangeStart will be Minimum
69+
70+
// If
71+
// Minimum < Maximum
72+
// RangeEnd <= Minimum
73+
//
74+
// Then
75+
// RangeEnd will be Minimum
76+
77+
// If
78+
// Minimum < Maximum
79+
// RangeEnd <= Minimum
80+
// RangeStart >= RangeEnd
81+
//
82+
// Then
83+
// RangeEnd will be Minimum
84+
// RangeStart will be Minimum
85+
[DataRow( 1, 0, -50, -50, 100, 1, 0, 0, 0, 100, DisplayName = "Minimum < Maximum, Minimum > RangeStart == RangeEnd < Maximum")]
86+
[DataRow( 1, 0, -90, 90, 100, 1, 0, 0, 90, 100, DisplayName = "Minimum < Maximum, Minimum > RangeStart < RangeEnd < Maximum")]
87+
[DataRow( 1, 0, -90, -10, 100, 1, 0, 0, 0, 100, DisplayName = "Minimum < Maximum, Minimum > RangeStart < RangeEnd < Maximum, RangeEnd < Minimum")]
88+
[DataRow( 1, 0, -10, -90, 100, 1, 0, 0, 0, 100, DisplayName = "Minimum < Maximum, Minimum > RangeStart > RangeEnd < Maximum")]
89+
[DataRow( 1, 0, 10, -90, 100, 1, 0, 0, 0, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart > RangeEnd < Maximum, RangeEnd < Minimum")]
90+
91+
// If
92+
// Minimum < Maximum
93+
// RangeEnd >= Maximum
94+
//
95+
// Then
96+
// RangeEnd will be Maximum
97+
98+
// If
99+
// Minimum < Maximum
100+
// RangeStart >= Maximum
101+
// RangeEnd >= Maximum
102+
//
103+
// Then
104+
// RangeStart will be Maximum
105+
// RangeEnd will be Maximum
106+
[DataRow( 1, 0, 150, 150, 100, 1, 0, 100, 100, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart == RangeEnd > Maximum")]
107+
[DataRow( 1, 0, 10, 190, 100, 1, 0, 10, 100, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart < RangeEnd > Maximum")]
108+
[DataRow( 1, 0, 110, 190, 100, 1, 0, 100, 100, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart < RangeEnd > Maximum, RangeStart > Maximum")]
109+
[DataRow( 1, 0, 190, 110, 100, 1, 0, 100, 100, 100, DisplayName = "Minimum < Maximum, Minimum < RangeStart > RangeEnd > Maximum")]
110+
111+
// If
112+
// Minimum >= Maximum
113+
//
114+
// Then
115+
// Minimum will be Maximum
116+
// Maximum will be Maximum + 0.01
117+
118+
// If
119+
// Minimum >= Maximum
120+
// RangeStart > Maximum
121+
// RangeEnd > Maximum
122+
//
123+
// Then
124+
// RangeStart will be Maximum + 0.01
125+
// Else
126+
// RangeStart will be Maximum
127+
128+
// If
129+
// Minimum >= Maximum
130+
// RangeEnd > Maximum
131+
//
132+
// Then
133+
// RangeEnd will be Maximum + 0.01
134+
// Else
135+
// RangeEnd will be Maximum
136+
137+
// Input:Sf Min Max Start End Expected:Sf Min Max Start End
138+
[DataRow( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum == Maximum, Minimum == RangeStart == RangeEnd == Maximum")]
139+
[DataRow( 1, 0, 0, 10, 0, 1, 0, 0, 0.01, 0.01, DisplayName = "Minimum == Maximum, Minimum == RangeStart < RangeEnd > Maximum")]
140+
[DataRow( 1, 0, 0, -10, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum == Maximum, Minimum == RangeStart > RangeEnd < Maximum")]
141+
[DataRow( 1, 0, -10, 0, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum == Maximum, Minimum > RangeStart < RangeEnd == Maximum")]
142+
[DataRow( 1, 0, 10, 0, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum == Maximum, Minimum < RangeStart > RangeEnd == Maximum")]
143+
[DataRow( 1, 0, 10, 90, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum == Maximum, Minimum < RangeStart < RangeEnd > Maximum")]
144+
[DataRow( 1, 0, 90, 10, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum == Maximum, Minimum < RangeStart > RangeEnd > Maximum")]
145+
[DataRow( 1, 0, -90, -10, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum == Maximum, Minimum > RangeStart < RangeEnd < Maximum")]
146+
[DataRow( 1, 0, -10, -90, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum == Maximum, Minimum > RangeStart > RangeEnd < Maximum")]
147+
[DataRow( 1, 0, 10, -10, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum == Maximum, Minimum < RangeStart > RangeEnd < Maximum")]
148+
[DataRow( 1, 0, -10, 10, 0, 1, 0, 0, 0.01, 0.01, DisplayName = "Minimum == Maximum, Minimum > RangeStart < RangeEnd > Maximum")]
149+
150+
151+
[DataRow( 1, 100, 0, 100, 0, 1, 0, 0, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart < RangeEnd > Maximum, RangeStart == Maximum, RangeEnd == Minimum")]
152+
[DataRow( 1, 100, 10, 90, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart < RangeEnd > Maximum")]
153+
[DataRow( 1, 100, 50, 50, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart == RangeEnd > Maximum")]
154+
[DataRow( 1, 100, 0, 0, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart == RangeEnd == Maximum")]
155+
[DataRow( 1, 100, 100, 100, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum == RangeStart == RangeEnd > Maximum")]
156+
157+
[DataRow( 1, 100, 10, 100, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart < RangeEnd > Maximum, RangeEnd == Maximum")]
158+
159+
[DataRow( 1, 100, 90, 10, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart > RangeEnd > Maximum")]
160+
[DataRow( 1, 100, 100, 10, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart > RangeEnd > Maximum, RangeStart == Maximum")]
161+
[DataRow( 1, 100, 90, 0, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart > RangeEnd > Maximum, RangeEnd == Maximum")]
162+
163+
164+
[DataRow( 1, 100, 100, 0, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum > Maximum, Minimum == RangeStart > RangeEnd == Maximum")]
165+
166+
167+
168+
[DataRow( 1, 100, -90, -10, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart < RangeEnd < Maximum")]
169+
[DataRow( 1, 100, -10, -90, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart > RangeEnd < Maximum")]
170+
[DataRow( 1, 100, -50, -50, 0, 1, 0, 0, 0, 0.01, DisplayName = "Minimum > Maximum, Minimum > RangeStart == RangeEnd < Maximum")]
171+
172+
[DataRow( 1, 100, 110, 190, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum < RangeStart < RangeEnd > Maximum")]
173+
[DataRow( 1, 100, 190, 110, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum < RangeStart > RangeEnd > Maximum")]
174+
[DataRow( 1, 100, 150, 150, 0, 1, 0, 0.01, 0.01, 0.01, DisplayName = "Minimum > Maximum, Minimum < RangeStart == RangeEnd > Maximum")]
175+
176+
public async Task Initialize(double stepFrequency, double minimum, double rangeStart, double rangeEnd, double maximum, double expectedStepFrequency, double expectedMinimum, double expectedRangeStart, double expectedRangeEnd, double expectedMaximum)
177+
{
178+
var input = new TestRecord(stepFrequency, minimum, rangeStart, rangeEnd, maximum);
179+
var expected = new TestRecord(expectedStepFrequency, expectedMinimum, expectedRangeStart, expectedRangeEnd, expectedMaximum);
180+
181+
await App.DispatcherQueue.EnqueueAsync(async () =>
182+
{
183+
var r = BuildRangeSelecor(input);
184+
185+
await SetTestContentAsync(r);
186+
187+
var actual = BuildTestRecord(r);
188+
189+
Assert.AreEqual(expected, actual);
190+
});
191+
}
192+
193+
public record TestRecord(double StepFrequency, double Minimum, double RangeStart, double RangeEnd, double Maximum);
194+
195+
public static RangeSelector BuildRangeSelecor(TestRecord input)
196+
=> new()
197+
{
198+
StepFrequency = input.StepFrequency,
199+
Minimum = input.Minimum,
200+
Maximum = input.Maximum,
201+
RangeStart = input.RangeStart,
202+
RangeEnd = input.RangeEnd,
203+
};
204+
205+
public static TestRecord BuildTestRecord(RangeSelector r)
206+
=> new(r.StepFrequency, r.Minimum, r.RangeStart, r.RangeEnd, r.Maximum);
207+
208+
}
209+
}

UnitTests/UnitTests.UWP/UnitTests.UWP.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@
212212
<Compile Include="UI\Controls\Test_UniformGrid_RowColDefinitions.cs" />
213213
<Compile Include="UI\Controls\Test_UniformGrid_FreeSpots.cs" />
214214
<Compile Include="UI\Controls\Test_UniformGrid_Dimensions.cs" />
215+
<Compile Include="UI\Controls\Test_RangeSelector.cs" />
215216
<Compile Include="UI\Controls\Test_WrapPanel_Visibility.cs" />
216217
<Compile Include="UI\Controls\Test_WrapPanel_BasicLayout.cs" />
217218
<Compile Include="UI\Extensions\Test_VisualExtensions.cs" />

0 commit comments

Comments
 (0)