Compare commits

...

22 Commits

Author SHA1 Message Date
Ikiru Yoshizaki
51cc6e71e9 chore: add demo script which follows README 2021-04-27 10:43:58 +09:00
Yoshifumi Kawai
958a8e11ab Merge pull request #266 from oktomus/patch-1
Fix wording and code instructions for -batchmode usage
2021-04-21 16:51:30 +09:00
Kevin Masson
257186313b Fix wording and code instructions for -batchmode usage
`Environment.Exit(0)` didn't work for me, the process was still running. `EditorApplication.Exit(0);` works and kills the `Unity Editor` process correctly.
2021-04-20 14:31:16 +02:00
Ikiru Yoshizaki
5bd508b31c shore: skip ci supported by default 2021-04-19 18:47:10 +09:00
Yoshifumi Kawai
9e18ba332e Update README.md 2021-04-18 11:26:35 +09:00
Yoshifumi Kawai
946b9003f0 Update README.md 2021-04-13 19:03:58 +09:00
Yoshifumi Kawai
ffa55becf3 Update README.md 2021-04-13 14:09:32 +09:00
github-actions[bot]
72e620d169 feat: Update package.json to 2.2.5 2021-04-06 04:33:51 +00:00
github-actions[bot]
10ebddf892 Revert "feat: Update package.json to 2.2.5"
This reverts commit 4fc9ca315e.
2021-04-06 13:33:09 +09:00
neuecc
c51e45ee21 Merge remote-tracking branch 'origin/master' 2021-04-06 13:32:36 +09:00
neuecc
6968faf35b remove remove 2021-04-06 13:32:31 +09:00
github-actions[bot]
4fc9ca315e feat: Update package.json to 2.2.5 2021-04-06 04:24:55 +00:00
neuecc
aaf1c0eaa1 assembly signed 2021-04-06 13:23:56 +09:00
neuecc
44ce3c96bb en-us docs 2021-04-06 13:17:11 +09:00
Yoshifumi Kawai
03097f08e2 Merge pull request #259 from hadoumune/patch-1
fix typo unitySynchronizationContext
2021-04-06 13:11:28 +09:00
Yoshifumi Kawai
af82dd719e Merge pull request #260 from euglenach/master
fix typo in README.md
2021-04-06 13:11:03 +09:00
neuecc
ecd3625a08 Fix UniTaskAsyncEnumerable.Prepend does not work, #251 2021-04-06 13:08:18 +09:00
neuecc
da8f599ccb fix unittest more 2021-04-06 13:05:52 +09:00
neuecc
aa3216e48d fix invalid unit tests(BeEquilvalentTo -> Equal) 2021-04-06 13:02:50 +09:00
Euglenach
5f7148419f fix typo in README.md
Enumerbale → Enumerable
2021-04-06 00:31:18 +09:00
Ikiru Yoshizaki
89ae106ea7 fix: release tag update when package.json has change 2021-04-05 11:06:40 +09:00
hatomune
721a7d9e4e fix typo unitySynchronizationContext
When I was following the context switch flow, I found a typo, so I fixed it.
2021-04-04 01:17:23 +09:00
41 changed files with 1817 additions and 272 deletions

View File

@@ -12,7 +12,6 @@ on:
jobs:
build-dotnet:
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
runs-on: ubuntu-latest
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
@@ -26,7 +25,7 @@ jobs:
- run: dotnet test -c Debug ./src/UniTask.NetCoreTests/UniTask.NetCoreTests.csproj
build-unity:
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]')) && ((github.event_name == 'push' && github.repository_owner == 'Cysharp') || startsWith(github.event.pull_request.head.label, 'Cysharp:'))"
if: "((github.event_name == 'push' && github.repository_owner == 'Cysharp') || startsWith(github.event.pull_request.head.label, 'Cysharp:'))"
strategy:
matrix:
unity: ["2019.3.9f1", "2019.4.13f1", "2020.1.12f1"]

View File

@@ -8,7 +8,6 @@ on:
jobs:
run-docfx:
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -28,4 +27,4 @@ jobs:
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/_site
publish_dir: docs/_site

View File

@@ -26,40 +26,51 @@ jobs:
sha: ${{ steps.commit.outputs.sha }}
steps:
- uses: actions/checkout@v2
- name: before
- name: Output package.json (Before)
run: cat ${{ env.TARGET_FILE}}
- name: update package.json to version ${{ env.GIT_TAG }}
- name: Update package.json to version ${{ env.GIT_TAG }}
run: sed -i -e "s/\(\"version\":\) \"\(.*\)\",/\1 \"${{ env.GIT_TAG }}\",/" ${{ env.TARGET_FILE }}
- name: after
run: cat ${{ env.TARGET_FILE}}
- name: Check update
id: check_update
run: |
cat ${{ env.TARGET_FILE}}
git diff --exit-code || echo "::set-output name=changed::1"
- name: Commit files
id: commit
if: steps.check_update.outputs.changed == '1'
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit -m "feat: Update package.json to ${{ env.GIT_TAG }}" -a
echo "::set-output name=sha::$(git rev-parse HEAD)"
- name: check sha
- name: Check sha
run: echo "SHA ${SHA}"
env:
SHA: ${{ steps.commit.outputs.sha }}
- name: tag
- name: Create Tag
if: steps.check_update.outputs.changed == '1'
run: git tag ${{ env.GIT_TAG }}
if: env.DRY_RUN == 'false'
- name: Push changes
if: env.DRY_RUN == 'false' && steps.check_update.outputs.changed == '1'
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
tags: true
if: env.DRY_RUN == 'false'
- name: Push changes (dry_run)
if: env.DRY_RUN == 'true' && steps.check_update.outputs.changed == '1'
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ env.DRY_RUN_BRANCH_PREFIX }}-${{ env.GIT_TAG }}
tags: false
if: env.DRY_RUN == 'true'
build-dotnet:
needs: [update-packagejson]

View File

