From 4474ba22fa97c21d54c8509e71cde9ffe369186a Mon Sep 17 00:00:00 2001 From: Minimata Date: Fri, 20 Feb 2026 15:41:43 +0100 Subject: [PATCH] added xunit and a few tests with gdunit --- .gitignore | 4 +- Movement tests.csproj | 261 ++-- Movement tests.sln.DotSettings.user | 7 +- agents.md | 28 + global.json | 5 + obj/movement-tests.csproj.nuget.dgspec.json | 79 ++ obj/movement-tests.csproj.nuget.g.props | 25 + obj/movement-tests.csproj.nuget.g.targets | 8 + obj/project.assets.json | 1160 +++++++++++++++++ obj/project.nuget.cache | 28 + tests/player/PlayerControllerUnitTest.cs | 187 +++ tests/player/PlayerControllerUnitTest.cs.uid | 1 + .../movement}/PlayerMovementTest.cs | 6 +- .../movement}/PlayerMovementTest.cs.uid | 0 .../movement}/player_movement_scene.tscn | 0 xunit.runner.json | 3 + 16 files changed, 1673 insertions(+), 129 deletions(-) create mode 100644 agents.md create mode 100644 global.json create mode 100644 obj/movement-tests.csproj.nuget.dgspec.json create mode 100644 obj/movement-tests.csproj.nuget.g.props create mode 100644 obj/movement-tests.csproj.nuget.g.targets create mode 100644 obj/project.assets.json create mode 100644 obj/project.nuget.cache create mode 100644 tests/player/PlayerControllerUnitTest.cs create mode 100644 tests/player/PlayerControllerUnitTest.cs.uid rename tests/{ => player/movement}/PlayerMovementTest.cs (94%) rename tests/{ => player/movement}/PlayerMovementTest.cs.uid (100%) rename tests/{player_movement => player/movement}/player_movement_scene.tscn (100%) create mode 100644 xunit.runner.json diff --git a/.gitignore b/.gitignore index e6bef490..1de7caf2 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,6 @@ /communication # Imported translations (automatically generated from CSV files) -*.translation \ No newline at end of file +*.translation + +.output.txt \ No newline at end of file diff --git a/Movement tests.csproj b/Movement tests.csproj index 7ade55c3..b0cf964c 100644 --- a/Movement tests.csproj +++ b/Movement tests.csproj @@ -5,140 +5,153 @@ Movementtests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - + + + + + + + + + + + + + + + + - - - + + + none runtime; build; native; contentfiles; analyzers; buildtransitive - \ No newline at end of file diff --git a/Movement tests.sln.DotSettings.user b/Movement tests.sln.DotSettings.user index ec0e0613..8a1bb742 100644 --- a/Movement tests.sln.DotSettings.user +++ b/Movement tests.sln.DotSettings.user @@ -5,7 +5,12 @@ ForceIncluded ForceIncluded ForceIncluded - <SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <SessionState ContinuousTestingMode="0" IsActive="True" Name="Junie Session" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <TestAncestor> + <TestId>VsTest::22FEBE6E-769C-4716-A687-A0AC8F3EF84A::net9.0::executor://gdunit4.testadapter/#Movementtests.tests.PlayerControllerUnitTest</TestId> + </TestAncestor> +</SessionState> + <SessionState ContinuousTestingMode="0" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <Solution /> </SessionState> D:\Godot\Projects\movement-tests\.runsettings diff --git a/agents.md b/agents.md new file mode 100644 index 00000000..c1b1cea7 --- /dev/null +++ b/agents.md @@ -0,0 +1,28 @@ +### Project Overview: Godot C# Movement Tests +This project is a high-performance 3D character controller for Godot 4.x using C# 13 and .NET 9. It focuses on modular movement systems (Dash, Mantle, Stairs) and robust combat mechanics (Damage, Health, Knockback) decoupled through interfaces. + +### Core Architecture +- **Modular Systems**: The `PlayerController.cs` acts as a central hub for multiple specialized "Systems" (e.g., `DashSystem`, `MantleSystem`, `HeadSystem`, `StairsSystem`). +- **State Management**: Uses `GodotStateCharts` for complex movement and action states. Look for state transitions and triggers within the system scripts. +- **Interface-Driven Design**: Located in `/interfaces/`, these define how objects interact (e.g., `IDamageable`, `IHealthable`, `IKnockbackable`). Always implement these interfaces for new interactable entities. +- **Node Composition**: Most systems are attached to the `PlayerController` scene as child nodes and initialized via their respective `Init()` methods or exported fields. + +### Key Directories +- `/scenes/player_controller/`: Contains the main player scene, the central `PlayerController.cs`, and its sub-systems. +- `/scenes/player_controller/components/`: Modular logic for specific features like Dash, Mantle, and Weapons. +- `/interfaces/`: Core C# interfaces and shared records (e.g., `DamageRecord`, `HealthChangedRecord`). +- `/tests/`: Automated unit and integration tests using `GdUnit4` and `xUnit`. + +### Coding Standards & Idioms +- **C# 13 & .NET 9**: Use modern C# features (records, primary constructors, collection expressions). +- **Godot Partial Classes**: All Godot scripts must be `partial` and use `[GlobalClass]` where appropriate for editor visibility. +- **RustyOptions**: The project uses `RustyOptions` for safer null handling and result types (`Option`, `Result`). +- **Signals**: Use `[Signal]` and the `EventHandler` pattern for Godot signals. +- **Dependency Injection**: Systems are typically assigned to fields in `PlayerController` via the editor or `GetNode()` in `_Ready()`. + +### LLM Interaction Tips +1. **Partial Classes**: When suggesting changes to `PlayerController.cs` or systems, remember they are `partial`. Large files like `PlayerController.cs` (2500+ lines) are often split or contain many regions. +2. **Node Hierarchy**: Always check `PlayerController.tscn` or system scenes (`head_system.tscn`) when dealing with node references (`GetNode`). +3. **GdUnit4**: For testing, follow the pattern in `tests/PlayerMovementTest.cs`. Use `ISceneRunner` to simulate inputs and await frames/milliseconds. +4. **Vector Operations**: Use Godot's built-in `Vector3` methods for movement logic. The project often uses `GlobalPosition` and `DirectionTo`. +5. **Boilerplate**: When creating new systems, mirror the `Init()` and `_PhysicsProcess` patterns found in existing systems like `DashSystem.cs` or `MantleSystem.cs`. diff --git a/global.json b/global.json new file mode 100644 index 00000000..802ab217 --- /dev/null +++ b/global.json @@ -0,0 +1,5 @@ +{ + "test": { + "runner": "Microsoft.Testing.Platform" + } +} \ No newline at end of file diff --git a/obj/movement-tests.csproj.nuget.dgspec.json b/obj/movement-tests.csproj.nuget.dgspec.json new file mode 100644 index 00000000..93dfe1db --- /dev/null +++ b/obj/movement-tests.csproj.nuget.dgspec.json @@ -0,0 +1,79 @@ +{ + "format": 1, + "restore": { + "D:\\Godot\\Projects\\movement-tests\\movement-tests.csproj": {} + }, + "projects": { + "D:\\Godot\\Projects\\movement-tests\\movement-tests.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\Godot\\Projects\\movement-tests\\movement-tests.csproj", + "projectName": "movement-tests", + "projectPath": "D:\\Godot\\Projects\\movement-tests\\movement-tests.csproj", + "packagesPath": "C:\\Users\\Minimata\\.nuget\\packages\\", + "outputPath": "D:\\Godot\\Projects\\movement-tests\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Minimata\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "xunit.v3.mtp-v2": { + "target": "Package", + "version": "[3.2.2, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.301/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/obj/movement-tests.csproj.nuget.g.props b/obj/movement-tests.csproj.nuget.g.props new file mode 100644 index 00000000..54458485 --- /dev/null +++ b/obj/movement-tests.csproj.nuget.g.props @@ -0,0 +1,25 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Minimata\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + PackageReference + 6.14.0 + + + + + + + + + + + + + C:\Users\Minimata\.nuget\packages\xunit.analyzers\1.27.0 + + \ No newline at end of file diff --git a/obj/movement-tests.csproj.nuget.g.targets b/obj/movement-tests.csproj.nuget.g.targets new file mode 100644 index 00000000..821ce7c2 --- /dev/null +++ b/obj/movement-tests.csproj.nuget.g.targets @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/obj/project.assets.json b/obj/project.assets.json new file mode 100644 index 00000000..23a25f01 --- /dev/null +++ b/obj/project.assets.json @@ -0,0 +1,1160 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Microsoft.ApplicationInsights/2.23.0": { + "type": "package", + "dependencies": { + "System.Diagnostics.DiagnosticSource": "5.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": { + "related": ".pdb;.xml" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "type": "package", + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "Microsoft.Testing.Extensions.Telemetry/2.0.2": { + "type": "package", + "dependencies": { + "Microsoft.ApplicationInsights": "2.23.0", + "Microsoft.Testing.Platform": "2.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Testing.Extensions.Telemetry.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Testing.Extensions.Telemetry.dll": { + "related": ".xml" + } + }, + "resource": { + "lib/net8.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Testing.Extensions.Telemetry.props": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/Microsoft.Testing.Extensions.Telemetry.props": {} + } + }, + "Microsoft.Testing.Extensions.TrxReport.Abstractions/2.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Testing.Platform": "2.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Testing.Platform/2.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Testing.Platform.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Testing.Platform.dll": { + "related": ".xml" + } + }, + "resource": { + "lib/net8.0/cs/Microsoft.Testing.Platform.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.Testing.Platform.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.Testing.Platform.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.Testing.Platform.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.Testing.Platform.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.Testing.Platform.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.Testing.Platform.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.Testing.Platform.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.Testing.Platform.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.Testing.Platform.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.Testing.Platform.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.Testing.Platform.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.Testing.Platform.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Testing.Platform.props": {}, + "buildTransitive/net8.0/Microsoft.Testing.Platform.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/Microsoft.Testing.Platform.props": {}, + "buildMultiTargeting/Microsoft.Testing.Platform.targets": {} + } + }, + "Microsoft.Testing.Platform.MSBuild/2.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Testing.Platform": "2.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Testing.Extensions.MSBuild.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Testing.Extensions.MSBuild.dll": { + "related": ".xml" + } + }, + "resource": { + "lib/net8.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "cs" + }, + "lib/net8.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "de" + }, + "lib/net8.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "es" + }, + "lib/net8.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "fr" + }, + "lib/net8.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "it" + }, + "lib/net8.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "ja" + }, + "lib/net8.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "ko" + }, + "lib/net8.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "pl" + }, + "lib/net8.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "pt-BR" + }, + "lib/net8.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "ru" + }, + "lib/net8.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "tr" + }, + "lib/net8.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net8.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "buildTransitive/Microsoft.Testing.Platform.MSBuild.props": {}, + "buildTransitive/Microsoft.Testing.Platform.MSBuild.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/Microsoft.Testing.Platform.MSBuild.props": {}, + "buildMultiTargeting/Microsoft.Testing.Platform.MSBuild.targets": {} + } + }, + "Microsoft.Win32.Registry/5.0.0": { + "type": "package", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + }, + "compile": { + "ref/netstandard2.0/Microsoft.Win32.Registry.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Win32.Registry.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Diagnostics.DiagnosticSource/5.0.0": { + "type": "package", + "compile": { + "lib/net5.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + } + }, + "System.Security.AccessControl/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + }, + "compile": { + "ref/netstandard2.0/System.Security.AccessControl.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Security.AccessControl.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Principal.Windows/5.0.0": { + "type": "package", + "compile": { + "ref/netcoreapp3.0/System.Security.Principal.Windows.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Security.Principal.Windows.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "xunit.analyzers/1.27.0": { + "type": "package" + }, + "xunit.v3.assert/3.2.2": { + "type": "package", + "compile": { + "lib/net8.0/xunit.v3.assert.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/xunit.v3.assert.dll": { + "related": ".xml" + } + } + }, + "xunit.v3.common/3.2.2": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0" + }, + "compile": { + "lib/netstandard2.0/xunit.v3.common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.v3.common.dll": { + "related": ".xml" + } + } + }, + "xunit.v3.core.mtp-v2/3.2.2": { + "type": "package", + "dependencies": { + "Microsoft.Testing.Extensions.Telemetry": "2.0.2", + "Microsoft.Testing.Extensions.TrxReport.Abstractions": "2.0.2", + "Microsoft.Testing.Platform": "2.0.2", + "Microsoft.Testing.Platform.MSBuild": "2.0.2", + "xunit.v3.extensibility.core": "[3.2.2]", + "xunit.v3.runner.inproc.console": "[3.2.2]" + }, + "compile": { + "lib/net8.0/xunit.v3.mtp-v2.dll": {} + }, + "runtime": { + "lib/net8.0/xunit.v3.mtp-v2.dll": {} + }, + "build": { + "buildTransitive/xunit.v3.core.mtp-v2.props": {}, + "buildTransitive/xunit.v3.core.mtp-v2.targets": {} + } + }, + "xunit.v3.extensibility.core/3.2.2": { + "type": "package", + "dependencies": { + "xunit.v3.common": "[3.2.2]" + }, + "compile": { + "lib/netstandard2.0/xunit.v3.core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.v3.core.dll": { + "related": ".xml" + } + } + }, + "xunit.v3.mtp-v2/3.2.2": { + "type": "package", + "dependencies": { + "xunit.analyzers": "1.27.0", + "xunit.v3.assert": "[3.2.2]", + "xunit.v3.core.mtp-v2": "[3.2.2]" + }, + "compile": { + "lib/net8.0/_._": {} + }, + "runtime": { + "lib/net8.0/_._": {} + } + }, + "xunit.v3.runner.common/3.2.2": { + "type": "package", + "dependencies": { + "Microsoft.Win32.Registry": "[5.0.0]", + "xunit.v3.common": "[3.2.2]" + }, + "compile": { + "lib/netstandard2.0/xunit.v3.runner.common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.v3.runner.common.dll": { + "related": ".xml" + } + } + }, + "xunit.v3.runner.inproc.console/3.2.2": { + "type": "package", + "dependencies": { + "xunit.v3.extensibility.core": "[3.2.2]", + "xunit.v3.runner.common": "[3.2.2]" + }, + "compile": { + "lib/net8.0/xunit.v3.runner.inproc.console.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/xunit.v3.runner.inproc.console.dll": { + "related": ".xml" + } + } + } + } + }, + "libraries": { + "Microsoft.ApplicationInsights/2.23.0": { + "sha512": "nWArUZTdU7iqZLycLKWe0TDms48KKGE6pONH2terYNa8REXiqixrMOkf1sk5DHGMaUTqONU2YkS4SAXBhLStgw==", + "type": "package", + "path": "microsoft.applicationinsights/2.23.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "lib/net452/Microsoft.ApplicationInsights.dll", + "lib/net452/Microsoft.ApplicationInsights.pdb", + "lib/net452/Microsoft.ApplicationInsights.xml", + "lib/net46/Microsoft.ApplicationInsights.dll", + "lib/net46/Microsoft.ApplicationInsights.pdb", + "lib/net46/Microsoft.ApplicationInsights.xml", + "lib/netstandard2.0/Microsoft.ApplicationInsights.dll", + "lib/netstandard2.0/Microsoft.ApplicationInsights.pdb", + "lib/netstandard2.0/Microsoft.ApplicationInsights.xml", + "microsoft.applicationinsights.2.23.0.nupkg.sha512", + "microsoft.applicationinsights.nuspec" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "sha512": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "sha512": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", + "type": "package", + "path": "microsoft.netcore.platforms/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netstandard1.0/_._", + "microsoft.netcore.platforms.5.0.0.nupkg.sha512", + "microsoft.netcore.platforms.nuspec", + "runtime.json", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Testing.Extensions.Telemetry/2.0.2": { + "sha512": "H580BvHyuADoWzlH9zRk5fqVyGucm6mhph+k40CQc9O4ie+Buxa4Pk9Q92BEClqIICqi25J7fuMII9qFYYgKtw==", + "type": "package", + "path": "microsoft.testing.extensions.telemetry/2.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "build/net8.0/Microsoft.Testing.Extensions.Telemetry.props", + "build/net9.0/Microsoft.Testing.Extensions.Telemetry.props", + "build/netstandard2.0/Microsoft.Testing.Extensions.Telemetry.props", + "buildMultiTargeting/Microsoft.Testing.Extensions.Telemetry.props", + "buildTransitive/net8.0/Microsoft.Testing.Extensions.Telemetry.props", + "buildTransitive/net9.0/Microsoft.Testing.Extensions.Telemetry.props", + "buildTransitive/netstandard2.0/Microsoft.Testing.Extensions.Telemetry.props", + "lib/net8.0/Microsoft.Testing.Extensions.Telemetry.dll", + "lib/net8.0/Microsoft.Testing.Extensions.Telemetry.xml", + "lib/net8.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/Microsoft.Testing.Extensions.Telemetry.dll", + "lib/net9.0/Microsoft.Testing.Extensions.Telemetry.xml", + "lib/net9.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/net9.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/Microsoft.Testing.Extensions.Telemetry.dll", + "lib/netstandard2.0/Microsoft.Testing.Extensions.Telemetry.xml", + "lib/netstandard2.0/cs/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/de/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/es/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/fr/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/it/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/ja/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/ko/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/pl/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/ru/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/tr/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.Testing.Extensions.Telemetry.resources.dll", + "microsoft.testing.extensions.telemetry.2.0.2.nupkg.sha512", + "microsoft.testing.extensions.telemetry.nuspec" + ] + }, + "Microsoft.Testing.Extensions.TrxReport.Abstractions/2.0.2": { + "sha512": "MrHYdPZ1CiyYp5bfjzNSghfVwl/I9osMazcZMAbwZY0BhR32i70YLf4zSXECvU2qt2PvDdrjYpGRgBscFbjDpw==", + "type": "package", + "path": "microsoft.testing.extensions.trxreport.abstractions/2.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll", + "lib/net8.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.xml", + "lib/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll", + "lib/net9.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Testing.Extensions.TrxReport.Abstractions.xml", + "microsoft.testing.extensions.trxreport.abstractions.2.0.2.nupkg.sha512", + "microsoft.testing.extensions.trxreport.abstractions.nuspec" + ] + }, + "Microsoft.Testing.Platform/2.0.2": { + "sha512": "43NCOTEENtdc9fmlzX9KHQR14AZEYek5r4jOJlWPhTyV1+aYAQYl4x773nYXU5TKxV6+rMuniJ7wcj9C9qrP1A==", + "type": "package", + "path": "microsoft.testing.platform/2.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "build/net8.0/Microsoft.Testing.Platform.props", + "build/net8.0/Microsoft.Testing.Platform.targets", + "build/net9.0/Microsoft.Testing.Platform.props", + "build/net9.0/Microsoft.Testing.Platform.targets", + "build/netstandard2.0/Microsoft.Testing.Platform.props", + "build/netstandard2.0/Microsoft.Testing.Platform.targets", + "buildMultiTargeting/Microsoft.Testing.Platform.props", + "buildMultiTargeting/Microsoft.Testing.Platform.targets", + "buildTransitive/net8.0/Microsoft.Testing.Platform.props", + "buildTransitive/net8.0/Microsoft.Testing.Platform.targets", + "buildTransitive/net9.0/Microsoft.Testing.Platform.props", + "buildTransitive/net9.0/Microsoft.Testing.Platform.targets", + "buildTransitive/netstandard2.0/Microsoft.Testing.Platform.props", + "buildTransitive/netstandard2.0/Microsoft.Testing.Platform.targets", + "lib/net8.0/Microsoft.Testing.Platform.dll", + "lib/net8.0/Microsoft.Testing.Platform.xml", + "lib/net8.0/cs/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/de/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/es/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/fr/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/it/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/ja/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/ko/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/pl/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/pt-BR/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/ru/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/tr/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.Testing.Platform.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/Microsoft.Testing.Platform.dll", + "lib/net9.0/Microsoft.Testing.Platform.xml", + "lib/net9.0/cs/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/de/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/es/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/fr/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/it/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/ja/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/ko/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/pl/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/pt-BR/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/ru/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/tr/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/zh-Hans/Microsoft.Testing.Platform.resources.dll", + "lib/net9.0/zh-Hant/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/Microsoft.Testing.Platform.dll", + "lib/netstandard2.0/Microsoft.Testing.Platform.xml", + "lib/netstandard2.0/cs/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/de/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/es/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/fr/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/it/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/ja/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/ko/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/pl/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/ru/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/tr/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.Testing.Platform.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.Testing.Platform.resources.dll", + "microsoft.testing.platform.2.0.2.nupkg.sha512", + "microsoft.testing.platform.nuspec" + ] + }, + "Microsoft.Testing.Platform.MSBuild/2.0.2": { + "sha512": "2zKkQKaUoaKgb/3AekboWOdLMh4upCo1nLWQnjGzp8r9YjiNOZRrzTsJQ3A4U03AcbH0evlIvFDKYSUqmTVuug==", + "type": "package", + "path": "microsoft.testing.platform.msbuild/2.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "_MSBuildTasks/netstandard2.0/Microsoft.Testing.Platform.MSBuild.dll", + "_MSBuildTasks/netstandard2.0/Microsoft.Testing.Platform.MSBuild.xml", + "_MSBuildTasks/netstandard2.0/Microsoft.Testing.Platform.dll", + "_MSBuildTasks/netstandard2.0/Microsoft.Testing.Platform.xml", + "_MSBuildTasks/netstandard2.0/Microsoft.Win32.Registry.dll", + "_MSBuildTasks/netstandard2.0/System.Security.AccessControl.dll", + "_MSBuildTasks/netstandard2.0/System.Security.Principal.Windows.dll", + "_MSBuildTasks/netstandard2.0/cs/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/cs/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/de/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/de/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/es/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/es/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/fr/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/fr/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/it/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/it/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/ja/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/ja/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/ko/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/ko/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/pl/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/pl/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/pt-BR/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/pt-BR/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/ru/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/ru/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/tr/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/tr/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/zh-Hans/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/zh-Hans/Microsoft.Testing.Platform.resources.dll", + "_MSBuildTasks/netstandard2.0/zh-Hant/Microsoft.Testing.Platform.MSBuild.resources.dll", + "_MSBuildTasks/netstandard2.0/zh-Hant/Microsoft.Testing.Platform.resources.dll", + "build/Microsoft.Testing.Platform.MSBuild.props", + "build/Microsoft.Testing.Platform.MSBuild.targets", + "buildMultiTargeting/Microsoft.Testing.Platform.MSBuild.CustomTestTarget.targets", + "buildMultiTargeting/Microsoft.Testing.Platform.MSBuild.VSTest.targets", + "buildMultiTargeting/Microsoft.Testing.Platform.MSBuild.props", + "buildMultiTargeting/Microsoft.Testing.Platform.MSBuild.targets", + "buildTransitive/Microsoft.Testing.Platform.MSBuild.props", + "buildTransitive/Microsoft.Testing.Platform.MSBuild.targets", + "lib/net8.0/Microsoft.Testing.Extensions.MSBuild.dll", + "lib/net8.0/Microsoft.Testing.Extensions.MSBuild.xml", + "lib/net8.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/Microsoft.Testing.Extensions.MSBuild.dll", + "lib/net9.0/Microsoft.Testing.Extensions.MSBuild.xml", + "lib/net9.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/net9.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/Microsoft.Testing.Extensions.MSBuild.dll", + "lib/netstandard2.0/Microsoft.Testing.Extensions.MSBuild.xml", + "lib/netstandard2.0/cs/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/de/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/es/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/fr/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/it/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/ja/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/ko/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/pl/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/ru/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/tr/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.Testing.Extensions.MSBuild.resources.dll", + "microsoft.testing.platform.msbuild.2.0.2.nupkg.sha512", + "microsoft.testing.platform.msbuild.nuspec" + ] + }, + "Microsoft.Win32.Registry/5.0.0": { + "sha512": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "type": "package", + "path": "microsoft.win32.registry/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/Microsoft.Win32.Registry.dll", + "lib/net461/Microsoft.Win32.Registry.dll", + "lib/net461/Microsoft.Win32.Registry.xml", + "lib/netstandard1.3/Microsoft.Win32.Registry.dll", + "lib/netstandard2.0/Microsoft.Win32.Registry.dll", + "lib/netstandard2.0/Microsoft.Win32.Registry.xml", + "microsoft.win32.registry.5.0.0.nupkg.sha512", + "microsoft.win32.registry.nuspec", + "ref/net46/Microsoft.Win32.Registry.dll", + "ref/net461/Microsoft.Win32.Registry.dll", + "ref/net461/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/Microsoft.Win32.Registry.dll", + "ref/netstandard1.3/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/de/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/es/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/fr/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/it/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ja/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ko/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ru/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/zh-hans/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/zh-hant/Microsoft.Win32.Registry.xml", + "ref/netstandard2.0/Microsoft.Win32.Registry.dll", + "ref/netstandard2.0/Microsoft.Win32.Registry.xml", + "runtimes/win/lib/net46/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/net461/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/net461/Microsoft.Win32.Registry.xml", + "runtimes/win/lib/netstandard1.3/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Diagnostics.DiagnosticSource/5.0.0": { + "sha512": "tCQTzPsGZh/A9LhhA6zrqCRV4hOHsK90/G7q3Khxmn6tnB1PuNU0cRaKANP2AWcF9bn0zsuOoZOSrHuJk6oNBA==", + "type": "package", + "path": "system.diagnostics.diagnosticsource/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net45/System.Diagnostics.DiagnosticSource.dll", + "lib/net45/System.Diagnostics.DiagnosticSource.xml", + "lib/net46/System.Diagnostics.DiagnosticSource.dll", + "lib/net46/System.Diagnostics.DiagnosticSource.xml", + "lib/net5.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net5.0/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard1.1/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard1.1/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.xml", + "lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.dll", + "lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.xml", + "system.diagnostics.diagnosticsource.5.0.0.nupkg.sha512", + "system.diagnostics.diagnosticsource.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Security.AccessControl/5.0.0": { + "sha512": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "type": "package", + "path": "system.security.accesscontrol/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/System.Security.AccessControl.dll", + "lib/net461/System.Security.AccessControl.dll", + "lib/net461/System.Security.AccessControl.xml", + "lib/netstandard1.3/System.Security.AccessControl.dll", + "lib/netstandard2.0/System.Security.AccessControl.dll", + "lib/netstandard2.0/System.Security.AccessControl.xml", + "lib/uap10.0.16299/_._", + "ref/net46/System.Security.AccessControl.dll", + "ref/net461/System.Security.AccessControl.dll", + "ref/net461/System.Security.AccessControl.xml", + "ref/netstandard1.3/System.Security.AccessControl.dll", + "ref/netstandard1.3/System.Security.AccessControl.xml", + "ref/netstandard1.3/de/System.Security.AccessControl.xml", + "ref/netstandard1.3/es/System.Security.AccessControl.xml", + "ref/netstandard1.3/fr/System.Security.AccessControl.xml", + "ref/netstandard1.3/it/System.Security.AccessControl.xml", + "ref/netstandard1.3/ja/System.Security.AccessControl.xml", + "ref/netstandard1.3/ko/System.Security.AccessControl.xml", + "ref/netstandard1.3/ru/System.Security.AccessControl.xml", + "ref/netstandard1.3/zh-hans/System.Security.AccessControl.xml", + "ref/netstandard1.3/zh-hant/System.Security.AccessControl.xml", + "ref/netstandard2.0/System.Security.AccessControl.dll", + "ref/netstandard2.0/System.Security.AccessControl.xml", + "ref/uap10.0.16299/_._", + "runtimes/win/lib/net46/System.Security.AccessControl.dll", + "runtimes/win/lib/net461/System.Security.AccessControl.dll", + "runtimes/win/lib/net461/System.Security.AccessControl.xml", + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll", + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.xml", + "runtimes/win/lib/netstandard1.3/System.Security.AccessControl.dll", + "runtimes/win/lib/uap10.0.16299/_._", + "system.security.accesscontrol.5.0.0.nupkg.sha512", + "system.security.accesscontrol.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Security.Principal.Windows/5.0.0": { + "sha512": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", + "type": "package", + "path": "system.security.principal.windows/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/System.Security.Principal.Windows.dll", + "lib/net461/System.Security.Principal.Windows.dll", + "lib/net461/System.Security.Principal.Windows.xml", + "lib/netstandard1.3/System.Security.Principal.Windows.dll", + "lib/netstandard2.0/System.Security.Principal.Windows.dll", + "lib/netstandard2.0/System.Security.Principal.Windows.xml", + "lib/uap10.0.16299/_._", + "ref/net46/System.Security.Principal.Windows.dll", + "ref/net461/System.Security.Principal.Windows.dll", + "ref/net461/System.Security.Principal.Windows.xml", + "ref/netcoreapp3.0/System.Security.Principal.Windows.dll", + "ref/netcoreapp3.0/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/System.Security.Principal.Windows.dll", + "ref/netstandard1.3/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/de/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/es/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/fr/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/it/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ja/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ko/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ru/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/zh-hans/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/zh-hant/System.Security.Principal.Windows.xml", + "ref/netstandard2.0/System.Security.Principal.Windows.dll", + "ref/netstandard2.0/System.Security.Principal.Windows.xml", + "ref/uap10.0.16299/_._", + "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll", + "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.xml", + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll", + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.xml", + "runtimes/win/lib/net46/System.Security.Principal.Windows.dll", + "runtimes/win/lib/net461/System.Security.Principal.Windows.dll", + "runtimes/win/lib/net461/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll", + "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll", + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll", + "runtimes/win/lib/uap10.0.16299/_._", + "system.security.principal.windows.5.0.0.nupkg.sha512", + "system.security.principal.windows.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "xunit.analyzers/1.27.0": { + "sha512": "y/pxIQaLvk/kxAoDkZW9GnHLCEqzwl5TW0vtX3pweyQpjizB9y3DXhb9pkw2dGeUqhLjsxvvJM1k89JowU6z3g==", + "type": "package", + "path": "xunit.analyzers/1.27.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "analyzers/dotnet/cs/xunit.analyzers.dll", + "analyzers/dotnet/cs/xunit.analyzers.fixes.dll", + "tools/install.ps1", + "tools/uninstall.ps1", + "xunit.analyzers.1.27.0.nupkg.sha512", + "xunit.analyzers.nuspec" + ] + }, + "xunit.v3.assert/3.2.2": { + "sha512": "BPciBghgEEaJN/JG00QfCYDfEfnLgQhfnYEy+j1izoeHVNYd5+3Wm8GJ6JgYysOhpBPYGE+sbf75JtrRc7jrdA==", + "type": "package", + "path": "xunit.v3.assert/3.2.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net8.0/xunit.v3.assert.dll", + "lib/net8.0/xunit.v3.assert.xml", + "lib/netstandard2.0/xunit.v3.assert.dll", + "lib/netstandard2.0/xunit.v3.assert.xml", + "xunit.v3.assert.3.2.2.nupkg.sha512", + "xunit.v3.assert.nuspec" + ] + }, + "xunit.v3.common/3.2.2": { + "sha512": "Hj775PEH6GTbbg0wfKRvG2hNspDCvTH9irXhH4qIWgdrOSV1sQlqPie+DOvFeigsFg2fxSM3ZAaaCDQs+KreFA==", + "type": "package", + "path": "xunit.v3.common/3.2.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/netstandard2.0/xunit.v3.common.dll", + "lib/netstandard2.0/xunit.v3.common.xml", + "xunit.v3.common.3.2.2.nupkg.sha512", + "xunit.v3.common.nuspec" + ] + }, + "xunit.v3.core.mtp-v2/3.2.2": { + "sha512": "zW82tdCm+T1uUD1JKE+SmhgMq8nCAvcFPRLIVEiRgaxBSjcyJEKopLU3bHGOa416q+N3Dz7m1zLoPR5VJ5OQ+Q==", + "type": "package", + "path": "xunit.v3.core.mtp-v2/3.2.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/DefaultRunnerReporters.cs", + "_content/DefaultRunnerReporters.fs", + "_content/DefaultRunnerReporters.vb", + "_content/README.md", + "_content/logo-128-transparent.png", + "_content/runners/netcore/xunit.abstractions.dll", + "_content/runners/netcore/xunit.v3.runner.utility.netcore.dll", + "_content/runners/netfx/xunit.abstractions.dll", + "_content/runners/netfx/xunit.v3.runner.utility.netfx.dll", + "_content/tasks/netcore/xunit.v3.msbuildtasks.dll", + "_content/tasks/netfx/xunit.v3.msbuildtasks.dll", + "buildTransitive/xunit.v3.core.mtp-v2.props", + "buildTransitive/xunit.v3.core.mtp-v2.targets", + "lib/net472/xunit.v3.mtp-v2.dll", + "lib/net8.0/xunit.v3.mtp-v2.dll", + "xunit.v3.core.mtp-v2.3.2.2.nupkg.sha512", + "xunit.v3.core.mtp-v2.nuspec" + ] + }, + "xunit.v3.extensibility.core/3.2.2": { + "sha512": "srY8z/oMPvh/t8axtO2DwrHajhFMH7tnqKildvYrVQIfICi8fOn3yIBWkVPAcrKmHMwvXRJ/XsQM3VMR6DOYfQ==", + "type": "package", + "path": "xunit.v3.extensibility.core/3.2.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/netstandard2.0/xunit.v3.core.dll", + "lib/netstandard2.0/xunit.v3.core.xml", + "xunit.v3.extensibility.core.3.2.2.nupkg.sha512", + "xunit.v3.extensibility.core.nuspec" + ] + }, + "xunit.v3.mtp-v2/3.2.2": { + "sha512": "S0LJpeMIMrmbVLXDCvPVX47OLk28qBYfGU+5SNCbarOEdw8oKLfiVqaACwuYRvLiOqDEB/+VJ8gTSB1ZwheoOQ==", + "type": "package", + "path": "xunit.v3.mtp-v2/3.2.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net472/_._", + "lib/net8.0/_._", + "xunit.v3.mtp-v2.3.2.2.nupkg.sha512", + "xunit.v3.mtp-v2.nuspec" + ] + }, + "xunit.v3.runner.common/3.2.2": { + "sha512": "/hkHkQCzGrugelOAehprm7RIWdsUFVmIVaD6jDH/8DNGCymTlKKPTbGokD5czbAfqfex47mBP0sb0zbHYwrO/g==", + "type": "package", + "path": "xunit.v3.runner.common/3.2.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/netstandard2.0/xunit.v3.runner.common.dll", + "lib/netstandard2.0/xunit.v3.runner.common.xml", + "xunit.v3.runner.common.3.2.2.nupkg.sha512", + "xunit.v3.runner.common.nuspec" + ] + }, + "xunit.v3.runner.inproc.console/3.2.2": { + "sha512": "ulWOdSvCk+bPXijJZ73bth9NyoOHsAs1ZOvamYbCkD4DNLX/Bd29Ve2ZNUwBbK0MqfIYWXHZViy/HKrdEC/izw==", + "type": "package", + "path": "xunit.v3.runner.inproc.console/3.2.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net472/xunit.v3.runner.inproc.console.dll", + "lib/net472/xunit.v3.runner.inproc.console.xml", + "lib/net8.0/xunit.v3.runner.inproc.console.dll", + "lib/net8.0/xunit.v3.runner.inproc.console.xml", + "xunit.v3.runner.inproc.console.3.2.2.nupkg.sha512", + "xunit.v3.runner.inproc.console.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "xunit.v3.mtp-v2 >= 3.2.2" + ] + }, + "packageFolders": { + "C:\\Users\\Minimata\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\Godot\\Projects\\movement-tests\\movement-tests.csproj", + "projectName": "movement-tests", + "projectPath": "D:\\Godot\\Projects\\movement-tests\\movement-tests.csproj", + "packagesPath": "C:\\Users\\Minimata\\.nuget\\packages\\", + "outputPath": "D:\\Godot\\Projects\\movement-tests\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Minimata\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "xunit.v3.mtp-v2": { + "target": "Package", + "version": "[3.2.2, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.301/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache new file mode 100644 index 00000000..0d7f6f20 --- /dev/null +++ b/obj/project.nuget.cache @@ -0,0 +1,28 @@ +{ + "version": 2, + "dgSpecHash": "C+vE0OBbgVo=", + "success": true, + "projectFilePath": "D:\\Godot\\Projects\\movement-tests\\movement-tests.csproj", + "expectedPackageFiles": [ + "C:\\Users\\Minimata\\.nuget\\packages\\microsoft.applicationinsights\\2.23.0\\microsoft.applicationinsights.2.23.0.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\6.0.0\\microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\microsoft.testing.extensions.telemetry\\2.0.2\\microsoft.testing.extensions.telemetry.2.0.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\microsoft.testing.extensions.trxreport.abstractions\\2.0.2\\microsoft.testing.extensions.trxreport.abstractions.2.0.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\microsoft.testing.platform\\2.0.2\\microsoft.testing.platform.2.0.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\microsoft.testing.platform.msbuild\\2.0.2\\microsoft.testing.platform.msbuild.2.0.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\microsoft.win32.registry\\5.0.0\\microsoft.win32.registry.5.0.0.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\system.diagnostics.diagnosticsource\\5.0.0\\system.diagnostics.diagnosticsource.5.0.0.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\system.security.accesscontrol\\5.0.0\\system.security.accesscontrol.5.0.0.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\system.security.principal.windows\\5.0.0\\system.security.principal.windows.5.0.0.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\xunit.analyzers\\1.27.0\\xunit.analyzers.1.27.0.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\xunit.v3.assert\\3.2.2\\xunit.v3.assert.3.2.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\xunit.v3.common\\3.2.2\\xunit.v3.common.3.2.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\xunit.v3.core.mtp-v2\\3.2.2\\xunit.v3.core.mtp-v2.3.2.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\xunit.v3.extensibility.core\\3.2.2\\xunit.v3.extensibility.core.3.2.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\xunit.v3.mtp-v2\\3.2.2\\xunit.v3.mtp-v2.3.2.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\xunit.v3.runner.common\\3.2.2\\xunit.v3.runner.common.3.2.2.nupkg.sha512", + "C:\\Users\\Minimata\\.nuget\\packages\\xunit.v3.runner.inproc.console\\3.2.2\\xunit.v3.runner.inproc.console.3.2.2.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/tests/player/PlayerControllerUnitTest.cs b/tests/player/PlayerControllerUnitTest.cs new file mode 100644 index 00000000..947ecf14 --- /dev/null +++ b/tests/player/PlayerControllerUnitTest.cs @@ -0,0 +1,187 @@ +using System.Reflection; +using Godot; +using GdUnit4; +using static GdUnit4.Assertions; +using Movementtests.interfaces; +using Movementtests.systems.damage; + +namespace Movementtests.tests; + +[TestSuite, RequireGodotRuntime] +public class PlayerControllerUnitTest +{ + private PlayerController _player; + + [BeforeTest] + public void SetupTest() + { + _player = new PlayerController(); + // We don't call _Ready() to avoid node dependency issues, + // but we need to initialize some private fields for unit testing. + SetPrivateField(_player, "_targetSpeed", 7.0f); + SetPrivateField(_player, "_gravity", 9.8f); + + // Setup Combat/Health dependencies + var rHealth = new RHealth(100.0f); + _player.RHealth = rHealth; + _player.CHealth = new CHealth { RHealth = rHealth, CurrentHealth = 100.0f }; + } + + [AfterTest] + public void CleanupTest() + { + _player?.Free(); + } + + private void SetPrivateField(object obj, string fieldName, object value) + { + var field = typeof(PlayerController).GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance); + field?.SetValue(obj, value); + } + + [TestCase] + public void TestCalculateGravityForce() + { + _player.Weight = 3.0f; + // _gravity is 9.8f + AssertFloat(_player.CalculateGravityForce()).IsEqualApprox(29.4f, 0.001f); + } + + [TestCase] + public void TestIsPlayerInputtingForward() + { + // Test Keyboard Input + _player.InputDeviceChanged(false); // isUsingGamepad = false + _player.OnInputMoveKeyboard(new Vector3(0, 0, -1)); // Forward is -Z in Godot + AssertBool(_player.IsPlayerInputtingForward()).IsTrue(); + + _player.OnInputMoveKeyboard(new Vector3(0, 0, 1)); // Backward + AssertBool(_player.IsPlayerInputtingForward()).IsFalse(); + + // Test Gamepad Input + _player.InputDeviceChanged(true); // isUsingGamepad = true + _player.OnInputMove(new Vector3(0, 0, -1)); + AssertBool(_player.IsPlayerInputtingForward()).IsTrue(); + } + + [TestCase] + public void TestSetVerticalVelocity() + { + _player.Velocity = new Vector3(1, 0, 2); + _player.SetVerticalVelocity(5.0f); + AssertVector(_player.Velocity).IsEqual(new Vector3(1, 5, 2)); + } + + [TestCase] + public void TestComputeHVelocityGround() + { + _player.Velocity = Vector3.Zero; + _player.AccelerationFloor = 10.0f; + + // Moving forward + Vector3 direction = Vector3.Forward; // (0, 0, -1) + float delta = 0.1f; + + // _targetSpeed is 7.0f + // Expected velocity change: Lerp(0, -7.0, 0.1 * 10.0) -> Lerp(0, -7.0, 1.0) -> -7.0 + Vector3 newVelocity = _player.ComputeHVelocity(delta, _player.AccelerationFloor, _player.DecelerationFloor, direction); + + AssertVector(newVelocity).IsEqual(new Vector3(0, 0, -7.0f)); + } + + [TestCase] + public void TestComputeHVelocityAir() + { + _player.Velocity = new Vector3(5, 0, 0); + _player.AccelerationAir = 2.0f; + _player.DecelerationAir = 2.0f; + + // No input direction (deceleration) + Vector3 direction = Vector3.Zero; + float delta = 0.5f; + + // Expected velocity change: Lerp(5, 0, 0.5 * 2.0) -> Lerp(5, 0, 1.0) -> 0 + Vector3 newVelocity = _player.ComputeHVelocity(delta, _player.AccelerationAir, _player.DecelerationAir, direction); + + AssertVector(newVelocity).IsEqual(Vector3.Zero); + } + + [TestCase] + public void TestReduceHealth() + { + // Initial health is 100 + var damageRecord = new DamageRecord(Vector3.Zero, new RDamage(25.0f, EDamageTypes.Normal)); + _player.ReduceHealth(_player, damageRecord); + + AssertFloat(_player.CHealth.CurrentHealth).IsEqual(75.0f); + } + + [TestCase] + public void TestEmpoweredActionsLeft() + { + // EmpoweredActionsLeft setter calls PlayerUi.SetNumberOfDashesLeft + // PlayerUi.SetNumberOfDashesLeft accesses _dashIcons array, which is null if _Ready() isn't called. + // We can initialize _dashIcons via reflection to allow the setter to work. + var mockUi = new PlayerUi(); + var dashIcons = new TextureRect[3] { new TextureRect(), new TextureRect(), new TextureRect() }; + var field = typeof(PlayerUi).GetField("_dashIcons", BindingFlags.NonPublic | BindingFlags.Instance); + field?.SetValue(mockUi, dashIcons); + + _player.PlayerUi = mockUi; + + _player.EmpoweredActionsLeft = 2; + AssertInt(_player.EmpoweredActionsLeft).IsEqual(2); + AssertBool(dashIcons[0].Visible).IsTrue(); + AssertBool(dashIcons[1].Visible).IsTrue(); + AssertBool(dashIcons[2].Visible).IsFalse(); + } + + [TestCase] + public void TestDashCooldownTimeout() + { + SetPrivateField(_player, "_canDash", false); + _player.DashCooldownTimeout(); + bool canDash = (bool)GetPrivateField(_player, "_canDash"); + AssertBool(canDash).IsTrue(); + } + + private object GetPrivateField(object obj, string fieldName) + { + var field = typeof(PlayerController).GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance); + return field?.GetValue(obj); + } + + [TestCase] + public void TestGetInputLocalHDirection() + { + _player.InputDeviceChanged(false); // Keyboard + _player.OnInputMoveKeyboard(new Vector3(1, 0, 1)); // Diagonal + + Vector3 expected = new Vector3(1, 0, 1).Normalized(); + AssertVector(_player.GetInputLocalHDirection()).IsEqualApprox(expected, new Vector3(0.001f, 0.001f, 0.001f)); + } + + [TestCase] + public void TestComputeKnockback() + { + var cKnockback = new CKnockback(); + cKnockback.RKnockback = new RKnockback(10.0f); + _player.CKnockback = cKnockback; + + // Setup knockback record + var damageRecord = new DamageRecord(new Vector3(10, 0, 0), new RDamage(0, EDamageTypes.Normal)); + var knockbackRecord = new KnockbackRecord(damageRecord, 1.0f); + + _player.GlobalPosition = Vector3.Zero; + cKnockback.GlobalPosition = Vector3.Zero; + + _player.RegisterKnockback(knockbackRecord); + + // Expected direction: GlobalPosition (0,0,0) - SourceLocation (10,0,0) = (-10,0,0) + // Normalized: (-1, 0, 0) + // finalKnockback: (-1, 0, 0) * 10.0 (Modifier) * 1.0 (ForceMultiplier) = (-10, 0, 0) + + Vector3 knockback = cKnockback.ComputeKnockback(); + AssertVector(knockback).IsEqual(new Vector3(-10, 0, 0)); + } +} diff --git a/tests/player/PlayerControllerUnitTest.cs.uid b/tests/player/PlayerControllerUnitTest.cs.uid new file mode 100644 index 00000000..16a906a1 --- /dev/null +++ b/tests/player/PlayerControllerUnitTest.cs.uid @@ -0,0 +1 @@ +uid://kmphtu0ovixi diff --git a/tests/PlayerMovementTest.cs b/tests/player/movement/PlayerMovementTest.cs similarity index 94% rename from tests/PlayerMovementTest.cs rename to tests/player/movement/PlayerMovementTest.cs index 166552da..e404cc44 100644 --- a/tests/PlayerMovementTest.cs +++ b/tests/player/movement/PlayerMovementTest.cs @@ -24,7 +24,7 @@ public class PlayerMovementTest [BeforeTest] public void SetupTest() { - _runner = ISceneRunner.Load("res://tests/player_movement/player_movement_scene.tscn"); + _runner = ISceneRunner.Load("res://tests/player/movement/player_movement_scene.tscn"); _scene = _runner.Scene()!; var player = _scene.FindChild("Player") as PlayerController; @@ -89,10 +89,10 @@ public class PlayerMovementTest _runner.SimulateKeyPress(Key.Space); await _runner.AwaitMillis(100); _runner.SimulateKeyRelease(Key.Space); - await _runner.AwaitMillis(300); + await _runner.AwaitMillis(500); var endPos = _player.GlobalPosition; - AssertFloat((endPos - startPos).Length()).IsGreater(0.0f); + AssertFloat((endPos - startPos).Length()).IsGreater(_tolerance); AssertFloat(endPos.Y).IsEqualApprox(1.0f, _tolerance); } } \ No newline at end of file diff --git a/tests/PlayerMovementTest.cs.uid b/tests/player/movement/PlayerMovementTest.cs.uid similarity index 100% rename from tests/PlayerMovementTest.cs.uid rename to tests/player/movement/PlayerMovementTest.cs.uid diff --git a/tests/player_movement/player_movement_scene.tscn b/tests/player/movement/player_movement_scene.tscn similarity index 100% rename from tests/player_movement/player_movement_scene.tscn rename to tests/player/movement/player_movement_scene.tscn diff --git a/xunit.runner.json b/xunit.runner.json new file mode 100644 index 00000000..86c7ea05 --- /dev/null +++ b/xunit.runner.json @@ -0,0 +1,3 @@ +{ + "$schema": "https://xunit.net/schema/current/xunit.runner.schema.json" +}