@@ -4,68 +4,75 @@ namespace DotNetExtensionsTests.Collections;
44
55public partial class EnumerableExtensionsTests
66{
7- [ TestMethod ]
8- public void Combinations_LengthZero_ReturnsSingleEmptyCombination ( )
7+ [ Test ]
8+ public async Task Combinations_LengthZero_ReturnsSingleEmptyCombination ( )
99 {
1010 var result = _defaultSource . Combinations ( 0 ) . ToList ( ) ;
11- Assert . HasCount ( 1 , result ) ;
12- Assert . IsEmpty ( result [ 0 ] ) ;
11+
12+ using var _ = Assert . Multiple ( ) ;
13+ await Assert . That ( result ) . HasSingleItem ( ) ;
14+ await Assert . That ( result [ 0 ] ) . IsEmpty ( ) ;
1315 }
1416
15- [ TestMethod ]
16- public void Combinations_LengthOne_ReturnsAllSingleElementCombinations ( )
17+ [ Test ]
18+ public async Task Combinations_LengthOne_ReturnsAllSingleElementCombinations ( )
1719 {
18- var result = _defaultSource . Combinations ( 1 ) . ToList ( ) ;
19- Assert . HasCount ( 5 , result ) ;
20- Assert . IsTrue ( result [ 0 ] is [ 1 ] ) ;
21- Assert . IsTrue ( result [ 1 ] is [ 2 ] ) ;
22- Assert . IsTrue ( result [ 2 ] is [ 3 ] ) ;
23- Assert . IsTrue ( result [ 3 ] is [ 4 ] ) ;
24- Assert . IsTrue ( result [ 4 ] is [ 5 ] ) ;
20+ const int length = 1 ;
21+ var result = _defaultSource . Combinations ( length ) . ToList ( ) ;
22+
23+ using var _ = Assert . Multiple ( ) ;
24+ await Assert . That ( result ) . Count ( ) . IsEqualTo ( _defaultSource . Length ) ;
25+
26+ foreach ( var ( i , item ) in result . Index ( ) )
27+ await Assert . That ( item ) . IsEquivalentTo ( _defaultSource [ i ..( i + length ) ] ) ;
2528 }
2629
27- [ TestMethod ]
28- public void Combinations_LengthTwo_ReturnsAllTwoElementCombinations ( )
30+ [ Test ]
31+ public async Task Combinations_LengthTwo_ReturnsAllTwoElementCombinations ( )
2932 {
3033 var result = _defaultSource . Combinations ( 2 ) . ToList ( ) ;
31- Assert . HasCount ( 10 , result ) ;
32- Assert . IsTrue ( result [ 0 ] is [ 1 , 2 ] ) ;
33- Assert . IsTrue ( result [ 1 ] is [ 1 , 3 ] ) ;
34- Assert . IsTrue ( result [ 2 ] is [ 1 , 4 ] ) ;
35- Assert . IsTrue ( result [ 3 ] is [ 1 , 5 ] ) ;
36- Assert . IsTrue ( result [ 4 ] is [ 2 , 3 ] ) ;
37- Assert . IsTrue ( result [ 5 ] is [ 2 , 4 ] ) ;
38- Assert . IsTrue ( result [ 6 ] is [ 2 , 5 ] ) ;
39- Assert . IsTrue ( result [ 7 ] is [ 3 , 4 ] ) ;
40- Assert . IsTrue ( result [ 8 ] is [ 3 , 5 ] ) ;
41- Assert . IsTrue ( result [ 9 ] is [ 4 , 5 ] ) ;
34+
35+ using var _ = Assert . Multiple ( ) ;
36+ await Assert . That ( result ) . Count ( ) . IsEqualTo ( 10 ) ;
37+ await Assert . That ( result [ 0 ] ) . IsEquivalentTo ( [ 1 , 2 ] ) ;
38+ await Assert . That ( result [ 1 ] ) . IsEquivalentTo ( [ 1 , 3 ] ) ;
39+ await Assert . That ( result [ 2 ] ) . IsEquivalentTo ( [ 1 , 4 ] ) ;
40+ await Assert . That ( result [ 3 ] ) . IsEquivalentTo ( [ 1 , 5 ] ) ;
41+ await Assert . That ( result [ 4 ] ) . IsEquivalentTo ( [ 2 , 3 ] ) ;
42+ await Assert . That ( result [ 5 ] ) . IsEquivalentTo ( [ 2 , 4 ] ) ;
43+ await Assert . That ( result [ 6 ] ) . IsEquivalentTo ( [ 2 , 5 ] ) ;
44+ await Assert . That ( result [ 7 ] ) . IsEquivalentTo ( [ 3 , 4 ] ) ;
45+ await Assert . That ( result [ 8 ] ) . IsEquivalentTo ( [ 3 , 5 ] ) ;
46+ await Assert . That ( result [ 9 ] ) . IsEquivalentTo ( [ 4 , 5 ] ) ;
4247 }
4348
44- [ TestMethod ]
45- public void Combinations_LengthThree_ReturnsAllThreeElementCombinations ( )
49+ [ Test ]
50+ public async Task Combinations_LengthThree_ReturnsAllThreeElementCombinations ( )
4651 {
4752 var result = _defaultSource . Combinations ( 3 ) . ToList ( ) ;
48- Assert . HasCount ( 10 , result ) ;
49- Assert . IsTrue ( result [ 0 ] is [ 1 , 2 , 3 ] ) ;
50- Assert . IsTrue ( result [ 1 ] is [ 1 , 2 , 4 ] ) ;
51- Assert . IsTrue ( result [ 2 ] is [ 1 , 2 , 5 ] ) ;
52- Assert . IsTrue ( result [ 3 ] is [ 1 , 3 , 4 ] ) ;
53- Assert . IsTrue ( result [ 4 ] is [ 1 , 3 , 5 ] ) ;
54- Assert . IsTrue ( result [ 5 ] is [ 1 , 4 , 5 ] ) ;
55- Assert . IsTrue ( result [ 6 ] is [ 2 , 3 , 4 ] ) ;
56- Assert . IsTrue ( result [ 7 ] is [ 2 , 3 , 5 ] ) ;
57- Assert . IsTrue ( result [ 8 ] is [ 2 , 4 , 5 ] ) ;
58- Assert . IsTrue ( result [ 9 ] is [ 3 , 4 , 5 ] ) ;
53+
54+ using var _ = Assert . Multiple ( ) ;
55+ await Assert . That ( result ) . Count ( ) . IsEqualTo ( 10 ) ;
56+ await Assert . That ( result [ 0 ] ) . IsEquivalentTo ( [ 1 , 2 , 3 ] ) ;
57+ await Assert . That ( result [ 1 ] ) . IsEquivalentTo ( [ 1 , 2 , 4 ] ) ;
58+ await Assert . That ( result [ 2 ] ) . IsEquivalentTo ( [ 1 , 2 , 5 ] ) ;
59+ await Assert . That ( result [ 3 ] ) . IsEquivalentTo ( [ 1 , 3 , 4 ] ) ;
60+ await Assert . That ( result [ 4 ] ) . IsEquivalentTo ( [ 1 , 3 , 5 ] ) ;
61+ await Assert . That ( result [ 5 ] ) . IsEquivalentTo ( [ 1 , 4 , 5 ] ) ;
62+ await Assert . That ( result [ 6 ] ) . IsEquivalentTo ( [ 2 , 3 , 4 ] ) ;
63+ await Assert . That ( result [ 7 ] ) . IsEquivalentTo ( [ 2 , 3 , 5 ] ) ;
64+ await Assert . That ( result [ 8 ] ) . IsEquivalentTo ( [ 2 , 4 , 5 ] ) ;
65+ await Assert . That ( result [ 9 ] ) . IsEquivalentTo ( [ 3 , 4 , 5 ] ) ;
5966 }
6067
61- [ TestMethod ]
62- public void Combinations_LengthGreaterThanSource_ReturnsEmpty ( )
68+ [ Test ]
69+ public async Task Combinations_LengthGreaterThanSource_ReturnsEmpty ( )
6370 {
6471 var result = _defaultSource . Combinations ( 6 ) . ToList ( ) ;
65- Assert . IsEmpty ( result ) ;
72+ await Assert . That ( result ) . IsEmpty ( ) ;
6673 }
6774
68- [ TestMethod ]
75+ [ Test ]
6976 public void Combinations_NegativeLength_ThrowsArgumentOutOfRangeException ( )
7077 {
7178 Assert . ThrowsExactly < ArgumentOutOfRangeException > ( ( ) => _defaultSource . Combinations ( - 1 ) ) ;
0 commit comments