@@ -241,9 +241,57 @@ CancellationToken can be created by `CancellationTokenSource` or MonoBehaviour's
await UniTask.DelayFrame(1000, cancellationToken: this.GetCancellationTokenOnDestroy());
```
When cancellation is detected, all methods throw `OperationCanceledException` and propagate upstream. `OperationCanceledException` is a special exception, if this exception is not handled, it is propagated finally to `UniTaskScheduler.UnobservedTaskException`.
For propagate Cancellation, all async method recommend to accept `CancellationToken cancellationToken` at last argument, and pass `CancellationToken` from root to end.
The default behaviour of received unhandled exception is to write log as exception. Log level can be changed using `UniTaskScheduler.UnobservedExceptionWriteLogType`. If you want to use custom behaviour, set an action to `UniTaskScheduler.UnobservedTaskException.`
```csharp
await FooAsync(this.GetCancellationTokenOnDestroy());
// ---
async UniTask FooAsync(CancellationToken cancellationToken)
{
await BarAsync(cancellationToken);
}
async UniTask BarAsync(CancellationToken cancellationToken)
{
await UniTask.Delay(TimeSpan.FromSeconds(3), cancellationToken);
}
```
`CancellationToken` means lifecycle of async. You can hold your own lifecycle insteadof default CancellationTokenOnDestroy.
```csharp
public class MyBehaviour : MonoBehaviour
{
CancellationTokenSource disableCancellation = new CancellationTokenSource();
CancellationTokenSource destroyCancellation = new CancellationTokenSource();
private void OnEnable()
{
if (disableCancellation != null)
{
disableCancellation.Dispose();
}
disableCancellation = new CancellationTokenSource();
}
private void OnDisable()
{
disableCancellation.Cancel();
}
private void OnDestroy()
{
destroyCancellation.Cancel();
destroyCancellation.Dispose();
}
}
```
When cancellation is detected, all methods throw `OperationCanceledException` and propagate upstream. When exception(not limited to `OperationCanceledException`) is not handled in async method, it is propagated finally to `UniTaskScheduler.UnobservedTaskException`. The default behaviour of received unhandled exception is to write log as exception. Log level can be changed using `UniTaskScheduler.UnobservedExceptionWriteLogType`. If you want to use custom behaviour, set an action to `UniTaskScheduler.UnobservedTaskException.`
Andalso `OperationCanceledException` is a special exception, this is silently ignored at `UnobservedTaskException`.
If you want to cancel behaviour in an async UniTask method, throw `OperationCanceledException` manually.
@@ -265,7 +313,7 @@ public async UniTask<int> BarAsync()
var x = await FooAsync();
return x * 2;
}
catch (Exception ex) when (!(ex is OperationCanceledException))
catch (Exception ex) when (!(ex is OperationCanceledException)) // when (ex is not OperationCanceledException) at C# 9.0
{
return -1;
}
@@ -669,7 +717,7 @@ Async LINQ is enabled when `using Cysharp.Threading.Tasks.Linq;`, and `UniTaskAs
It's closer to UniRx (Reactive Extensions), but UniTaskAsyncEnumerable is a pull-based asynchronous stream, whereas Rx was a push-based asynchronous stream. Note that although similar, the characteristics are different and the details behave differently along with them.
`UniTaskAsyncEnumerable` is the entry point like `Enumerbale`. In addition to the standard query operators, there are other generators for Unity such as `EveryUpdate`, `Timer`, `TimerFrame`, `Interval`, `IntervalFrame`, and `EveryValueChanged`. And also added additional UniTask original query operators like `Append`, `Prepend`, `DistinctUntilChanged`, `ToHashSet`, `Buffer`, `CombineLatest`, `Do`, `Never`, `ForEachAsync`, `Pairwise`, `Publish`, `Queue`, `Return`, `SkipUntil`, `TakeUntil`, `SkipUntilCanceled`, `TakeUntilCanceled`, `TakeLast`, `Subscribe`.
`UniTaskAsyncEnumerable` is the entry point like `Enumerable`. In addition to the standard query operators, there are other generators for Unity such as `EveryUpdate`, `Timer`, `TimerFrame`, `Interval`, `IntervalFrame`, and `EveryValueChanged`. And also added additional UniTask original query operators like `Append`, `Prepend`, `DistinctUntilChanged`, `ToHashSet`, `Buffer`, `CombineLatest`, `Do`, `Never`, `ForEachAsync`, `Pairwise`, `Publish`, `Queue`, `Return`, `SkipUntil`, `TakeUntil`, `SkipUntilCanceled`, `TakeUntilCanceled`, `TakeLast`, `Subscribe`.
The method with Func as an argument has three additional overloads, `***Await`, `***AwaitWithCancellation`.
@@ -848,7 +896,7 @@ button.OnClickAsAsyncEnumerable().Subscribe(async x =>
Channel
---
`Channel` is the same as [System.Threading.Tasks.Channels](https://docs.microsoft.com/ja-jp/dotnet/api/system.threading.channels?view=netcore-3.1) which is similar to a GoLang Channel.
`Channel` is the same as [System.Threading.Tasks.Channels](https://docs.microsoft.com/en-us/dotnet/api/system.threading.channels?view=netcore-3.1) which is similar to a GoLang Channel.
Currently it only supports multiple-producer, single-consumer unbounded channels. It can create by `Channel.CreateSingleConsumerUnbounded<T>()`.
@@ -937,7 +985,7 @@ UniTask can run on Unity Editor like an Editor Coroutine. However, there are som
* UniTask.Delay's DelayType.DeltaTime, UnscaledDeltaTime do not work correctly because they can not get deltaTime in editor. Therefore run on EditMode, automatically change DelayType to `DelayType.Realtime` that wait for the right time.
* All PlayerLoopTiming run on the timing `EditorApplication.update`.
* `-batchmode` with `-quit` does not work because does not run `EditorApplication.update`(quit on single frame) so should not use `-quit` and quit manually with `Environment.Exit(0)`.
* `-batchmode` with `-quit` does not work because Unity does not run `EditorApplication.update` and quit after a single frame. Instead, don't use `-quit` and quit manually with `EditorApplication.Exit(0)`.
Compare with Standard Task API
---

View File

@@ -19,6 +19,8 @@
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageIcon>Icon.png</PackageIcon>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>opensource.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
@@ -26,31 +28,8 @@
</ItemGroup>
<ItemGroup>
<Compile Include="..\UniTask\Assets\Plugins\UniTask\Runtime\**\*.cs"
Exclude="
..\UniTask\Assets\Plugins\UniTask\Editor\*.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\Triggers\*.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\Linq\UnityExtensions\*.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\UnityEqualityComparer.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\DiagnosticsExtensions.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\PlayerLoopRunner.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\ContinuationQueue.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\UnityWebRequestExtensions.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\UniTaskSynchronizationContext.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\CancellationTokenSourceExtensions.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\EnumeratorAsyncExtensions.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\TimeoutController.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\PlayerLoopHelper.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\PlayerLoopTimer.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\UniTask.Delay.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\UniTask.Run.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\UniTask.Bridge.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\UniTask.WaitUntil.cs;
..\UniTask\Assets\Plugins\UniTask\Runtime\UnityAsyncExtensions.*;
..\UniTask\Assets\Plugins\UniTask\Runtime\UnityBindingExtensions.cs;
" />
<Compile Include="..\UniTask\Assets\Plugins\UniTask\Runtime\**\*.cs" Exclude="&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Editor\*.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\Triggers\*.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\Linq\UnityExtensions\*.cs;&#xD;&#xA; &#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\UnityEqualityComparer.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\DiagnosticsExtensions.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\PlayerLoopRunner.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\ContinuationQueue.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\Internal\UnityWebRequestExtensions.cs;&#xD;&#xA; &#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\UniTaskSynchronizationContext.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\CancellationTokenSourceExtensions.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\EnumeratorAsyncExtensions.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\TimeoutController.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\PlayerLoopHelper.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\PlayerLoopTimer.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\UniTask.Delay.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\UniTask.Run.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\UniTask.Bridge.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\UniTask.WaitUntil.cs;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\UnityAsyncExtensions.*;&#xD;&#xA;..\UniTask\Assets\Plugins\UniTask\Runtime\UnityBindingExtensions.cs;&#xD;&#xA;" />
<Compile Remove="..\UniTask\Assets\Plugins\UniTask\Runtime\_InternalVisibleTo.cs" />
</ItemGroup>
<ItemGroup>

Binary file not shown.

View File

@@ -31,7 +31,7 @@ namespace NetCoreTests
var ar = await array;
ar.Should().BeEquivalentTo(new[] { 99, 100, 100, 100, 131 });
ar.Should().Equal(new[] { 99, 100, 100, 100, 131 });
}
[Fact]
@@ -49,7 +49,7 @@ namespace NetCoreTests
var ar = await array;
ar.Should().BeEquivalentTo(new[] { 100, 100, 100, 131, 191 });
ar.Should().Equal(new[] { 100, 100, 100, 131, 191 });
}
//[Fact]
@@ -70,7 +70,7 @@ namespace NetCoreTests
// var ar = await array;
// ar.Should().BeEquivalentTo(new[] { 99, 100, 100, 100, 131 });
// ar.Should().Equal(new[] { 99, 100, 100, 100, 131 });
//}
//[Fact]
@@ -88,7 +88,7 @@ namespace NetCoreTests
// var ar = await array;
// ar.Should().BeEquivalentTo(new[] { 100, 100, 100, 131, 191 });
// ar.Should().Equal(new[] { 100, 100, 100, 131, 191 });
//}

View File

@@ -276,8 +276,8 @@ namespace NetCoreTests
reference.Writer.TryComplete();
channel.Writer.TryComplete();
(await ta1).Should().BeEquivalentTo(new[] { 10, 20, 30 });
(await ta2).Should().BeEquivalentTo(new[] { 10, 20, 30 });
(await ta1).Should().Equal(new[] { 10, 20, 30 });
(await ta2).Should().Equal(new[] { 10, 20, 30 });
}
[Fact]

View File

@@ -481,7 +481,7 @@ namespace NetCoreTests.Linq
list.Add(x);
});
list.Should().BeEquivalentTo(Enumerable.Range(1, 10));
list.Should().Equal(Enumerable.Range(1, 10));
var list2 = new List<(int, int)>();
await Enumerable.Range(5, 10).ToUniTaskAsyncEnumerable().ForEachAsync((index, x) =>
@@ -490,7 +490,7 @@ namespace NetCoreTests.Linq
});
var list3 = Enumerable.Range(5, 10).Select((index, x) => (index, x)).ToArray();
list2.Should().BeEquivalentTo(list3);
list2.Should().Equal(list3);
}
}
}

View File

