From c9738d9c61babc2bfd9097875b8c50b44959d125 Mon Sep 17 00:00:00 2001 From: Minimata Date: Sun, 22 Feb 2026 16:49:58 +0100 Subject: [PATCH] bis --- .gitea/workflows/main.yaml | 1 + Movement tests.csproj | 2 + maps/_old/city.tscn | 7 - tests/components/DamageComponentUnitTest.cs | 101 ------------ .../components/DamageComponentUnitTest.cs.uid | 1 - tests/components/HealthComponentUnitTest.cs | 55 ------- .../components/HealthComponentUnitTest.cs.uid | 1 - .../components/KnockbackComponentUnitTest.cs | 32 ---- .../KnockbackComponentUnitTest.cs.uid | 1 - tests/components/MovementSystemUnitTest.cs | 32 ---- .../components/MovementSystemUnitTest.cs.uid | 1 - tests/enemies/EnemyUnitTest.cs | 30 ---- tests/enemies/EnemyUnitTest.cs.uid | 1 - tests/player/DashSystemUnitTest.cs | 55 ------- tests/player/DashSystemUnitTest.cs.uid | 1 - tests/player/HeadSystemUnitTest.cs | 91 ----------- tests/player/HeadSystemUnitTest.cs.uid | 1 - tests/player/PlayerControllerUnitTest.cs | 149 ------------------ tests/player/PlayerControllerUnitTest.cs.uid | 1 - tests/player/WeaponSystemUnitTest.cs | 51 ------ tests/player/WeaponSystemUnitTest.cs.uid | 1 - 21 files changed, 3 insertions(+), 612 deletions(-) delete mode 100644 tests/components/DamageComponentUnitTest.cs delete mode 100644 tests/components/DamageComponentUnitTest.cs.uid delete mode 100644 tests/components/HealthComponentUnitTest.cs delete mode 100644 tests/components/HealthComponentUnitTest.cs.uid delete mode 100644 tests/components/KnockbackComponentUnitTest.cs delete mode 100644 tests/components/KnockbackComponentUnitTest.cs.uid delete mode 100644 tests/components/MovementSystemUnitTest.cs delete mode 100644 tests/components/MovementSystemUnitTest.cs.uid delete mode 100644 tests/enemies/EnemyUnitTest.cs delete mode 100644 tests/enemies/EnemyUnitTest.cs.uid delete mode 100644 tests/player/DashSystemUnitTest.cs delete mode 100644 tests/player/DashSystemUnitTest.cs.uid delete mode 100644 tests/player/HeadSystemUnitTest.cs delete mode 100644 tests/player/HeadSystemUnitTest.cs.uid delete mode 100644 tests/player/PlayerControllerUnitTest.cs delete mode 100644 tests/player/PlayerControllerUnitTest.cs.uid delete mode 100644 tests/player/WeaponSystemUnitTest.cs delete mode 100644 tests/player/WeaponSystemUnitTest.cs.uid diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml index 8a465ba1..21bb0b8a 100644 --- a/.gitea/workflows/main.yaml +++ b/.gitea/workflows/main.yaml @@ -57,6 +57,7 @@ jobs: res://tests/ publish-report: false upload-report: false + console-verbosity: 'normal' arguments: "--verbose --headless --import" - name: Upload test report diff --git a/Movement tests.csproj b/Movement tests.csproj index b0cf964c..3351515b 100644 --- a/Movement tests.csproj +++ b/Movement tests.csproj @@ -125,6 +125,8 @@ + + diff --git a/maps/_old/city.tscn b/maps/_old/city.tscn index 363b4590..d117f534 100644 --- a/maps/_old/city.tscn +++ b/maps/_old/city.tscn @@ -20,7 +20,6 @@ [ext_resource type="PackedScene" uid="uid://b8aet6m4m2i83" path="res://scenes/tuto_trigger/TutoTrigger.tscn" id="16_qwuk2"] [ext_resource type="Texture2D" uid="uid://com0lpfuol6vk" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_stick_r.svg" id="17_rmfv1"] [ext_resource type="PackedScene" uid="uid://kktuyhbd5xgc" path="res://menus/scenes/overlaid_menus/tuto_got_sword.tscn" id="17_t0d86"] -[ext_resource type="Texture2D" uid="uid://cjh5cnvdbq5ku" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_b_outline.svg" id="19_efsse"] [ext_resource type="Texture2D" uid="uid://nrhxjdpuje3f" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_lt_outline.svg" id="20_crf87"] [ext_resource type="Texture2D" uid="uid://dyjvbsvbriii4" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_rb_outline.svg" id="23_p287n"] [ext_resource type="PackedScene" uid="uid://c305mfrtumcyq" path="res://scenes/spawners/spawner.tscn" id="24_qwuk2"] @@ -295,8 +294,6 @@ shape = SubResource("BoxShape3D_p287n") [node name="TutoJump" parent="TutoTriggers" unique_id=1236312197 instance=ExtResource("16_qwuk2")] transform = Transform3D(0.14133328, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133328, -0.32653046, 1.2493286, -50.374645) -first_input_texture = ExtResource("16_2k3fr") -second_input_texture = ExtResource("16_2k3fr") tuto_text = "Double jump" [node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoJump" unique_id=1841634666] @@ -305,8 +302,6 @@ shape = SubResource("BoxShape3D_5hbxb") [node name="TutoDash" parent="TutoTriggers" unique_id=1813720328 instance=ExtResource("16_qwuk2")] transform = Transform3D(0.14133328, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133328, 19.967693, 1.2493286, -47.47731) -first_input_texture = ExtResource("16_crf87") -second_input_texture = ExtResource("19_efsse") tuto_text = "Dash" [node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoDash" unique_id=1004053358] @@ -333,8 +328,6 @@ shape = SubResource("BoxShape3D_3wccx") [node name="TutoDash2" parent="TutoTriggers" unique_id=1653612119 instance=ExtResource("16_qwuk2")] transform = Transform3D(0.14133325, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133325, 28.885735, 27.749329, 25.360323) -first_input_texture = ExtResource("19_efsse") -complex_input_text = "against wall" tuto_text = "Wall run" [node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoDash2" unique_id=710186954] diff --git a/tests/components/DamageComponentUnitTest.cs b/tests/components/DamageComponentUnitTest.cs deleted file mode 100644 index 984a78c0..00000000 --- a/tests/components/DamageComponentUnitTest.cs +++ /dev/null @@ -1,101 +0,0 @@ -using Godot; -using GdUnit4; -using static GdUnit4.Assertions; -using Movementtests.interfaces; -using Movementtests.systems.damage; - -namespace Movementtests.tests; - -[TestSuite, RequireGodotRuntime] -public class DamageComponentUnitTest -{ - [TestCase] - public void DamageModifierAppliesWhenTypeMatches() - { - var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal)); - var modifier = new RDamageModifier(EDamageTypes.Normal, 2.0f); - var signalTriggered = false; - modifier.DamageTaken += (_, _) => signalTriggered = true; - - var result = modifier.TakeDamage(input); - - AssertFloat(result.Damage.DamageDealt).IsEqual(20.0f); - AssertBool(signalTriggered).IsTrue(); - } - - [TestCase] - public void DamageModifierIgnoresWhenTypeDifferent() - { - var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal)); - var modifier = new RDamageModifier(EDamageTypes.Fire, 3.0f); - var signalTriggered = false; - modifier.DamageTaken += (_, _) => signalTriggered = true; - - var result = modifier.TakeDamage(input); - - AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f); - AssertBool(signalTriggered).IsFalse(); // No damage actually taken - } - - [TestCase] - public void DamageableSumsAllModifiers() - { - var mod1 = new RDamageModifier(EDamageTypes.Normal, 1.0f); - var mod2 = new RDamageModifier(EDamageTypes.Normal, 0.5f); - - var damageable = new CDamageable(); - damageable.DamageModifiers = new[] { mod1, mod2 }; - var signalTriggered = false; - damageable.DamageTaken += (_, _) => signalTriggered = true; - - var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal)); - var result = damageable.TakeDamage(input); - - AssertFloat(result.Damage.DamageDealt).IsEqual(15.0f); - AssertBool(signalTriggered).IsTrue(); - } - - [TestCase] - public void ComputeDamageModifierAppliesWhenTypeMatches() - { - var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal)); - var modifier = new RDamageModifier(EDamageTypes.Normal, 2.0f); - var signalTriggered = false; - modifier.DamageTaken += (_, _) => signalTriggered = true; - - var result = modifier.ComputeDamage(input); - - AssertFloat(result.Damage.DamageDealt).IsEqual(20.0f); - AssertBool(signalTriggered).IsFalse(); - } - [TestCase] - public void ComputeDamageModifierIgnoresWhenTypeDifferent() - { - var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal)); - var modifier = new RDamageModifier(EDamageTypes.Fire, 3.0f); - var signalTriggered = false; - modifier.DamageTaken += (_, _) => signalTriggered = true; - - var result = modifier.ComputeDamage(input); - - AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f); - AssertBool(signalTriggered).IsFalse(); - } - [TestCase] - public void ComputeDamageableSumsAllModifiers() - { - var mod1 = new RDamageModifier(EDamageTypes.Normal, 1.0f); - var mod2 = new RDamageModifier(EDamageTypes.Normal, 0.5f); - - var cDamageable = new CDamageable(); - cDamageable.DamageModifiers = new[] { mod1, mod2 }; - var signalTriggered = false; - cDamageable.DamageTaken += (_, _) => signalTriggered = true; - - var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal)); - var result = cDamageable.ComputeDamage(input); - - AssertFloat(result.Damage.DamageDealt).IsEqual(15.0f); - AssertBool(signalTriggered).IsFalse(); - } -} diff --git a/tests/components/DamageComponentUnitTest.cs.uid b/tests/components/DamageComponentUnitTest.cs.uid deleted file mode 100644 index 1351834c..00000000 --- a/tests/components/DamageComponentUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://db6rva7uccppc diff --git a/tests/components/HealthComponentUnitTest.cs b/tests/components/HealthComponentUnitTest.cs deleted file mode 100644 index 63d1cb0e..00000000 --- a/tests/components/HealthComponentUnitTest.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Godot; -using GdUnit4; -using static GdUnit4.Assertions; -using Movementtests.interfaces; -using Movementtests.systems.damage; - -namespace Movementtests.tests; - -[TestSuite, RequireGodotRuntime] -public class HealthComponentUnitTest -{ - [TestCase] - public void ReadyInitializesCurrentHealth() - { - var cHealth = new CHealth(); - cHealth.RHealth = new RHealth(150.0f); - cHealth._Ready(); - AssertFloat(cHealth.CurrentHealth).IsEqual(150.0f); - } - - [TestCase] - public void ReduceHealthDecreasesAndDoesNotDeplete() - { - var cHealth = new CHealth(); - cHealth.RHealth = new RHealth(100.0f); - cHealth.CurrentHealth = 100.0f; - - var damage = new DamageRecord(Vector3.Zero, new RDamage(25.0f, EDamageTypes.Normal)); - var record = cHealth.ReduceHealth(source: null!, damageRecord: damage); - - AssertFloat(cHealth.CurrentHealth).IsEqual(75.0f); - AssertFloat(record.CurrentHealth).IsEqual(75.0f); - AssertFloat(record.PreviousHealth).IsEqual(100.0f); - AssertFloat(record.MaxHealth).IsEqual(100.0f); - } - - [TestCase] - public void ReduceHealthTriggersDepletionToZero() - { - var cHealth = new CHealth(); - cHealth.RHealth = new RHealth(50.0f); - cHealth.CurrentHealth = 50.0f; - - bool depleted = false; - cHealth.HealthDepleted += _ => depleted = true; - - var damage = new DamageRecord(Vector3.Zero, new RDamage(100.0f, EDamageTypes.Normal)); - var record = cHealth.ReduceHealth(source: null!, damageRecord: damage); - - AssertBool(depleted).IsTrue(); - AssertFloat(cHealth.CurrentHealth).IsEqual(0.0f); - AssertFloat(record.CurrentHealth).IsEqual(-50.0f); - AssertFloat(record.MaxHealth).IsEqual(50.0f); - } -} diff --git a/tests/components/HealthComponentUnitTest.cs.uid b/tests/components/HealthComponentUnitTest.cs.uid deleted file mode 100644 index 00cee7a1..00000000 --- a/tests/components/HealthComponentUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bd52i51hncgmf diff --git a/tests/components/KnockbackComponentUnitTest.cs b/tests/components/KnockbackComponentUnitTest.cs deleted file mode 100644 index 605d7f75..00000000 --- a/tests/components/KnockbackComponentUnitTest.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Godot; -using GdUnit4; -using static GdUnit4.Assertions; -using Movementtests.interfaces; -using Movementtests.systems.damage; - -namespace Movementtests.tests; - -[TestSuite, RequireGodotRuntime] -public class KnockbackComponentUnitTest -{ - [TestCase] - public void RegisterAndComputeKnockback() - { - var cKnock = new CKnockback(); - cKnock.RKnockback = new RKnockback(2.0f); - cKnock.GlobalPosition = Vector3.Zero; - - var damage = new DamageRecord(new Vector3(10, 0, 0), new RDamage(0, EDamageTypes.Normal)); - var record = new KnockbackRecord(damage, 1.5f); - - cKnock.RegisterKnockback(record); - var force = cKnock.ComputeKnockback(); - - // Direction from source(10,0,0) to target(0,0,0) is (-1,0,0), scaled by modifier(2) and multiplier(1.5) => (-3,0,0) - AssertVector(force).IsEqual(new Vector3(-3, 0, 0)); - - // Second call returns zero since internal state resets - var second = cKnock.ComputeKnockback(); - AssertVector(second).IsEqual(Vector3.Zero); - } -} diff --git a/tests/components/KnockbackComponentUnitTest.cs.uid b/tests/components/KnockbackComponentUnitTest.cs.uid deleted file mode 100644 index c5795539..00000000 --- a/tests/components/KnockbackComponentUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bv0eionbgbig5 diff --git a/tests/components/MovementSystemUnitTest.cs b/tests/components/MovementSystemUnitTest.cs deleted file mode 100644 index 4e075eef..00000000 --- a/tests/components/MovementSystemUnitTest.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Godot; -using GdUnit4; -using static GdUnit4.Assertions; -using Movementtests.interfaces; -using Movementtests.scenes.movement; - -namespace Movementtests.tests; - -[TestSuite, RequireGodotRuntime] -public class MovementSystemUnitTest -{ - [TestCase] - public void GroundedMovementAcceleratesAndAppliesGravity() - { - var move = new CGroundedMovement(); - move.RMovement = new RMovement(speed: 10.0f, acceleration: 1.0f, gravityModifier: 0.5f, targetHeight: 0.0f); - move.WallInFrontRayCast = new RayCast3D(); - //move.GlobalPosition = Vector3.Zero; - - var inputs = new MovementInputs( - Velocity: Vector3.Zero, - TargetLocation: new Vector3(10, 0, 0), - isOnFloor: false, - gravity: Vector3.Down * 9.8f, - delta: 1.0 - ); - - var v = move.ComputeVelocity(inputs); - - AssertVector(v).IsEqualApprox(new Vector3(10, -4.9f, 0), new Vector3(0.001f, 0.001f, 0.001f)); - } -} diff --git a/tests/components/MovementSystemUnitTest.cs.uid b/tests/components/MovementSystemUnitTest.cs.uid deleted file mode 100644 index 83493b96..00000000 --- a/tests/components/MovementSystemUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cofj5s4x74ay diff --git a/tests/enemies/EnemyUnitTest.cs b/tests/enemies/EnemyUnitTest.cs deleted file mode 100644 index cbd73410..00000000 --- a/tests/enemies/EnemyUnitTest.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Godot; -using GdUnit4; -using static GdUnit4.Assertions; -using Movementtests.interfaces; -using Movementtests.systems.damage; - -namespace Movementtests.tests; - -[TestSuite, RequireGodotRuntime] -public class EnemyUnitTest -{ - [TestCase] - public void ComputeDamageNoComponent() - { - var enemy = new Enemy(); - var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal)); - - var result = enemy.ComputeDamage(input); - AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f); - } - - [TestCase] - public void Unstun() - { - var enemy = new Enemy(); - enemy.IsStunned = true; - enemy.Unstun(); - AssertBool(enemy.IsStunned).IsFalse(); - } -} diff --git a/tests/enemies/EnemyUnitTest.cs.uid b/tests/enemies/EnemyUnitTest.cs.uid deleted file mode 100644 index 1c82d5ec..00000000 --- a/tests/enemies/EnemyUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cojxgcs6xqqoq diff --git a/tests/player/DashSystemUnitTest.cs b/tests/player/DashSystemUnitTest.cs deleted file mode 100644 index 30ba91d2..00000000 --- a/tests/player/DashSystemUnitTest.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Godot; -using GdUnit4; -using static GdUnit4.Assertions; -using Movementtests.systems; - -namespace Movementtests.tests; - -[TestSuite, RequireGodotRuntime] -public class DashSystemUnitTest -{ - private DashSystem _dashSystem; - - [BeforeTest] - public void SetupTest() - { - _dashSystem = new DashSystem(); - - _dashSystem.DashCast3D = new ShapeCast3D(); - _dashSystem.AddChild(_dashSystem.DashCast3D); - - _dashSystem._dashCastDrop = new ShapeCast3D(); - _dashSystem.AddChild(_dashSystem._dashCastDrop); - - _dashSystem._dashTarget = new MeshInstance3D(); - _dashSystem.AddChild(_dashSystem._dashTarget); - - _dashSystem._dashDropIndicator = new MeshInstance3D(); - _dashSystem.AddChild(_dashSystem._dashDropIndicator); - - _dashSystem._dashDropLocationIndicator = new MeshInstance3D(); - _dashSystem.AddChild(_dashSystem._dashDropLocationIndicator); - } - - [AfterTest] - public void CleanupTest() - { - _dashSystem?.Free(); - } - - [TestCase] - public void TestStopPreparingDash() - { - _dashSystem.CanDashThroughTarget = true; - _dashSystem._dashTarget.Visible = true; - _dashSystem._dashDropIndicator.Visible = true; - _dashSystem._dashDropLocationIndicator.Visible = true; - - _dashSystem.StopPreparingDash(); - - AssertBool(_dashSystem.CanDashThroughTarget).IsFalse(); - AssertBool(_dashSystem._dashTarget.Visible).IsFalse(); - AssertBool(_dashSystem._dashDropIndicator.Visible).IsFalse(); - AssertBool(_dashSystem._dashDropLocationIndicator.Visible).IsFalse(); - } -} diff --git a/tests/player/DashSystemUnitTest.cs.uid b/tests/player/DashSystemUnitTest.cs.uid deleted file mode 100644 index 545620a4..00000000 --- a/tests/player/DashSystemUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://pv570go4cxws diff --git a/tests/player/HeadSystemUnitTest.cs b/tests/player/HeadSystemUnitTest.cs deleted file mode 100644 index 07d06790..00000000 --- a/tests/player/HeadSystemUnitTest.cs +++ /dev/null @@ -1,91 +0,0 @@ -using Godot; -using GdUnit4; -using static GdUnit4.Assertions; -using Movementtests.systems; - -namespace Movementtests.tests; - -[TestSuite, RequireGodotRuntime] -public class HeadSystemUnitTest -{ - private HeadSystem _head; - - [BeforeTest] - public void SetupTest() - { - _head = new HeadSystem(); - _head._camera = new Camera3D(); - _head.AddChild(_head._camera); - - _head._cameraAnchor = new Marker3D(); - _head.AddChild(_head._cameraAnchor); - - _head._fpRig = new Node3D(); - _head.AddChild(_head._fpRig); - - _head._fpDisplacedRig = new Node3D(); - _head.AddChild(_head._fpDisplacedRig); - } - - [AfterTest] - public void CleanupTest() - { - _head?.Free(); - } - - [TestCase] - public void TestResetHeadBobbing() - { - _head._bobbingAccumulator = 10.0f; - _head.ResetHeadBobbing(); - AssertFloat(_head._bobbingAccumulator).IsEqual(0.0f); - } - - [TestCase] - public void TestComputeHowMuchInputForward() - { - Vector3 forwardInput = new Vector3(0, 0, -1); - AssertFloat(_head.ComputeHowMuchInputForward(forwardInput)).IsEqual(1.0f); - - Vector3 backwardInput = new Vector3(0, 0, 1); - AssertFloat(_head.ComputeHowMuchInputForward(backwardInput)).IsEqual(-1.0f); - } - - [TestCase] - public void TestComputeHowMuchInputSideways() - { - Vector3 rightInput = new Vector3(1, 0, 0); - AssertFloat(_head.ComputeHowMuchInputSideways(rightInput)).IsEqual(1.0f); - - Vector3 leftInput = new Vector3(-1, 0, 0); - AssertFloat(_head.ComputeHowMuchInputSideways(leftInput)).IsEqual(-1.0f); - } - - [TestCase] - public void TestGetForwardHorizontalVector() - { - Vector3 forward = _head.GetForwardHorizontalVector(); - AssertVector(forward).IsEqualApprox(Vector3.Back, new Vector3(0.001f, 0.001f, 0.001f)); - } - - [TestCase] - public void TestLookAroundRotation() - { - var inputs = new HeadSystem.CameraParameters( - Delta: 0.016, - LookDir: new Vector2(1, 0), - PlayerInput: Vector3.Zero, - PlayerVelocity: Vector3.Zero, - WallContactPoint: Vector3.Zero, - SensitivitMultiplier: 1.0f, - WithCameraJitter: false, - WithCameraBobbing: false, - BobbingMultiplier: 1.0f, - FovMultiplier: 1.0f - ); - - float initialY = _head.Rotation.Y; - _head.LookAround(inputs); - AssertFloat(_head.Rotation.Y).IsEqual(initialY + 1.0f); - } -} diff --git a/tests/player/HeadSystemUnitTest.cs.uid b/tests/player/HeadSystemUnitTest.cs.uid deleted file mode 100644 index 110c87c4..00000000 --- a/tests/player/HeadSystemUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bp0xn8k3dmfkg diff --git a/tests/player/PlayerControllerUnitTest.cs b/tests/player/PlayerControllerUnitTest.cs deleted file mode 100644 index 3a82f4a8..00000000 --- a/tests/player/PlayerControllerUnitTest.cs +++ /dev/null @@ -1,149 +0,0 @@ -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(); - _player._targetSpeed = 7.0f; - _player._gravity = 9.8f; - - var rHealth = new RHealth(100.0f); - _player.RHealth = rHealth; - _player.CHealth = new CHealth { RHealth = rHealth, CurrentHealth = 100.0f }; - } - - [AfterTest] - public void CleanupTest() - { - _player?.Free(); - } - - [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); - _player.OnInputMoveKeyboard(Vector3.Forward); - AssertBool(_player.IsPlayerInputtingForward()).IsTrue(); - - _player.OnInputMoveKeyboard(Vector3.Back); - AssertBool(_player.IsPlayerInputtingForward()).IsFalse(); - - // Test Gamepad Input - _player.InputDeviceChanged(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; - - float delta = 0.1f; - Vector3 newVelocity = _player.ComputeHVelocity(delta, _player.AccelerationFloor, _player.DecelerationFloor, Vector3.Forward); - 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; - - float delta = 0.5f; - Vector3 newVelocity = _player.ComputeHVelocity(delta, _player.AccelerationAir, _player.DecelerationAir, Vector3.Zero); - - AssertVector(newVelocity).IsEqual(Vector3.Zero); - } - - [TestCase] - public void TestReduceHealth() - { - 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() - { - var mockUi = new PlayerUi(); - var dashIcons = new TextureRect[3] { new TextureRect(), new TextureRect(), new TextureRect() }; - mockUi._dashIcons = 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() - { - _player._canDash = false; - _player.DashCooldownTimeout(); - AssertBool(_player._canDash).IsTrue(); - } - - [TestCase] - public void TestGetInputLocalHDirection() - { - _player.InputDeviceChanged(false); - _player.OnInputMoveKeyboard(new Vector3(1, 0, 1)); - - 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; - - 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); - - 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 deleted file mode 100644 index 16a906a1..00000000 --- a/tests/player/PlayerControllerUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://kmphtu0ovixi diff --git a/tests/player/WeaponSystemUnitTest.cs b/tests/player/WeaponSystemUnitTest.cs deleted file mode 100644 index cd575190..00000000 --- a/tests/player/WeaponSystemUnitTest.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Godot; -using GdUnit4; -using static GdUnit4.Assertions; -using Movementtests.systems; -using Movementtests.systems.damage; - -namespace Movementtests.tests; - -[TestSuite, RequireGodotRuntime] -public class WeaponSystemUnitTest -{ - private WeaponSystem _weapon; - - [BeforeTest] - public void SetupTest() - { - _weapon = new WeaponSystem(); - _weapon.RDamage = new RDamage(5.0f, EDamageTypes.Normal); - - _weapon.WeaponMesh = new MeshInstance3D(); - _weapon.AddChild(_weapon.WeaponMesh); - _weapon.WeaponLocationIndicator = new MeshInstance3D(); - _weapon.AddChild(_weapon.WeaponLocationIndicator); - } - - [AfterTest] - public void CleanupTest() - { - _weapon?.Free(); - } - - [TestCase] - public void TestWeaponLeftAndBackVisibility() - { - _weapon.Visible = false; - - _weapon.WeaponLeft(); - AssertBool(_weapon.Visible).IsTrue(); - - _weapon.WeaponBack(); - AssertBool(_weapon.Visible).IsFalse(); - } - - [TestCase] - public void TestThrowWeaponOnCurveSetsUnfrozen() - { - _weapon.Freeze = true; - _weapon.ThrowWeaponOnCurve(); - AssertBool(_weapon.Freeze).IsFalse(); - } -} diff --git a/tests/player/WeaponSystemUnitTest.cs.uid b/tests/player/WeaponSystemUnitTest.cs.uid deleted file mode 100644 index 487b0dea..00000000 --- a/tests/player/WeaponSystemUnitTest.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://vkv8aderakcb