public void BlinqShouldEqualLinqNativeArrayJoinNativeArray( [ValueSource(typeof(GroupJoinOuterValues), nameof(GroupJoinOuterValues.Values))] JoinA[] outerArr, [ValueSource(typeof(GroupJoinInnerValues), nameof(GroupJoinInnerValues.Values))] JoinB[] innerArr ) { var outer = new NativeArray <JoinA>(outerArr, Allocator.Persistent); var inner = new NativeArray <JoinB>(innerArr, Allocator.Persistent); var expected = ExceptionAndValue(() => Linq.ToArray(Linq.GroupJoin(outer, inner, JoinAKeySelector.Invoke, JoinBKeySelector.Invoke, GroupJoinABLinqSelector))); var actual = ExceptionAndValue(() => Linq.ToArray(Blinq.GroupJoin(outer, inner, JoinAKeySelector, JoinBKeySelector, GroupJoinABSelector))); AssertAreEqual(expected, actual); outer.Dispose(); inner.Dispose(); }
public void LinqArray() { MakeMeasurement(() => Linq.ToList(Linq.GroupJoin <JoinA, JoinB, int, int>(outer, inner, JoinAKeySelector.Invoke, JoinBKeySelector.Invoke, GroupJoinLinqSelector)), "Linq").Run(); }
public static IEnumerable <TResult> GroupJoin <TOuter, TInner, TKey, TResult>(this IEnumerable <TOuter> outer, IEnumerable <TInner> inner, Func <TOuter, TKey> outerKeySelector, Func <TInner, TKey> innerKeySelector, Func <TOuter, IEnumerable <TInner>, TResult> resultSelector, IEqualityComparer <TKey> comparer) => LinqEnumerable.GroupJoin(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer);
public static IEnumerable <TResult> GroupJoin <TOuter, TInner, TKey, TResult>(this IEnumerable <TOuter> outer, IEnumerable <TInner> inner, Func <TOuter, TKey> outerKeySelector, Func <TInner, TKey> innerKeySelector, Func <TOuter, IEnumerable <TInner>, TResult> resultSelector) => Enumerable.GroupJoin(outer, inner, outerKeySelector, innerKeySelector, resultSelector);