@@ -24,7 +24,7 @@ namespace NetCoreTests.Linq
var xs = await Enumerable.Range(start, count).ToUniTaskAsyncEnumerable().Append(99).ToArrayAsync();
var ys = Enumerable.Range(start, count).Append(99).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -50,7 +50,7 @@ namespace NetCoreTests.Linq
var xs = await Enumerable.Range(start, count).ToUniTaskAsyncEnumerable().Prepend(99).ToArrayAsync();
var ys = Enumerable.Range(start, count).Prepend(99).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -85,7 +85,7 @@ namespace NetCoreTests.Linq
var xs = await l.ToUniTaskAsyncEnumerable().Concat(r.ToUniTaskAsyncEnumerable()).ToArrayAsync();
var ys = l.Concat(r).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -119,17 +119,17 @@ namespace NetCoreTests.Linq
{
var xs = await Enumerable.Range(1, 0).ToUniTaskAsyncEnumerable().DefaultIfEmpty(99).ToArrayAsync();
var ys = Enumerable.Range(1, 0).DefaultIfEmpty(99).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await Enumerable.Range(1, 1).ToUniTaskAsyncEnumerable().DefaultIfEmpty(99).ToArrayAsync();
var ys = Enumerable.Range(1, 1).DefaultIfEmpty(99).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await Enumerable.Range(1, 10).ToUniTaskAsyncEnumerable().DefaultIfEmpty(99).ToArrayAsync();
var ys = Enumerable.Range(1, 10).DefaultIfEmpty(99).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
// Throw
{

View File

@@ -34,11 +34,11 @@ namespace NetCoreTests.Linq
{
{
var xs = await UniTaskAsyncEnumerable.Range(1, 10).ToObservable().ToArray();
xs.Should().BeEquivalentTo(Enumerable.Range(1, 10));
xs.Should().Equal(Enumerable.Range(1, 10));
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, 0).ToObservable().ToArray();
xs.Should().BeEquivalentTo(Enumerable.Range(1, 0));
xs.Should().Equal(Enumerable.Range(1, 0));
}
}
@@ -70,21 +70,21 @@ namespace NetCoreTests.Linq
var xs = await Observable.Range(1, 100).ToUniTaskAsyncEnumerable().ToArrayAsync();
var ys = await Observable.Range(1, 100).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await Observable.Range(1, 100, ThreadPoolScheduler.Instance).ToUniTaskAsyncEnumerable().ToArrayAsync();
var ys = await Observable.Range(1, 100, ThreadPoolScheduler.Instance).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await Observable.Empty<int>(ThreadPoolScheduler.Instance).ToUniTaskAsyncEnumerable().ToArrayAsync();
var ys = await Observable.Empty<int>(ThreadPoolScheduler.Instance).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
@@ -95,25 +95,25 @@ namespace NetCoreTests.Linq
var xs = await Enumerable.Range(1, 100).ToUniTaskAsyncEnumerable().ToDictionaryAsync(x => x);
var ys = Enumerable.Range(1, 100).ToDictionary(x => x);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.OrderBy(x => x.Key).Should().Equal(ys.OrderBy(x => x.Key));
}
{
var xs = await Enumerable.Range(1, 0).ToUniTaskAsyncEnumerable().ToDictionaryAsync(x => x);
var ys = Enumerable.Range(1, 0).ToDictionary(x => x);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.OrderBy(x => x.Key).Should().Equal(ys.OrderBy(x => x.Key));
}
{
var xs = await Enumerable.Range(1, 100).ToUniTaskAsyncEnumerable().ToDictionaryAsync(x => x, x => x * 2);
var ys = Enumerable.Range(1, 100).ToDictionary(x => x, x => x * 2);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.OrderBy(x => x.Key).Should().Equal(ys.OrderBy(x => x.Key));
}
{
var xs = await Enumerable.Range(1, 0).ToUniTaskAsyncEnumerable().ToDictionaryAsync(x => x, x => x * 2);
var ys = Enumerable.Range(1, 0).ToDictionary(x => x, x => x * 2);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.OrderBy(x => x.Key).Should().Equal(ys.OrderBy(x => x.Key));
}
}
@@ -126,34 +126,34 @@ namespace NetCoreTests.Linq
var ys = arr.ToLookup(x => x);
xs.Count.Should().Be(ys.Count);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.Should().BeEquivalentTo(ys);
foreach (var key in xs.Select(x => x.Key))
{
xs[key].Should().BeEquivalentTo(ys[key]);
xs[key].Should().Equal(ys[key]);
}
}
{
var xs = await Enumerable.Range(1, 0).ToUniTaskAsyncEnumerable().ToLookupAsync(x => x);
var ys = Enumerable.Range(1, 0).ToLookup(x => x);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.Should().BeEquivalentTo(ys);
}
{
var xs = await arr.ToUniTaskAsyncEnumerable().ToLookupAsync(x => x, x => x * 2);
var ys = arr.ToLookup(x => x, x => x * 2);
xs.Count.Should().Be(ys.Count);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.Should().BeEquivalentTo(ys);
foreach (var key in xs.Select(x => x.Key))
{
xs[key].Should().BeEquivalentTo(ys[key]);
xs[key].Should().Equal(ys[key]);
}
}
{
var xs = await Enumerable.Range(1, 0).ToUniTaskAsyncEnumerable().ToLookupAsync(x => x, x => x * 2);
var ys = Enumerable.Range(1, 0).ToLookup(x => x, x => x * 2);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.Should().BeEquivalentTo(ys);
}
}
@@ -164,13 +164,13 @@ namespace NetCoreTests.Linq
var xs = await Enumerable.Range(1, 100).ToUniTaskAsyncEnumerable().ToListAsync();
var ys = Enumerable.Range(1, 100).ToList();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await Enumerable.Empty<int>().ToUniTaskAsyncEnumerable().ToListAsync();
var ys = Enumerable.Empty<int>().ToList();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
@@ -181,13 +181,13 @@ namespace NetCoreTests.Linq
var xs = await new[] { 1, 20, 4, 5, 20, 4, 6 }.ToUniTaskAsyncEnumerable().ToHashSetAsync();
var ys = new[] { 1, 20, 4, 5, 20, 4, 6 }.ToHashSet();
xs.OrderBy(x => x).Should().BeEquivalentTo(ys.OrderBy(x => x));
xs.OrderBy(x => x).Should().Equal(ys.OrderBy(x => x));
}
{
var xs = await Enumerable.Empty<int>().ToUniTaskAsyncEnumerable().ToHashSetAsync();
var ys = Enumerable.Empty<int>().ToHashSet();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
}

View File

@@ -30,7 +30,7 @@ namespace NetCoreTests.Linq
var ys = await Range(from, count).AsUniTaskAsyncEnumerable().ToArrayAsync();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -57,19 +57,19 @@ namespace NetCoreTests.Linq
list.Should().BeEmpty();
await e.MoveNextAsync();
list.Should().BeEquivalentTo(100);
list.Should().Equal(100);
e.Current.Should().Be(10);
await e.MoveNextAsync();
list.Should().BeEquivalentTo(100, 200);
list.Should().Equal(100, 200);
e.Current.Should().Be(20);
await e.MoveNextAsync();
list.Should().BeEquivalentTo(100, 200, 300);
list.Should().Equal(100, 200, 300);
e.Current.Should().Be(30);
(await e.MoveNextAsync()).Should().BeFalse();
list.Should().BeEquivalentTo(100, 200, 300, 400);
list.Should().Equal(100, 200, 300, 400);
}
[Fact]
@@ -144,19 +144,19 @@ namespace NetCoreTests.Linq
list.Should().BeEmpty();
await e.MoveNextAsync();
list.Should().BeEquivalentTo(100);
list.Should().Equal(100);
e.Current.Should().Be(10);
await e.MoveNextAsync();
list.Should().BeEquivalentTo(100, 200);
list.Should().Equal(100, 200);
e.Current.Should().Be(20);
await e.MoveNextAsync();
list.Should().BeEquivalentTo(100, 200, 300);
list.Should().Equal(100, 200, 300);
e.Current.Should().Be(30);
(await e.MoveNextAsync()).Should().BeFalse();
list.Should().BeEquivalentTo(100, 200, 300, 400);
list.Should().Equal(100, 200, 300, 400);
}
async IAsyncEnumerable<int> Range(int from, int count)

View File

@@ -22,7 +22,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(start, count).ToArrayAsync();
var ys = Enumerable.Range(start, count).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Theory]
@@ -36,7 +36,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Repeat(value, count).ToArrayAsync();
var ys = Enumerable.Repeat(value, count).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -45,7 +45,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Empty<int>().ToArrayAsync();
var ys = Enumerable.Empty<int>().ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Theory]

