@@ -13,7 +13,7 @@ namespace Tests
1313 public class ElementAt : AsyncEnumerableTests
1414 {
1515 [ Fact ]
16- public async Task ElementAt_Null ( )
16+ public async Task ElementAtAsync_Null ( )
1717 {
1818 await Assert . ThrowsAsync < ArgumentNullException > ( ( ) => AsyncEnumerable . ElementAtAsync < int > ( default , 0 ) . AsTask ( ) ) ;
1919 await Assert . ThrowsAsync < ArgumentOutOfRangeException > ( ( ) => AsyncEnumerable . ElementAtAsync ( Return42 , - 1 ) . AsTask ( ) ) ;
@@ -23,42 +23,70 @@ public async Task ElementAt_Null()
2323 }
2424
2525 [ Fact ]
26- public async Task ElementAt1Async ( )
26+ public async Task ElementAtAsync_Empty_Index0 ( )
2727 {
2828 var res = AsyncEnumerable . Empty < int > ( ) . ElementAtAsync ( 0 ) ;
2929 await AssertThrowsAsync < ArgumentOutOfRangeException > ( res . AsTask ( ) ) ;
3030 }
3131
3232 [ Fact ]
33- public async Task ElementAt2Async ( )
33+ public async Task ElementAtAsync_Single_Index0 ( )
3434 {
3535 var res = Return42 . ElementAtAsync ( 0 ) ;
3636 Assert . Equal ( 42 , await res ) ;
3737 }
3838
3939 [ Fact ]
40- public async Task ElementAt3Async ( )
40+ public async Task ElementAtAsync_Single_Index1 ( )
4141 {
4242 var res = Return42 . ElementAtAsync ( 1 ) ;
4343 await AssertThrowsAsync < ArgumentOutOfRangeException > ( res . AsTask ( ) ) ;
4444 }
4545
4646 [ Fact ]
47- public async Task ElementAt4Async ( )
47+ public async Task ElementAtAsync_Many_IList_InRange ( )
4848 {
4949 var res = new [ ] { 1 , 42 , 3 } . ToAsyncEnumerable ( ) . ElementAtAsync ( 1 ) ;
5050 Assert . Equal ( 42 , await res ) ;
5151 }
5252
5353 [ Fact ]
54- public async Task ElementAt5Async ( )
54+ public async Task ElementAtAsync_Many_IList_OutOfRange ( )
5555 {
5656 var res = new [ ] { 1 , 42 , 3 } . ToAsyncEnumerable ( ) . ElementAtAsync ( 7 ) ;
5757 await AssertThrowsAsync < ArgumentOutOfRangeException > ( res . AsTask ( ) ) ;
5858 }
5959
6060 [ Fact ]
61- public async Task ElementAt6Async ( )
61+ public async Task ElementAtAsync_Many_IPartition_InRange ( )
62+ {
63+ var res = new [ ] { - 1 , 1 , 42 , 3 } . ToAsyncEnumerable ( ) . Skip ( 1 ) . ElementAtAsync ( 1 ) ;
64+ Assert . Equal ( 42 , await res ) ;
65+ }
66+
67+ [ Fact ]
68+ public async Task ElementAtAsync_Many_IPartition_OutOfRange ( )
69+ {
70+ var res = new [ ] { - 1 , 1 , 42 , 3 } . ToAsyncEnumerable ( ) . Skip ( 1 ) . ElementAtAsync ( 7 ) ;
71+ await AssertThrowsAsync < ArgumentOutOfRangeException > ( res . AsTask ( ) ) ;
72+ }
73+
74+ [ Fact ]
75+ public async Task ElementAtAsync_Many_InRange ( )
76+ {
77+ var res = new [ ] { 1 , 42 , 3 } . ToAsyncEnumerable ( ) . Select ( x => x ) . ElementAtAsync ( 1 ) ;
78+ Assert . Equal ( 42 , await res ) ;
79+ }
80+
81+ [ Fact ]
82+ public async Task ElementAtAsync_Many_OutOfRange ( )
83+ {
84+ var res = new [ ] { 1 , 42 , 3 } . ToAsyncEnumerable ( ) . Select ( x => x ) . ElementAtAsync ( 7 ) ;
85+ await AssertThrowsAsync < ArgumentOutOfRangeException > ( res . AsTask ( ) ) ;
86+ }
87+
88+ [ Fact ]
89+ public async Task ElementAtAsync_Throws_Source ( )
6290 {
6391 var ex = new Exception ( "Bang!" ) ;
6492 var res = Throw < int > ( ex ) . ElementAtAsync ( 15 ) ;
0 commit comments