1- using System . Collections . Immutable ;
21using DotNetExtensions . Collections ;
32
43namespace DotNetExtensionsTests . Collections ;
54
65[ TestClass ]
76public partial class EnumerableExtensionsTests
87{
8+ private static readonly int [ ] DefaultSource = [ 1 , 2 , 3 , 4 , 5 ] ;
9+
910 [ TestMethod ]
10- public void TestPairwiseWithElements ( )
11+ public void Pairwise_SourceHasMultipleElements_ReturnsExpectedPairs ( )
1112 {
12- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
13- var result = source . Pairwise ( ) . ToImmutableArray ( ) ;
13+ var result = DefaultSource . Pairwise ( ) . ToList ( ) ;
1414
15- Assert . AreEqual ( 4 , result . Length ) ;
15+ Assert . HasCount ( 4 , result ) ;
1616 Assert . AreEqual ( ( 1 , 2 ) , result [ 0 ] ) ;
1717 Assert . AreEqual ( ( 2 , 3 ) , result [ 1 ] ) ;
1818 Assert . AreEqual ( ( 3 , 4 ) , result [ 2 ] ) ;
1919 Assert . AreEqual ( ( 4 , 5 ) , result [ 3 ] ) ;
2020 }
2121
2222 [ TestMethod ]
23- public void TestPairwiseWithOneElement ( )
23+ public void Pairwise_SourceHasOneElement_ReturnsEmpty ( )
2424 {
2525 int [ ] source = [ 1 ] ;
26- var result = source . Pairwise ( ) . ToImmutableArray ( ) ;
26+ var result = source . Pairwise ( ) . ToList ( ) ;
2727
28- Assert . AreEqual ( 0 , result . Length ) ;
28+ Assert . IsEmpty ( result ) ;
2929 }
3030
3131 [ TestMethod ]
32- public void TestPairwiseWithNoElements ( )
32+ public void Pairwise_SourceIsEmpty_ReturnsEmpty ( )
3333 {
3434 int [ ] source = [ ] ;
35- var result = source . Pairwise ( ) . ToArray ( ) ;
35+ var result = source . Pairwise ( ) . ToList ( ) ;
3636
37- Assert . AreEqual ( 0 , result . Length ) ;
37+ Assert . IsEmpty ( result ) ;
3838 }
3939
4040 [ TestMethod ]
41- public void TestAdjacentWithValidLength ( )
41+ public void Adjacent_ValidLength_ReturnsSlidingWindows ( )
4242 {
43- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
44- var result = source . Adjacent ( 3 ) . ToArray ( ) ;
43+ var result = DefaultSource . Adjacent ( 3 ) . ToList ( ) ;
4544
46- Assert . AreEqual ( 3 , result . Length ) ;
47- Assert . IsTrue ( result [ 0 ] is [ 1 , 2 , 3 ] ) ;
48- Assert . IsTrue ( result [ 1 ] is [ 2 , 3 , 4 ] ) ;
49- Assert . IsTrue ( result [ 2 ] is [ 3 , 4 , 5 ] ) ;
45+ Assert . HasCount ( 3 , result ) ;
46+ CollectionAssert . AreEqual ( DefaultSource [ .. 3 ] , result [ 0 ] ) ;
47+ CollectionAssert . AreEqual ( DefaultSource [ 1 .. 4 ] , result [ 1 ] ) ;
48+ CollectionAssert . AreEqual ( DefaultSource [ 2 .. 5 ] , result [ 2 ] ) ;
5049 }
5150
5251 [ TestMethod ]
53- public void TestAdjacentWithInvalidLength ( )
52+ public void Adjacent_LengthGreaterThanSource_ReturnsEmpty ( )
5453 {
55- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
56- var result = source . Adjacent ( 6 ) . ToArray ( ) ;
54+ var result = DefaultSource . Adjacent ( 6 ) . ToList ( ) ;
5755
58- Assert . AreEqual ( [ ] , result ) ;
56+ Assert . IsEmpty ( result ) ;
5957 }
6058
6159 [ TestMethod ]
62- public void TestAdjacentWithZeroLength ( )
60+ public void Adjacent_LengthZero_ReturnsEmpty ( )
6361 {
64- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
65- var result = source . Adjacent ( 0 ) . ToArray ( ) ;
62+ var result = DefaultSource . Adjacent ( 0 ) . ToList ( ) ;
6663
67- Assert . AreEqual ( [ ] , result ) ;
64+ Assert . IsEmpty ( result ) ;
6865 }
6966
7067 [ TestMethod ]
71- public void TestAdjacentWithLengthOne ( )
68+ public void Adjacent_LengthOne_ReturnsSingleElementWindows ( )
7269 {
73- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
74- var result = source . Adjacent ( 1 ) . ToArray ( ) ;
70+ var result = DefaultSource . Adjacent ( 1 ) . ToList ( ) ;
7571
76- var expected = ImmutableArray . Create < int [ ] > ( [ 1 ] , [ 2 ] , [ 3 ] , [ 4 ] , [ 5 ] ) ;
77- CollectionAssert . AreEqual ( expected , result ) ;
72+ Assert . HasCount ( 5 , result ) ;
73+ CollectionAssert . AreEqual ( DefaultSource [ ..1 ] , result [ 0 ] ) ;
74+ CollectionAssert . AreEqual ( DefaultSource [ 1 ..2 ] , result [ 1 ] ) ;
75+ CollectionAssert . AreEqual ( DefaultSource [ 2 ..3 ] , result [ 2 ] ) ;
76+ CollectionAssert . AreEqual ( DefaultSource [ 3 ..4 ] , result [ 3 ] ) ;
7877 }
7978
8079 [ TestMethod ]
81- public void TestAdjacentWithLengthEqualToSource ( )
80+ public void Adjacent_LengthEqualsSource_ReturnsWholeSourceAsWindow ( )
8281 {
83- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
84- var result = source . Adjacent ( 5 ) . ToArray ( ) ;
82+ var result = DefaultSource . Adjacent ( 5 ) . ToList ( ) ;
8583
86- Assert . AreEqual ( 1 , result . Length ) ;
87- CollectionAssert . AreEqual ( source , result [ 0 ] ) ;
84+ Assert . HasCount ( 1 , result ) ;
85+ CollectionAssert . AreEqual ( DefaultSource , result [ 0 ] ) ;
8886 }
8987
9088 [ TestMethod ]
91- public void TestSkipAtWithValidIndex ( )
89+ public void SkipAt_ValidIndex_RemovesElementAtIndex ( )
9290 {
93- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
94- var result = source . SkipAt ( 4 ) . ToArray ( ) ;
95- var expected = ImmutableArray . Create ( 1 , 2 , 3 , 4 ) ;
91+ var result = DefaultSource . SkipAt ( 4 ) . ToList ( ) ;
9692
97- CollectionAssert . AreEqual ( expected , result ) ;
93+ Assert . HasCount ( 4 , result ) ;
94+ CollectionAssert . AreEqual ( DefaultSource [ ..4 ] , result ) ;
9895 }
9996
10097 [ TestMethod ]
101- public void TestSkipAtWithInvalidIndex ( )
98+ public void SkipAt_IndexOutOfRange_ThrowsArgumentOutOfRangeException ( )
10299 {
103100 int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
104- Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => source . SkipAt ( 5 ) . ToArray ( ) ) ;
101+ Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => source . SkipAt ( 5 ) . ToList ( ) ) ;
105102 }
106103
107104 [ TestMethod ]
108- public void TestSkipAtWithNegativeIndex ( )
105+ public void SkipAt_NegativeIndex_ThrowsArgumentOutOfRangeException ( )
109106 {
110- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
111- Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => source . SkipAt ( - 1 ) . ToArray ( ) ) ;
107+ Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => DefaultSource . SkipAt ( - 1 ) ) ;
112108 }
113109
114110 [ TestMethod ]
115- public void TestSkipAtWithEmptySource ( )
111+ public void SkipAt_EmptySource_ThrowsArgumentOutOfRangeException ( )
116112 {
117113 int [ ] source = [ ] ;
118- Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => source . SkipAt ( 0 ) . ToArray ( ) ) ;
114+ Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => source . SkipAt ( 0 ) . ToList ( ) ) ;
119115 }
120116
121117 [ TestMethod ]
122- public void TestSkipAtOrDefaultWithValidIndex ( )
118+ public void SkipAtOrDefault_ValidIndex_RemovesElementAtIndex ( )
123119 {
124- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
125- var result = source . SkipAtOrDefault ( 2 ) . ToArray ( ) ;
126- var expected = new [ ] { 1 , 2 , 4 , 5 } ;
120+ var result = DefaultSource . SkipAtOrDefault ( 2 ) . ToList ( ) ;
121+ int [ ] expected = [ 1 , 2 , 4 , 5 ] ;
127122
128123 CollectionAssert . AreEqual ( expected , result ) ;
129124 }
130125
131126 [ TestMethod ]
132- public void TestSkipAtOrDefaultWithNegativeIndex ( )
127+ public void SkipAtOrDefault_NegativeIndex_ReturnsOriginalSequence ( )
133128 {
134- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
135- var result = source . SkipAtOrDefault ( - 1 ) . ToArray ( ) ;
129+ var result = DefaultSource . SkipAtOrDefault ( - 1 ) . ToList ( ) ;
136130
137- CollectionAssert . AreEqual ( source , result ) ;
131+ CollectionAssert . AreEqual ( DefaultSource , result ) ;
138132 }
139133
140134 [ TestMethod ]
141- public void TestSkipAtOrDefaultWithOutOfRangeIndex ( )
135+ public void SkipAtOrDefault_IndexOutOfRange_ReturnsOriginalSequence ( )
142136 {
143- int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
144- var result = source . SkipAtOrDefault ( 5 ) . ToArray ( ) ;
137+ var result = DefaultSource . SkipAtOrDefault ( 5 ) . ToList ( ) ;
145138
146- CollectionAssert . AreEqual ( source , result ) ;
139+ CollectionAssert . AreEqual ( DefaultSource , result ) ;
147140 }
148141
149142 [ TestMethod ]
150- public void TestSkipAtOrDefaultWithEmptySource ( )
143+ public void SkipAtOrDefault_EmptySource_ReturnsEmpty ( )
151144 {
152145 int [ ] source = [ ] ;
153- var result = source . SkipAtOrDefault ( 0 ) . ToArray ( ) ;
146+ var result = source . SkipAtOrDefault ( 0 ) . ToList ( ) ;
154147
155- Assert . AreEqual ( source , result ) ;
148+ Assert . IsEmpty ( result ) ;
156149 }
157150}
0 commit comments