View File

@@ -23,26 +23,26 @@ namespace NetCoreTests.Linq
{
var a = await src.Where(x => x % 2 == 0).ToArrayAsync();
var expected = range.Where(x => x % 2 == 0).ToArray();
a.Should().BeEquivalentTo(expected);
a.Should().Equal(expected);
}
{
var a = await src.Where((x, i) => (x + i) % 2 == 0).ToArrayAsync();
var expected = range.Where((x, i) => (x + i) % 2 == 0).ToArray();
a.Should().BeEquivalentTo(expected);
a.Should().Equal(expected);
}
{
var a = await src.WhereAwait(x => UniTask.Run(() => x % 2 == 0)).ToArrayAsync();
var b = await src.WhereAwait(x => UniTask.FromResult(x % 2 == 0)).ToArrayAsync();
var expected = range.Where(x => x % 2 == 0).ToArray();
a.Should().BeEquivalentTo(expected);
b.Should().BeEquivalentTo(expected);
a.Should().Equal(expected);
b.Should().Equal(expected);
}
{
var a = await src.WhereAwait((x, i) => UniTask.Run(() => (x + i) % 2 == 0)).ToArrayAsync();
var b = await src.WhereAwait((x, i) => UniTask.FromResult((x + i) % 2 == 0)).ToArrayAsync();
var expected = range.Where((x, i) => (x + i) % 2 == 0).ToArray();
a.Should().BeEquivalentTo(expected);
b.Should().BeEquivalentTo(expected);
a.Should().Equal(expected);
b.Should().Equal(expected);
}
}
@@ -79,7 +79,7 @@ namespace NetCoreTests.Linq
var a = await data.ToUniTaskAsyncEnumerable().OfType<int>().ToArrayAsync();
var b = data.OfType<int>().ToArray();
a.Should().BeEquivalentTo(b);
a.Should().Equal(b);
}
@@ -101,7 +101,7 @@ namespace NetCoreTests.Linq
var a = await data.ToUniTaskAsyncEnumerable().Cast<int>().ToArrayAsync();
var b = data.Cast<int>().ToArray();
a.Should().BeEquivalentTo(b);
a.Should().Equal(b);
}

View File

@@ -38,7 +38,7 @@ namespace NetCoreTests.Linq
var xs = await outer.ToUniTaskAsyncEnumerable().Join(inner.ToUniTaskAsyncEnumerable(), x => x, x => x, (x, y) => (x, y)).ToArrayAsync();
var ys = outer.Join(inner, x => x, x => x, (x, y) => (x, y)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
@@ -66,7 +66,7 @@ namespace NetCoreTests.Linq
var xs = await outer.ToUniTaskAsyncEnumerable().JoinAwait(inner.ToUniTaskAsyncEnumerable(), x => RandomRun(x), x => RandomRun(x), (x, y) => RandomRun((x, y))).ToArrayAsync();
var ys = outer.Join(inner, x => x, x => x, (x, y) => (x, y)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
@@ -94,7 +94,7 @@ namespace NetCoreTests.Linq
var xs = await outer.ToUniTaskAsyncEnumerable().JoinAwaitWithCancellation(inner.ToUniTaskAsyncEnumerable(), (x, _) => RandomRun(x), (x, _) => RandomRun(x), (x, y, _) => RandomRun((x, y))).ToArrayAsync();
var ys = outer.Join(inner, x => x, x => x, (x, y) => (x, y)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
@@ -123,7 +123,7 @@ namespace NetCoreTests.Linq
var ys = arr.GroupBy(x => x).ToArray();
xs.Length.Should().Be(ys.Length);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.Should().BeEquivalentTo(ys);
}
{
@@ -131,7 +131,7 @@ namespace NetCoreTests.Linq
var ys = arr.GroupBy(x => x, (key, xs) => (key, xs.ToArray())).ToArray();
xs.Length.Should().Be(ys.Length);
xs.OrderBy(x => x.key).SelectMany(x => x.Item2).Should().BeEquivalentTo(ys.OrderBy(x => x.key).SelectMany(x => x.Item2));
xs.OrderBy(x => x.key).SelectMany(x => x.Item2).Should().Equal(ys.OrderBy(x => x.key).SelectMany(x => x.Item2));
}
{
@@ -139,7 +139,7 @@ namespace NetCoreTests.Linq
var ys = arr.GroupBy(x => x).ToArray();
xs.Length.Should().Be(ys.Length);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.Should().BeEquivalentTo(ys);
}
{
@@ -147,7 +147,7 @@ namespace NetCoreTests.Linq
var ys = arr.GroupBy(x => x, (key, xs) => (key, xs.ToArray())).ToArray();
xs.Length.Should().Be(ys.Length);
xs.OrderBy(x => x.key).SelectMany(x => x.Item2).Should().BeEquivalentTo(ys.OrderBy(x => x.key).SelectMany(x => x.Item2));
xs.OrderBy(x => x.key).SelectMany(x => x.Item2).Should().Equal(ys.OrderBy(x => x.key).SelectMany(x => x.Item2));
}
{
@@ -155,7 +155,7 @@ namespace NetCoreTests.Linq
var ys = arr.GroupBy(x => x).ToArray();
xs.Length.Should().Be(ys.Length);
xs.OrderBy(x => x.Key).Should().BeEquivalentTo(ys.OrderBy(x => x.Key));
xs.Should().BeEquivalentTo(ys);
}
{
@@ -163,7 +163,7 @@ namespace NetCoreTests.Linq
var ys = arr.GroupBy(x => x, (key, xs) => (key, xs.ToArray())).ToArray();
xs.Length.Should().Be(ys.Length);
xs.OrderBy(x => x.key).SelectMany(x => x.Item2).Should().BeEquivalentTo(ys.OrderBy(x => x.key).SelectMany(x => x.Item2));
xs.OrderBy(x => x.key).SelectMany(x => x.Item2).Should().Equal(ys.OrderBy(x => x.key).SelectMany(x => x.Item2));
}
}
@@ -199,21 +199,21 @@ namespace NetCoreTests.Linq
var ys = outer.GroupJoin(inner, x => x, x => x, (x, y) => (x, string.Join(", ", y))).ToArray();
xs.Length.Should().Be(ys.Length);
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await outer.ToUniTaskAsyncEnumerable().GroupJoinAwait(inner.ToUniTaskAsyncEnumerable(), x => RandomRun(x), x => RandomRun(x), (x, y) => RandomRun((x, string.Join(", ", y)))).ToArrayAsync();
var ys = outer.GroupJoin(inner, x => x, x => x, (x, y) => (x, string.Join(", ", y))).ToArray();
xs.Length.Should().Be(ys.Length);
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await outer.ToUniTaskAsyncEnumerable().GroupJoinAwaitWithCancellation(inner.ToUniTaskAsyncEnumerable(), (x, _) => RandomRun(x), (x, _) => RandomRun(x), (x, y, _) => RandomRun((x, string.Join(", ", y)))).ToArrayAsync();
var ys = outer.GroupJoin(inner, x => x, x => x, (x, y) => (x, string.Join(", ", y))).ToArray();
xs.Length.Should().Be(ys.Length);
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}

View File

@@ -27,7 +27,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(1, collection).Skip(skipCount).ToArrayAsync();
var ys = Enumerable.Range(1, collection).Skip(skipCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -52,7 +52,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(1, collection).SkipLast(skipCount).ToArrayAsync();
var ys = Enumerable.Range(1, collection).SkipLast(skipCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -77,7 +77,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(1, collection).TakeLast(takeCount).ToArrayAsync();
var ys = Enumerable.Range(1, collection).TakeLast(takeCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -103,7 +103,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(1, collection).Take(takeCount).ToArrayAsync();
var ys = Enumerable.Range(1, collection).Take(takeCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -130,37 +130,37 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(1, collection).SkipWhile(x => x < skipCount).ToArrayAsync();
var ys = Enumerable.Range(1, collection).SkipWhile(x => x < skipCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).SkipWhile((x, i) => x < (skipCount - i)).ToArrayAsync();
var ys = Enumerable.Range(1, collection).SkipWhile((x, i) => x < (skipCount - i)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).SkipWhileAwait(x => UniTask.Run(() => x < skipCount)).ToArrayAsync();
var ys = Enumerable.Range(1, collection).SkipWhile(x => x < skipCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).SkipWhileAwait((x, i) => UniTask.Run(() => x < (skipCount - i))).ToArrayAsync();
var ys = Enumerable.Range(1, collection).SkipWhile((x, i) => x < (skipCount - i)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).SkipWhileAwaitWithCancellation((x, _) => UniTask.Run(() => x < skipCount)).ToArrayAsync();
var ys = Enumerable.Range(1, collection).SkipWhile(x => x < skipCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).SkipWhileAwaitWithCancellation((x, i, _) => UniTask.Run(() => x < (skipCount - i))).ToArrayAsync();
var ys = Enumerable.Range(1, collection).SkipWhile((x, i) => x < (skipCount - i)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
@@ -213,37 +213,37 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(1, collection).TakeWhile(x => x < skipCount).ToArrayAsync();
var ys = Enumerable.Range(1, collection).TakeWhile(x => x < skipCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).TakeWhile((x, i) => x < (skipCount - i)).ToArrayAsync();
var ys = Enumerable.Range(1, collection).TakeWhile((x, i) => x < (skipCount - i)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).TakeWhileAwait(x => UniTask.Run(() => x < skipCount)).ToArrayAsync();
var ys = Enumerable.Range(1, collection).TakeWhile(x => x < skipCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).TakeWhileAwait((x, i) => UniTask.Run(() => x < (skipCount - i))).ToArrayAsync();
var ys = Enumerable.Range(1, collection).TakeWhile((x, i) => x < (skipCount - i)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).TakeWhileAwaitWithCancellation((x, _) => UniTask.Run(() => x < skipCount)).ToArrayAsync();
var ys = Enumerable.Range(1, collection).TakeWhile(x => x < skipCount).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, collection).TakeWhileAwaitWithCancellation((x, i, _) => UniTask.Run(() => x < (skipCount - i))).ToArrayAsync();
var ys = Enumerable.Range(1, collection).TakeWhile((x, i) => x < (skipCount - i)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}

View File

@@ -24,7 +24,7 @@ namespace NetCoreTests.Linq
var xs = await Enumerable.Range(start, count).ToUniTaskAsyncEnumerable().Reverse().ToArrayAsync();
var ys = Enumerable.Range(start, count).Reverse().ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -46,18 +46,18 @@ namespace NetCoreTests.Linq
{
var xs = await UniTaskAsyncEnumerable.Range(1, count).Select(x => x * x).ToArrayAsync();
var ys = Enumerable.Range(1, count).Select(x => x * x).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
var zs = await UniTaskAsyncEnumerable.Range(1, count).SelectAwait((x) => UniTask.Run(() => x * x)).ToArrayAsync();
zs.Should().BeEquivalentTo(ys);
zs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, count).Select((x, i) => x * x * i).ToArrayAsync();
var ys = Enumerable.Range(1, count).Select((x, i) => x * x * i).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
var zs = await UniTaskAsyncEnumerable.Range(1, count).SelectAwait((x, i) => UniTask.Run(() => x * x * i)).ToArrayAsync();
zs.Should().BeEquivalentTo(ys);
zs.Should().Equal(ys);
}
}
@@ -98,22 +98,22 @@ namespace NetCoreTests.Linq
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectMany(x => UniTaskAsyncEnumerable.Range(99, rightCount * x)).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany(x => Enumerable.Range(99, rightCount * x)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectMany((i, x) => UniTaskAsyncEnumerable.Range(99 * i, rightCount * x)).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany((i, x) => Enumerable.Range(99 * i, rightCount * x)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectMany(x => UniTaskAsyncEnumerable.Range(99, rightCount * x), (x, y) => x * y).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany(x => Enumerable.Range(99, rightCount * x), (x, y) => x * y).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectMany((i, x) => UniTaskAsyncEnumerable.Range(99 * i, rightCount * x), (x, y) => x * y).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany((i, x) => Enumerable.Range(99 * i, rightCount * x), (x, y) => x * y).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
// await
@@ -121,22 +121,22 @@ namespace NetCoreTests.Linq
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectManyAwait(x => UniTask.Run(() => UniTaskAsyncEnumerable.Range(99, rightCount * x))).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany(x => Enumerable.Range(99, rightCount * x)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectManyAwait((i, x) => UniTask.Run(() => UniTaskAsyncEnumerable.Range(99 * i, rightCount * x))).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany((i, x) => Enumerable.Range(99 * i, rightCount * x)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectManyAwait(x => UniTask.Run(() => UniTaskAsyncEnumerable.Range(99, rightCount * x)), (x, y) => UniTask.Run(() => x * y)).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany(x => Enumerable.Range(99, rightCount * x), (x, y) => x * y).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectManyAwait((i, x) => UniTask.Run(() => UniTaskAsyncEnumerable.Range(99 * i, rightCount * x)), (x, y) => UniTask.Run(() => x * y)).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany((i, x) => Enumerable.Range(99 * i, rightCount * x), (x, y) => x * y).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
// with cancel
@@ -144,22 +144,22 @@ namespace NetCoreTests.Linq
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectManyAwaitWithCancellation((x, _) => UniTask.Run(() => UniTaskAsyncEnumerable.Range(99, rightCount * x))).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany(x => Enumerable.Range(99, rightCount * x)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectManyAwaitWithCancellation((i, x, _) => UniTask.Run(() => UniTaskAsyncEnumerable.Range(99 * i, rightCount * x))).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany((i, x) => Enumerable.Range(99 * i, rightCount * x)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectManyAwaitWithCancellation((x, _) => UniTask.Run(() => UniTaskAsyncEnumerable.Range(99, rightCount * x)), (x, y, _) => UniTask.Run(() => x * y)).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany(x => Enumerable.Range(99, rightCount * x), (x, y) => x * y).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).SelectManyAwaitWithCancellation((i, x, _) => UniTask.Run(() => UniTaskAsyncEnumerable.Range(99 * i, rightCount * x)), (x, y, _) => UniTask.Run(() => x * y)).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).SelectMany((i, x) => Enumerable.Range(99 * i, rightCount * x), (x, y) => x * y).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
@@ -219,17 +219,17 @@ namespace NetCoreTests.Linq
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).Zip(UniTaskAsyncEnumerable.Range(99, rightCount)).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).Zip(Enumerable.Range(99, rightCount)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).ZipAwait(UniTaskAsyncEnumerable.Range(99, rightCount), (x, y) => UniTask.Run(() => (x, y))).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).Zip(Enumerable.Range(99, rightCount)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await UniTaskAsyncEnumerable.Range(1, leftCount).ZipAwaitWithCancellation(UniTaskAsyncEnumerable.Range(99, rightCount), (x, y, _) => UniTask.Run(() => (x, y))).ToArrayAsync();
var ys = Enumerable.Range(1, leftCount).Zip(Enumerable.Range(99, rightCount)).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
[Fact]
@@ -288,7 +288,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(0, rangeCount).Buffer(bufferCount).Select(x => string.Join(",", x)).ToArrayAsync();
var ys = await AsyncEnumerable.Range(0, rangeCount).Buffer(bufferCount).Select(x => string.Join(",", x)).ToArrayAsync();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Theory]
@@ -305,7 +305,7 @@ namespace NetCoreTests.Linq
var xs = await UniTaskAsyncEnumerable.Range(0, rangeCount).Buffer(bufferCount, skipCount).Select(x => string.Join(",", x)).ToArrayAsync();
var ys = await AsyncEnumerable.Range(0, rangeCount).Buffer(bufferCount, skipCount).Select(x => string.Join(",", x)).ToArrayAsync();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
[Fact]
@@ -402,7 +402,7 @@ namespace NetCoreTests.Linq
public async Task PariwiseImmediate()
{
var xs = await UniTaskAsyncEnumerable.Range(1, 5).Pairwise().ToArrayAsync();
xs.Should().BeEquivalentTo((1, 2), (2, 3), (3, 4), (4, 5));
xs.Should().Equal((1, 2), (2, 3), (3, 4), (4, 5));
}
[Fact]
@@ -426,7 +426,7 @@ namespace NetCoreTests.Linq
await complete;
list.Should().BeEquivalentTo((10, 20), (20, 30), (30, 40), (40, 50));
list.Should().Equal((10, 20), (20, 30), (30, 40), (40, 50));
}
class MyException : Exception

View File

@@ -26,7 +26,7 @@ namespace NetCoreTests.Linq
rp.Value = 2;
(await b).Should().BeEquivalentTo(1, 2);
(await b).Should().Equal(1, 2);
var c = multicast.ToArrayAsync();
@@ -36,8 +36,8 @@ namespace NetCoreTests.Linq
rp.Dispose();
(await a).Should().BeEquivalentTo(1, 2, 3, 4, 5);
(await c).Should().BeEquivalentTo(3, 4, 5);
(await a).Should().Equal(1, 2, 3, 4, 5);
(await c).Should().Equal(3, 4, 5);
disp.Dispose();
}
@@ -56,7 +56,7 @@ namespace NetCoreTests.Linq
rp.Value = 2;
(await b).Should().BeEquivalentTo(1, 2);
(await b).Should().Equal(1, 2);
var c = multicast.ToArrayAsync();

View File

@@ -23,7 +23,7 @@ namespace NetCoreTests.Linq
l.Add(x);
});
l.Should().BeEquivalentTo(100, 110, 120, 130, 140, 150, 160, 170, 180, 190);
l.Should().Equal(100, 110, 120, 130, 140, 150, 160, 170, 180, 190);
}
}
}

