فهرست منبع

Improve tests for To*.

Bart De Smet 6 سال پیش
والد
کامیت
2cdc2afe9b

+ 21 - 5
Ix.NET/Source/System.Linq.Async.Tests/System/Linq/Operators/ToArray.cs

@@ -21,7 +21,7 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToArray1()
+        public async Task ToArray_IAsyncIListProvider_Simple()
         {
         {
             var xs = new[] { 42, 25, 39 };
             var xs = new[] { 42, 25, 39 };
             var res = xs.ToAsyncEnumerable().ToArrayAsync();
             var res = xs.ToAsyncEnumerable().ToArrayAsync();
@@ -29,7 +29,23 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToArray2()
+        public async Task ToArray_IAsyncIListProvider_Empty1()
+        {
+            var xs = new int[0];
+            var res = xs.ToAsyncEnumerable().ToArrayAsync();
+            Assert.True((await res).SequenceEqual(xs));
+        }
+
+        [Fact]
+        public async Task ToArray_IAsyncIListProvider_Empty2()
+        {
+            var xs = new HashSet<int>();
+            var res = xs.ToAsyncEnumerable().ToArrayAsync();
+            Assert.True((await res).SequenceEqual(xs));
+        }
+
+        [Fact]
+        public async Task ToArray_Empty()
         {
         {
             var xs = AsyncEnumerable.Empty<int>();
             var xs = AsyncEnumerable.Empty<int>();
             var res = xs.ToArrayAsync();
             var res = xs.ToArrayAsync();
@@ -37,7 +53,7 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToArray3Async()
+        public async Task ToArray_Throw()
         {
         {
             var ex = new Exception("Bang!");
             var ex = new Exception("Bang!");
             var res = Throw<int>(ex).ToArrayAsync();
             var res = Throw<int>(ex).ToArrayAsync();
@@ -45,7 +61,7 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToArray4()
+        public async Task ToArray_Query()
         {
         {
             var xs = await AsyncEnumerable.Range(5, 50).Take(10).ToArrayAsync();
             var xs = await AsyncEnumerable.Range(5, 50).Take(10).ToArrayAsync();
             var ex = new[] { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
             var ex = new[] { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
@@ -54,7 +70,7 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToArray5()
+        public async Task ToArray_Set()
         {
         {
             var res = new[] { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
             var res = new[] { 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
             var xs = new HashSet<int>(res);
             var xs = new HashSet<int>(res);

+ 16 - 1
Ix.NET/Source/System.Linq.Async.Tests/System/Linq/Operators/ToHashSet.cs

@@ -23,11 +23,26 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToHashSet1()
+        public async Task ToHashSet_Simple()
         {
         {
             var xs = new[] { 1, 2, 1, 2, 3, 4, 1, 2, 3, 4 };
             var xs = new[] { 1, 2, 1, 2, 3, 4, 1, 2, 3, 4 };
             var res = xs.ToAsyncEnumerable().ToHashSetAsync();
             var res = xs.ToAsyncEnumerable().ToHashSetAsync();
             Assert.True((await res).OrderBy(x => x).SequenceEqual(new[] { 1, 2, 3, 4 }));
             Assert.True((await res).OrderBy(x => x).SequenceEqual(new[] { 1, 2, 3, 4 }));
         }
         }
+
+        [Fact]
+        public async Task ToHashSet_Comparer()
+        {
+            var xs = new[] { 1, 12, 11, 2, 3, 14, 1, 12, 13, 4 };
+            var res = xs.ToAsyncEnumerable().ToHashSetAsync(new Eq());
+            Assert.True((await res).OrderBy(x => x).SequenceEqual(new[] { 1, 3, 12, 14 }));
+        }
+
+        private class Eq : IEqualityComparer<int>
+        {
+            public bool Equals(int x, int y) => x % 10 == y % 10;
+
+            public int GetHashCode(int obj) => obj % 10;
+        }
     }
     }
 }
 }

+ 3 - 3
Ix.NET/Source/System.Linq.Async.Tests/System/Linq/Operators/ToList.cs

@@ -20,7 +20,7 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToList1()
+        public async Task ToList_Simple()
         {
         {
             var xs = new[] { 42, 25, 39 };
             var xs = new[] { 42, 25, 39 };
             var res = xs.ToAsyncEnumerable().ToListAsync();
             var res = xs.ToAsyncEnumerable().ToListAsync();
@@ -28,7 +28,7 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToList2()
+        public async Task ToList_Empty()
         {
         {
             var xs = AsyncEnumerable.Empty<int>();
             var xs = AsyncEnumerable.Empty<int>();
             var res = xs.ToListAsync();
             var res = xs.ToListAsync();
@@ -36,7 +36,7 @@ namespace Tests
         }
         }
 
 
         [Fact]
         [Fact]
-        public async Task ToList3Async()
+        public async Task ToList_Throw()
         {
         {
             var ex = new Exception("Bang!");
             var ex = new Exception("Bang!");
             var res = Throw<int>(ex).ToListAsync();
             var res = Throw<int>(ex).ToListAsync();