public async Task AsyncEnumerable_Concat_produces_correct_sequence_when_first_sequence_is_empty() { var array = await AsyncEnumerable.Empty <int>() .Concat(maybe => AsyncEnumerableEx.Return(!maybe.IsSome ? 1 : 2)) .ToArrayAsync(); Assert.Equal(new[] { 1 }, array); }
public IAsyncEnumerable <TElement> Deserialize <TElement>(object result, IGremlinQueryEnvironment environment) { if (!typeof(TElement).IsAssignableFrom(typeof(string))) { throw new InvalidOperationException($"Can't deserialize a string to {typeof(TElement).Name}. Make sure you cast call Cast<string>() on the query before executing it."); } return(AsyncEnumerableEx.Return((TElement)(object)result?.ToString())); }
public IAsyncEnumerable <TElement> Deserialize <TElement>(TExecutionResult result) { if (!typeof(TElement).IsAssignableFrom(typeof(string))) { throw new NotSupportedException(); } return(AsyncEnumerableEx.Return((TElement)(object)result?.ToString())); }
public async ValueTask <int> Linq_AsyncEnumerable_Value() { var sum = 0; await foreach (var item in asyncEnumerableValue.SelectMany(item => AsyncEnumerableEx.Return(item))) { sum += item; } return(sum); }
public async ValueTask <int> Linq_Return_Async() { var sum = 0; await foreach (var item in AsyncEnumerableEx.Return(1)) { sum += item; } return(sum); }
public async Task AsyncEnumerable_Concat_produces_correct_sequence_when_first_sequence_has_values() { var array = await new[] { 1, 2, 3 } .ToAsyncEnumerable() .Concat(maybe => maybe .Filter(x => x == 3) .Match( _ => AsyncEnumerableEx.Return(4), () => AsyncEnumerableEx.Return(-1))) .ToArrayAsync(); Assert.Equal(new[] { 1, 2, 3, 4 }, array); }
public IAsyncEnumerable <TElement> Deserialize <TElement>(object executionResult, IGremlinQueryEnvironment environment) { var result = _fragmentSerializer .TryDeserialize(executionResult, typeof(TElement[]), environment); return(result switch { TElement[] elements => elements.ToAsyncEnumerable(), IAsyncEnumerable <TElement> enumerable => enumerable, TElement element => AsyncEnumerableEx.Return(element), IEnumerable enumerable => enumerable.Cast <TElement>().ToAsyncEnumerable(), { } obj => throw new InvalidCastException($"A result of type {obj.GetType()} can't be interpreted as {nameof(IAsyncEnumerable<TElement>)}."), _ => AsyncEnumerable.Empty <TElement>() });
public async Task Expand1Async() { var xs = new[] { 2, 3 }.ToAsyncEnumerable().Expand(x => AsyncEnumerableEx.Return(x - 1).Repeat(x - 1)); var e = xs.GetAsyncEnumerator(); await HasNextAsync(e, 2); await HasNextAsync(e, 3); await HasNextAsync(e, 1); await HasNextAsync(e, 2); await HasNextAsync(e, 2); await HasNextAsync(e, 1); await HasNextAsync(e, 1); await NoNextAsync(e); }
public async Task AsyncEnumerable_Concat_produces_correct_sequence_when_first_sequence_faults() { var ex = new Exception(); var array = await AsyncEnumerableEx.Throw <int>(ex) .Concat(maybe => AsyncEnumerableEx.Return(1)) .Materialize() .ToArrayAsync(); array .Should() .HaveCount(1); array[0].Exception .Should() .Be(ex); }
public async Task Return1Async() { var xs = AsyncEnumerableEx.Return(42); await HasNextAsync(xs.GetAsyncEnumerator(), 42); }
public async Task Expand4() { var xs = new[] { 2, 3 }.ToAsyncEnumerable().Expand(x => AsyncEnumerableEx.Return(x - 1).Repeat(x - 1)); await SequenceIdentity(xs); }
public IAsyncEnumerable <object> Execute(object groovySerializedQuery) { return(AsyncEnumerableEx .Return(JToken.Parse(_json))); }
public IAsyncEnumerable <TSerializedQuery> Execute(TSerializedQuery serializedQuery) { return(AsyncEnumerableEx.Return(serializedQuery)); }
public IAsyncEnumerable <object> Execute(object groovySerializedQuery, IGremlinQueryEnvironment environment) { return(AsyncEnumerableEx .Return(JToken.Parse(_json))); }
public async Task <int> Linq_AsyncEnumerable_Reference() { var sum = 0; await foreach (var item in AsyncEnumerable.SelectMany(asyncEnumerableReference, item => AsyncEnumerableEx.Return(item))) { sum += item; } return(sum); }
public IAsyncEnumerable <object> Execute(object serializedQuery) { return(AsyncEnumerableEx.Return(serializedQuery)); }
public IAsyncEnumerable <JToken> Execute(GroovySerializedGremlinQuery groovySerializedQuery) { return(AsyncEnumerableEx .Return(JToken.Parse(_json))); }