View File

@@ -34,10 +34,10 @@ namespace NetCoreTests.Linq
{
var ys = array.Distinct().ToArray();
{
(await array.ToUniTaskAsyncEnumerable().Distinct().ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().Distinct(x => x).ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctAwait(x => UniTask.Run(() => x)).ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctAwaitWithCancellation((x, _) => UniTask.Run(() => x)).ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().Distinct().ToArrayAsync()).Should().Equal(ys);
(await array.ToUniTaskAsyncEnumerable().Distinct(x => x).ToArrayAsync()).Should().Equal(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctAwait(x => UniTask.Run(() => x)).ToArrayAsync()).Should().Equal(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctAwaitWithCancellation((x, _) => UniTask.Run(() => x)).ToArrayAsync()).Should().Equal(ys);
}
}
@@ -71,10 +71,10 @@ namespace NetCoreTests.Linq
{
var ys = await array.ToAsyncEnumerable().DistinctUntilChanged().ToArrayAsync();
{
(await array.ToUniTaskAsyncEnumerable().DistinctUntilChanged().ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctUntilChanged(x => x).ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctUntilChangedAwait(x => UniTask.Run(() => x)).ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctUntilChangedAwaitWithCancellation((x, _) => UniTask.Run(() => x)).ToArrayAsync()).Should().BeEquivalentTo(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctUntilChanged().ToArrayAsync()).Should().Equal(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctUntilChanged(x => x).ToArrayAsync()).Should().Equal(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctUntilChangedAwait(x => UniTask.Run(() => x)).ToArrayAsync()).Should().Equal(ys);
(await array.ToUniTaskAsyncEnumerable().DistinctUntilChangedAwaitWithCancellation((x, _) => UniTask.Run(() => x)).ToArrayAsync()).Should().Equal(ys);
}
}
@@ -112,7 +112,7 @@ namespace NetCoreTests.Linq
{
var xs = await a1.ToUniTaskAsyncEnumerable().Except(a2.ToUniTaskAsyncEnumerable()).ToArrayAsync();
var ys = a1.Except(a2).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
}
@@ -141,7 +141,7 @@ namespace NetCoreTests.Linq
{
var xs = await a1.ToUniTaskAsyncEnumerable().Intersect(a2.ToUniTaskAsyncEnumerable()).ToArrayAsync();
var ys = a1.Intersect(a2).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
}
@@ -170,7 +170,7 @@ namespace NetCoreTests.Linq
{
var xs = await a1.ToUniTaskAsyncEnumerable().Union(a2.ToUniTaskAsyncEnumerable()).ToArrayAsync();
var ys = a1.Union(a2).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
}

View File

@@ -59,32 +59,32 @@ namespace NetCoreTests.Linq
{
var xs = await array.ToUniTaskAsyncEnumerable().OrderBy(x => x).ToArrayAsync();
var ys = array.OrderBy(x => x).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await array.ToUniTaskAsyncEnumerable().OrderByDescending(x => x).ToArrayAsync();
var ys = array.OrderByDescending(x => x).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await array.ToUniTaskAsyncEnumerable().OrderByAwait(RandomRun).ToArrayAsync();
var ys = array.OrderBy(x => x).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await array.ToUniTaskAsyncEnumerable().OrderByDescendingAwait(RandomRun).ToArrayAsync();
var ys = array.OrderByDescending(x => x).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await array.ToUniTaskAsyncEnumerable().OrderByAwaitWithCancellation(RandomRun).ToArrayAsync();
var ys = array.OrderBy(x => x).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
{
var xs = await array.ToUniTaskAsyncEnumerable().OrderByDescendingAwaitWithCancellation(RandomRun).ToArrayAsync();
var ys = array.OrderByDescending(x => x).ToArray();
xs.Should().BeEquivalentTo(ys);
xs.Should().Equal(ys);
}
}
@@ -125,14 +125,14 @@ namespace NetCoreTests.Linq
var g2 = await array.ToUniTaskAsyncEnumerable().OrderByDescending(x => x.Age).ThenByDescending(x => x.FirstName).ThenBy(x => x.LastName).ToArrayAsync();
var h2 = await array.ToUniTaskAsyncEnumerable().OrderByDescending(x => x.Age).ThenByDescending(x => x.FirstName).ThenByDescending(x => x.LastName).ToArrayAsync();
a.Should().BeEquivalentTo(a2);
b.Should().BeEquivalentTo(b2);
c.Should().BeEquivalentTo(c2);
d.Should().BeEquivalentTo(d2);
e.Should().BeEquivalentTo(e2);
f.Should().BeEquivalentTo(f2);
g.Should().BeEquivalentTo(g2);
h.Should().BeEquivalentTo(h2);
a.Should().Equal(a2);
b.Should().Equal(b2);
c.Should().Equal(c2);
d.Should().Equal(d2);
e.Should().Equal(e2);
f.Should().Equal(f2);
g.Should().Equal(g2);
h.Should().Equal(h2);
}
{
var a2 = await array.ToUniTaskAsyncEnumerable().OrderByAwait(x => RandomRun(x.Age)).ThenByAwait(x => RandomRun(x.FirstName)).ThenByAwait(x => RandomRun(x.LastName)).ToArrayAsync();
@@ -144,14 +144,14 @@ namespace NetCoreTests.Linq
var g2 = await array.ToUniTaskAsyncEnumerable().OrderByDescendingAwait(x => RandomRun(x.Age)).ThenByDescendingAwait(x => RandomRun(x.FirstName)).ThenByAwait(x => RandomRun(x.LastName)).ToArrayAsync();
var h2 = await array.ToUniTaskAsyncEnumerable().OrderByDescendingAwait(x => RandomRun(x.Age)).ThenByDescendingAwait(x => RandomRun(x.FirstName)).ThenByDescendingAwait(x => RandomRun(x.LastName)).ToArrayAsync();
a.Should().BeEquivalentTo(a2);
b.Should().BeEquivalentTo(b2);
c.Should().BeEquivalentTo(c2);
d.Should().BeEquivalentTo(d2);
e.Should().BeEquivalentTo(e2);
f.Should().BeEquivalentTo(f2);
g.Should().BeEquivalentTo(g2);
h.Should().BeEquivalentTo(h2);
a.Should().Equal(a2);
b.Should().Equal(b2);
c.Should().Equal(c2);
d.Should().Equal(d2);
e.Should().Equal(e2);
f.Should().Equal(f2);
g.Should().Equal(g2);
h.Should().Equal(h2);
}
{
var a2 = await array.ToUniTaskAsyncEnumerable().OrderByAwaitWithCancellation((x, ct) => RandomRun(x.Age)).ThenByAwaitWithCancellation((x, ct) => RandomRun(x.FirstName)).ThenByAwaitWithCancellation((x, ct) => RandomRun(x.LastName)).ToArrayAsync();
@@ -163,14 +163,14 @@ namespace NetCoreTests.Linq
var g2 = await array.ToUniTaskAsyncEnumerable().OrderByDescendingAwaitWithCancellation((x, ct) => RandomRun(x.Age)).ThenByDescendingAwaitWithCancellation((x, ct) => RandomRun(x.FirstName)).ThenByAwaitWithCancellation((x, ct) => RandomRun(x.LastName)).ToArrayAsync();
var h2 = await array.ToUniTaskAsyncEnumerable().OrderByDescendingAwaitWithCancellation((x, ct) => RandomRun(x.Age)).ThenByDescendingAwaitWithCancellation((x, ct) => RandomRun(x.FirstName)).ThenByDescendingAwaitWithCancellation((x, ct) => RandomRun(x.LastName)).ToArrayAsync();
a.Should().BeEquivalentTo(a2);
b.Should().BeEquivalentTo(b2);
c.Should().BeEquivalentTo(c2);
d.Should().BeEquivalentTo(d2);
e.Should().BeEquivalentTo(e2);
f.Should().BeEquivalentTo(f2);
g.Should().BeEquivalentTo(g2);
h.Should().BeEquivalentTo(h2);
a.Should().Equal(a2);
b.Should().Equal(b2);
c.Should().Equal(c2);
d.Should().Equal(d2);
e.Should().Equal(e2);
f.Should().Equal(f2);
g.Should().Equal(g2);
h.Should().Equal(h2);
}
}
}

