|  | @@ -0,0 +1,9663 @@
 | 
	
		
			
				|  |  | +// Licensed to the .NET Foundation under one or more agreements.
 | 
	
		
			
				|  |  | +// The .NET Foundation licenses this file to you under the Apache 2.0 License.
 | 
	
		
			
				|  |  | +// See the LICENSE file in the project root for more information. 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +using System;
 | 
	
		
			
				|  |  | +using System.Collections.Generic;
 | 
	
		
			
				|  |  | +using System.Linq;
 | 
	
		
			
				|  |  | +using System.Threading;
 | 
	
		
			
				|  |  | +using System.Threading.Tasks;
 | 
	
		
			
				|  |  | +using Xunit;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +namespace Tests
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +    public class MinMax : AsyncEnumerableTests
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new int[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(int), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<int>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<int>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Nullable_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new int?[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Nullable_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(int?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Nullable_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<int?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Nullable_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<int?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int32_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int32_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int32_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int32_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new long[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(long), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<long>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<long>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Nullable_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new long?[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Nullable_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(long?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Nullable_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<long?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Nullable_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<long?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Int64_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Int64_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Int64_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Int64_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new float[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(float), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<float>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<float>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Nullable_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new float?[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Nullable_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(float?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Nullable_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<float?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Nullable_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<float?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Single_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Single_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Single_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Single_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new double[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(double), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<double>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<double>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Nullable_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new double?[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Nullable_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(double?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Nullable_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<double?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Nullable_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<double?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Double_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Double_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Double_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Double_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new decimal[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(decimal), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<decimal>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<decimal>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Empty_Nullable_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new decimal?[0].ToAsyncEnumerable().MinAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Empty_Nullable_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(decimal?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Empty_Nullable_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync(_ => default(ValueTask<decimal?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Empty_Nullable_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MinAsync((x, ct) => default(ValueTask<decimal?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Min();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Decimal_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_Selector_Decimal_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelector_Decimal_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Min_AsyncSelectorWithCancellation_Decimal_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Min();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MinAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new int[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(int), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<int>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<int>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Nullable_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new int?[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Nullable_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(int?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Nullable_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<int?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Nullable_Int32()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<int?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(int?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int32_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int32_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int32_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int32_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new int?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<int?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new long[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(long), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<long>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<long>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Nullable_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new long?[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Nullable_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(long?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Nullable_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<long?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Nullable_Int64()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<long?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(long?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Int64_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Int64_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Int64_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Int64_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new long?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<long?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new float[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(float), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<float>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<float>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Nullable_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new float?[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Nullable_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(float?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Nullable_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<float?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Nullable_Single()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<float?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(float?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Single_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Single_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Single_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Single_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new float?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<float?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new double[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(double), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<double>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<double>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Nullable_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new double?[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Nullable_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(double?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Nullable_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<double?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Nullable_Double()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<double?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(double?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Double_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Double_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Double_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Double_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new double?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<double?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new decimal[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(decimal), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<decimal>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            await AssertThrowsAsync<InvalidOperationException>(new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<decimal>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Empty_Nullable_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new decimal?[0].ToAsyncEnumerable().MaxAsync(CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Empty_Nullable_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(decimal?), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Empty_Nullable_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync(_ => default(ValueTask<decimal?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Empty_Nullable_Decimal()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            Assert.Null(await new object[0].ToAsyncEnumerable().MaxAsync((x, ct) => default(ValueTask<decimal?>), CancellationToken.None));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_1()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_1_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_1_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_1_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 33 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_4()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_4_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, -78, -61, -17 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_4_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_4_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -2, null, -61, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_8()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_8_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, -19, 25, -46, 81, -63, -10, -99 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_8_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 8);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_8_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { -48, null, 25, null, 81, null, -10, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_16()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_16_NoNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, 98, -3, 98, 20, 63, -100, 14, -77, -86, -26, -79, 19, -84, -28, 41 }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_16_AllNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = Enumerable.Repeat(default(decimal?), 16);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var expected = input.Max();
 | 
	
		
			
				|  |  | +            var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +            Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Decimal_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_Selector_Decimal_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => x, CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelector_Decimal_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync(x => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if !NO_DEEP_CANCELLATION
 | 
	
		
			
				|  |  | +        [Fact]
 | 
	
		
			
				|  |  | +        public async Task Max_AsyncSelectorWithCancellation_Decimal_Nullable_16_SomeNull()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var input = new decimal?[] { 59, null, -3, null, 20, null, -100, null, -77, null, -26, null, 19, null, -28, null }.AsEnumerable();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (var i = 0; i < 4; i++)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var expected = input.Max();
 | 
	
		
			
				|  |  | +                var actual = await input.ToAsyncEnumerable().MaxAsync((x, ct) => new ValueTask<decimal?>(x), CancellationToken.None);
 | 
	
		
			
				|  |  | +                Assert.Equal(expected, actual);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                input = Shuffle(input);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        private static IEnumerable<T> Shuffle<T>(IEnumerable<T> source)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            var rand = new Random(42);
 | 
	
		
			
				|  |  | +            return source.OrderBy(x => rand.Next());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |