@@ -32,7 +32,7 @@ public void TestPairwiseWithOneElement()
3232 public void TestPairwiseWithNoElements ( )
3333 {
3434 int [ ] source = [ ] ;
35- var result = source . Pairwise ( ) . ToImmutableArray ( ) ;
35+ var result = source . Pairwise ( ) . ToArray ( ) ;
3636
3737 Assert . AreEqual ( 0 , result . Length ) ;
3838 }
@@ -55,33 +55,103 @@ public void TestAdjacentWithInvalidLength()
5555 int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
5656 var result = source . Adjacent ( 6 ) . ToArray ( ) ;
5757
58- Assert . AreEqual ( 0 , result . Length ) ;
58+ Assert . AreEqual ( [ ] , result ) ;
59+ }
60+
61+ [ TestMethod ]
62+ public void TestAdjacentWithZeroLength ( )
63+ {
64+ int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
65+ var result = source . Adjacent ( 0 ) . ToArray ( ) ;
66+
67+ Assert . AreEqual ( [ ] , result ) ;
68+ }
69+
70+ [ TestMethod ]
71+ public void TestAdjacentWithLengthOne ( )
72+ {
73+ int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
74+ var result = source . Adjacent ( 1 ) . ToArray ( ) ;
75+
76+ var expected = ImmutableArray . Create < int [ ] > ( [ 1 ] , [ 2 ] , [ 3 ] , [ 4 ] , [ 5 ] ) ;
77+ CollectionAssert . AreEqual ( expected , result ) ;
78+ }
79+
80+ [ TestMethod ]
81+ public void TestAdjacentWithLengthEqualToSource ( )
82+ {
83+ int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
84+ var result = source . Adjacent ( 5 ) . ToArray ( ) ;
85+
86+ Assert . AreEqual ( 1 , result . Length ) ;
87+ CollectionAssert . AreEqual ( source , result [ 0 ] ) ;
5988 }
6089
6190 [ TestMethod ]
6291 public void TestSkipAtWithValidIndex ( )
6392 {
6493 int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
65- var result = source . SkipAt ( 4 ) . ToImmutableArray ( ) ;
94+ var result = source . SkipAt ( 4 ) . ToArray ( ) ;
95+ var expected = ImmutableArray . Create ( 1 , 2 , 3 , 4 ) ;
6696
67- Assert . AreEqual ( 4 , result . Length ) ;
68- Assert . AreEqual ( 1 , result [ 0 ] ) ;
69- Assert . AreEqual ( 2 , result [ 1 ] ) ;
70- Assert . AreEqual ( 3 , result [ 2 ] ) ;
71- Assert . AreEqual ( 4 , result [ 3 ] ) ;
97+ CollectionAssert . AreEqual ( expected , result ) ;
7298 }
7399
74100 [ TestMethod ]
75101 public void TestSkipAtWithInvalidIndex ( )
76102 {
77103 int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
78- var result = source . SkipAt ( 5 ) . ToImmutableArray ( ) ;
79-
80- Assert . AreEqual ( 5 , result . Length ) ;
81- Assert . AreEqual ( 1 , result [ 0 ] ) ;
82- Assert . AreEqual ( 2 , result [ 1 ] ) ;
83- Assert . AreEqual ( 3 , result [ 2 ] ) ;
84- Assert . AreEqual ( 4 , result [ 3 ] ) ;
85- Assert . AreEqual ( 5 , result [ 4 ] ) ;
104+ Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => source . SkipAt ( 5 ) . ToArray ( ) ) ;
105+ }
106+
107+ [ TestMethod ]
108+ public void TestSkipAtWithNegativeIndex ( )
109+ {
110+ int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
111+ Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => source . SkipAt ( - 1 ) . ToArray ( ) ) ;
112+ }
113+
114+ [ TestMethod ]
115+ public void TestSkipAtWithEmptySource ( )
116+ {
117+ int [ ] source = [ ] ;
118+ Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => source . SkipAt ( 0 ) . ToArray ( ) ) ;
119+ }
120+
121+ [ TestMethod ]
122+ public void TestSkipAtOrDefaultWithValidIndex ( )
123+ {
124+ int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
125+ var result = source . SkipAtOrDefault ( 2 ) . ToArray ( ) ;
126+ var expected = new [ ] { 1 , 2 , 4 , 5 } ;
127+
128+ CollectionAssert . AreEqual ( expected , result ) ;
129+ }
130+
131+ [ TestMethod ]
132+ public void TestSkipAtOrDefaultWithNegativeIndex ( )
133+ {
134+ int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
135+ var result = source . SkipAtOrDefault ( - 1 ) . ToArray ( ) ;
136+
137+ CollectionAssert . AreEqual ( source , result ) ;
138+ }
139+
140+ [ TestMethod ]
141+ public void TestSkipAtOrDefaultWithOutOfRangeIndex ( )
142+ {
143+ int [ ] source = [ 1 , 2 , 3 , 4 , 5 ] ;
144+ var result = source . SkipAtOrDefault ( 5 ) . ToArray ( ) ;
145+
146+ CollectionAssert . AreEqual ( source , result ) ;
147+ }
148+
149+ [ TestMethod ]
150+ public void TestSkipAtOrDefaultWithEmptySource ( )
151+ {
152+ int [ ] source = [ ] ;
153+ var result = source . SkipAtOrDefault ( 0 ) . ToArray ( ) ;
154+
155+ Assert . AreEqual ( source , result ) ;
86156 }
87157}
0 commit comments