View File

@@ -24,7 +24,7 @@ namespace NetCoreTests.Linq
rp.Value = 4;
rp.Value = 5;
(await xs).Should().BeEquivalentTo(1, 2, 3, 4, 5);
(await xs).Should().Equal(1, 2, 3, 4, 5);
}
[Fact]
@@ -39,7 +39,7 @@ namespace NetCoreTests.Linq
rp.Value = 4;
rp.Value = 5;
(await xs).Should().BeEquivalentTo(1, 2, 3, 4);
(await xs).Should().Equal(1, 2, 3, 4);
}
[Fact]
@@ -56,7 +56,7 @@ namespace NetCoreTests.Linq
await c;
var foo = await xs;
foo.Should().BeEquivalentTo(new[] { 1, 10, 20 });
foo.Should().Equal(new[] { 1, 10, 20 });
async Task CancelAsync()
{
@@ -85,7 +85,7 @@ namespace NetCoreTests.Linq
await c;
var foo = await xs;
foo.Should().BeEquivalentTo(new[] { 20, 30, 40 });
foo.Should().Equal(new[] { 20, 30, 40 });
async Task CancelAsync()
{
@@ -116,7 +116,7 @@ namespace NetCoreTests.Linq
await c;
var foo = await xs;
foo.Should().BeEquivalentTo(new[] { 1, 10, 20 });
foo.Should().Equal(new[] { 1, 10, 20 });
async Task CancelAsync()
{
@@ -145,7 +145,7 @@ namespace NetCoreTests.Linq
await c;
var foo = await xs;
foo.Should().BeEquivalentTo(new[] { 20, 30, 40 });
foo.Should().Equal(new[] { 20, 30, 40 });
async Task CancelAsync()
{

View File

@@ -34,7 +34,7 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
ev.SetCompleted();
@@ -46,7 +46,7 @@ namespace NetCoreTests
ev.SetCompleted();
ev.SetCanceled(default);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
one.CompletedCalled.Count.Should().Be(1);
}
// after removed, onemore
@@ -59,7 +59,7 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
ev.SetCompleted();
@@ -71,7 +71,7 @@ namespace NetCoreTests
ev.SetCompleted();
ev.SetCanceled(default);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
one.CompletedCalled.Count.Should().Be(1);
}
}
@@ -102,10 +102,10 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
four.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
four.NextCalled.Should().Equal(10, 20, 30);
ev.SetCompleted();
@@ -120,11 +120,11 @@ namespace NetCoreTests
ev.SetCompleted();
ev.SetCanceled(default);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
one.CompletedCalled.Count.Should().Be(1);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.CompletedCalled.Count.Should().Be(1);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.CompletedCalled.Count.Should().Be(1);
}
@@ -145,10 +145,10 @@ namespace NetCoreTests
ev.SetResult(30);
ev.Add(four);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
four.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
four.NextCalled.Should().Equal(10, 20, 30);
ev.SetCompleted();
@@ -163,11 +163,11 @@ namespace NetCoreTests
ev.SetCompleted();
ev.SetCanceled(default);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
one.CompletedCalled.Count.Should().Be(1);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.CompletedCalled.Count.Should().Be(1);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.CompletedCalled.Count.Should().Be(1);
}
}
@@ -190,9 +190,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
ev.Remove(one);
@@ -200,9 +200,9 @@ namespace NetCoreTests
ev.SetResult(50);
ev.SetResult(60);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30, 40, 50, 60);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30, 40, 50, 60);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30, 40, 50, 60);
three.NextCalled.Should().Equal(10, 20, 30, 40, 50, 60);
}
}
[Fact]
@@ -222,9 +222,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
ev.Remove(two);
@@ -232,9 +232,9 @@ namespace NetCoreTests
ev.SetResult(50);
ev.SetResult(60);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30, 40, 50, 60);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30, 40, 50, 60);
one.NextCalled.Should().Equal(10, 20, 30, 40, 50, 60);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30, 40, 50, 60);
}
}
[Fact]
@@ -254,9 +254,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
ev.Remove(three);
@@ -264,9 +264,9 @@ namespace NetCoreTests
ev.SetResult(50);
ev.SetResult(60);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30, 40, 50, 60);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30, 40, 50, 60);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30, 40, 50, 60);
two.NextCalled.Should().Equal(10, 20, 30, 40, 50, 60);
three.NextCalled.Should().Equal(10, 20, 30);
}
}
@@ -321,9 +321,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
}
public void Run2()
@@ -342,9 +342,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
}
public void Run3()
@@ -363,9 +363,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10);
two.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10);
two.NextCalled.Should().Equal(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
}
}
@@ -390,9 +390,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Count.Should().Be(0);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
three.NextCalled.Should().Equal(10, 20, 30);
}
public void Run2()
@@ -412,9 +412,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().BeEquivalentTo(10);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Should().Equal(10);
three.NextCalled.Should().Equal(10, 20, 30);
}
public void Run3()
@@ -434,9 +434,9 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
two.NextCalled.Should().BeEquivalentTo(10);
three.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Should().Equal(10);
three.NextCalled.Should().Equal(10, 20, 30);
}
}
@@ -464,10 +464,10 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30);
one.NextCalled.Should().Equal(10, 20, 30);
two.NextCalled.Count.Should().Be(0);
three.NextCalled.Count.Should().Be(0);
four.NextCalled.Should().BeEquivalentTo(10, 20, 30);
four.NextCalled.Should().Equal(10, 20, 30);
}
public void Run2()
@@ -490,10 +490,10 @@ namespace NetCoreTests
ev.SetResult(20);
ev.SetResult(30);
one.NextCalled.Should().BeEquivalentTo(10);
one.NextCalled.Should().Equal(10);
two.NextCalled.Count.Should().Be(0);
three.NextCalled.Count.Should().Be(0);
four.NextCalled.Should().BeEquivalentTo(10, 20, 30);
four.NextCalled.Should().Equal(10, 20, 30);
}
@@ -533,10 +533,10 @@ namespace NetCoreTests
ev.SetResult(30);
ev.SetResult(40);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30, 40);
two.NextCalled.Should().BeEquivalentTo(20, 30, 40);
three.NextCalled.Should().BeEquivalentTo(30, 40);
four.NextCalled.Should().BeEquivalentTo(40);
one.NextCalled.Should().Equal(10, 20, 30, 40);
two.NextCalled.Should().Equal(20, 30, 40);
three.NextCalled.Should().Equal(30, 40);
four.NextCalled.Should().Equal(40);
}
public void Run2()
@@ -573,10 +573,10 @@ namespace NetCoreTests
ev.SetResult(30);
ev.SetResult(40);
one.NextCalled.Should().BeEquivalentTo(10, 20, 30, 40);
two.NextCalled.Should().BeEquivalentTo(20, 30, 40);
three.NextCalled.Should().BeEquivalentTo(30, 40);
four.NextCalled.Should().BeEquivalentTo(40);
one.NextCalled.Should().Equal(10, 20, 30, 40);
two.NextCalled.Should().Equal(20, 30, 40);
three.NextCalled.Should().Equal(30, 40);
four.NextCalled.Should().Equal(40);
}
}
}

View File

@@ -17,7 +17,7 @@ namespace Cysharp.Threading.Tasks.Linq
{
Error.ThrowArgumentNullException(source, nameof(source));
return new AppendPrepend<TSource>(source, element, true);
return new AppendPrepend<TSource>(source, element, false);
}
}
@@ -79,7 +79,7 @@ namespace Cysharp.Threading.Tasks.Linq
if (enumerator == null)
{
if (state == State.RequireAppend)
if (state == State.RequirePrepend)
{
Current = element;
state = State.None;

View File

@@ -181,7 +181,7 @@ namespace Cysharp.Threading.Tasks
static readonly ContinuationQueue ThrowMarkerContinuationQueue = new ContinuationQueue(PlayerLoopTiming.Initialization);
static readonly PlayerLoopRunner ThrowMarkerPlayerLoopRunner = new PlayerLoopRunner(PlayerLoopTiming.Initialization);
public static SynchronizationContext UnitySynchronizationContext => unitySynchronizationContetext;
public static SynchronizationContext UnitySynchronizationContext => unitySynchronizationContext;
public static int MainThreadId => mainThreadId;
internal static string ApplicationDataPath => applicationDataPath;
@@ -189,7 +189,7 @@ namespace Cysharp.Threading.Tasks
static int mainThreadId;
static string applicationDataPath;
static SynchronizationContext unitySynchronizationContetext;
static SynchronizationContext unitySynchronizationContext;
static ContinuationQueue[] yielders;
static PlayerLoopRunner[] runners;
internal static bool IsEditorApplicationQuitting { get; private set; }
@@ -289,7 +289,7 @@ namespace Cysharp.Threading.Tasks
static void Init()
{
// capture default(unity) sync-context.
unitySynchronizationContetext = SynchronizationContext.Current;
unitySynchronizationContext = SynchronizationContext.Current;
mainThreadId = Thread.CurrentThread.ManagedThreadId;
try
{

View File

@@ -1,7 +1,7 @@
{
"name": "com.cysharp.unitask",
"displayName": "UniTask",
"version": "2.2.4",
"version": "2.2.5",
"unity": "2018.4",
"description": "Provides an efficient async/await integration to Unity.",
"keywords": [ "async/await", "async", "Task", "UniTask" ],

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8fb84ce71736dab41b0cca7ea3f5b313
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1 @@
bar

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9df64c494bee73b40ad3679f44bbc8c5
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1 @@
baz

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1b9e797ec5aa031408d06d42830c6709
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1 @@
foo

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b28aa61554c736c4887674883ac049f2
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,129 @@
using Cysharp.Threading.Tasks;
using System;
using System.Collections;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class DemoScript : MonoBehaviour
{
public Toggle toggle = null;
public Text text = null;
async Task Start()
{
text.text = "";
var result = await DemoAsync();
text.text = $"RESULT is: {result}";
}
async UniTask<string> DemoAsync()
{
// You can await Unity's AsyncObject
text.text = "loading assets";
var asset = await Resources.LoadAsync<TextAsset>("foo");
text.text = "get data from github.com";
var txt = (await UnityWebRequest.Get("https://github.com").SendWebRequest()).downloadHandler.text;
text.text = "load scene2";
await SceneManager.LoadSceneAsync("scene2", LoadSceneMode.Additive);
// .WithCancellation enables Cancel, GetCancellationTokenOnDestroy synchornizes with lifetime of GameObject
text.text = "load text asset bar";
var asset2 = await Resources.LoadAsync<TextAsset>("bar").WithCancellation(this.GetCancellationTokenOnDestroy());
// .ToUniTask accepts progress callback(and all options), Progress.Create is a lightweight alternative of IProgress<T>
text.text = "load text asset baz";
var asset3 = await Resources.LoadAsync<TextAsset>("baz").ToUniTask(Progress.Create<float>(x => Debug.Log(x)));
// await frame-based operation like a coroutine
text.text = "delay frame";
await UniTask.DelayFrame(100);
// replacement of yield return new WaitForSeconds/WaitForSecondsRealtime
text.text = "wait 3sec.";
await UniTask.Delay(TimeSpan.FromSeconds(3), ignoreTimeScale: false);
// yield any playerloop timing(PreUpdate, Update, LateUpdate, etc...)
text.text = "wait for PreLateUpdate";
await UniTask.Yield(PlayerLoopTiming.PreLateUpdate);
// replacement of yield return null
text.text = "yield";
await UniTask.Yield();
text.text = "wait nextframe";
await UniTask.NextFrame();
// replacement of WaitForEndOfFrame(same as UniTask.Yield(PlayerLoopTiming.LastPostLateUpdate))
text.text = "wait end of frame";
await UniTask.WaitForEndOfFrame();
// replacement of yield return new WaitForFixedUpdate(same as UniTask.Yield(PlayerLoopTiming.FixedUpdate))
text.text = "wait fixed update";
await UniTask.WaitForFixedUpdate();
// replacement of yield return WaitUntil
text.text = "wait for toggle => false";
await UniTask.WaitUntil(() => toggle.isOn == false);
// special helper of WaitUntil
text.text = "wait for toggle";
await UniTask.WaitUntilValueChanged(this, x => toggle.isOn);
// You can await IEnumerator coroutines
text.text = "corouting";
await FooCoroutineEnumerator();
// You can await a standard task
text.text = "run standard task";
await Task.Run(() => 100);
// Multithreading, run on ThreadPool under this code
text.text = "switch to thread pool";
await UniTask.SwitchToThreadPool();
/* work on ThreadPool */
// return to MainThread(same as `ObserveOnMainThread` in UniRx)
await UniTask.SwitchToMainThread();
text.text = "switch to main pool";
// get async webrequest
async UniTask<string> GetTextAsync(UnityWebRequest req)
{
var op = await req.SendWebRequest();
return op.downloadHandler.text;
}
var task1 = GetTextAsync(UnityWebRequest.Get("https://google.com/"));
var task2 = GetTextAsync(UnityWebRequest.Get("https://bing.com/"));
var task3 = GetTextAsync(UnityWebRequest.Get("https://yahoo.com/"));
// concurrent async-wait and get results easily by tuple syntax
text.text = "get data from google,bing,yahoo (concurrent)";
var (google, bing, yahoo) = await UniTask.WhenAll(task1, task2, task3);
// can not call same task twice. let's define again for simple demo.
var tasknew1 = GetTextAsync(UnityWebRequest.Get("https://google.com/"));
var tasknew2 = GetTextAsync(UnityWebRequest.Get("https://bing.com/"));
var tasknew3 = GetTextAsync(UnityWebRequest.Get("https://yahoo.com/"));
// shorthand of WhenAll, tuple can await directly.
text.text = "get data from google,bing,yahoo (shorthand)";
var (google2, bing2, yahoo2) = await (tasknew1, tasknew2, tasknew3);
// return async-value.(or you can use `UniTask`(no result), `UniTaskVoid`(fire and forget)).
text.text = "return asset result";
return (asset as TextAsset)?.text ?? throw new InvalidOperationException("Asset not found");
}
private IEnumerator FooCoroutineEnumerator()
{
Debug.Log("cotoutine 1");
yield return new WaitForSeconds(1);
Debug.Log("cotoutine 2");
yield return new WaitForSeconds(1);
Debug.Log("cotoutine end");
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3defd278e9f50124396082efc492cb81
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: edc485cde0ff14046a21a7c2a51bb0ac
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,299 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &386714
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 386717}
- component: {fileID: 386716}
- component: {fileID: 386715}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!81 &386715
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 386714}
m_Enabled: 1
--- !u!20 &386716
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 386714}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &386717
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 386714}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &172792889
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 172792893}
- component: {fileID: 172792892}
- component: {fileID: 172792891}
- component: {fileID: 172792890}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &172792890
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 172792889}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &172792891
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 172792889}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &172792892
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 172792889}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &172792893
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 172792889}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 84d1cc7b4b33fa54f98a29e843b1db30
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -11,4 +11,10 @@ EditorBuildSettings:
- enabled: 1
path: Assets/Scenes/ExceptionExamples.unity
guid: b5fed17e3ece238439bc796d8747df5d
- enabled: 1
path: Assets/Scenes/SampleScene.unity
guid: edc485cde0ff14046a21a7c2a51bb0ac
- enabled: 1
path: Assets/Scenes/scene2.unity
guid: 84d1cc7b4b33fa54f98a29e843b1db30
m_configObjects: {}

View File

@@ -8,6 +8,9 @@ EditorUserSettings:
RecentlyUsedScenePath-0:
value: 22424703114646680e0b0227036c6c1118131a25340527392367083debf42d
flags: 0
RecentlyUsedScenePath-1:
value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d
flags: 0
vcSharedLogLevel:
value: 0d5e400f0650
flags: 0