/* ┌──────────────────────────────────────────────────────────────────┐ │ Author: Ivan Murzak (https://github.com/IvanMurzak) │ │ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │ │ Copyright (c) 2025 Ivan Murzak │ │ Licensed under the Apache License, Version 2.0. │ │ See the LICENSE file in the project root for more information. │ └──────────────────────────────────────────────────────────────────┘ */ #nullable enable using System.Collections; using NUnit.Framework; using UnityEngine; using UnityEngine.TestTools; namespace com.IvanMurzak.Unity.MCP.Editor.Tests.JsonConverter { using com.IvanMurzak.Unity.MCP.Editor.Tests; public class QuaternionConverterTests : BaseTest { #region Quaternion [UnityTest] public IEnumerator Quaternion_Identity() { TestUtils.ValidateType(Quaternion.identity); yield return null; } [UnityTest] public IEnumerator Quaternion_Euler() { TestUtils.ValidateType(Quaternion.Euler(45, 90, 180)); yield return null; } [UnityTest] public IEnumerator Quaternion_AngleAxis() { TestUtils.ValidateType(Quaternion.AngleAxis(30, Vector3.up)); yield return null; } [UnityTest] public IEnumerator Quaternion_CustomValues() { // Note: Quaternions are usually normalized, but the struct can hold arbitrary values TestUtils.ValidateType(new Quaternion(0.1f, 0.2f, 0.3f, 0.4f)); yield return null; } [UnityTest] public IEnumerator Quaternion_NegativeValues() { TestUtils.ValidateType(new Quaternion(-0.5f, -0.6f, -0.7f, -0.8f)); yield return null; } [UnityTest] public IEnumerator Quaternion_PositiveInfinity() { TestUtils.ValidateType(new Quaternion(float.PositiveInfinity, float.PositiveInfinity, float.PositiveInfinity, float.PositiveInfinity)); yield return null; } [UnityTest] public IEnumerator Quaternion_NegativeInfinity() { TestUtils.ValidateType(new Quaternion(float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity, float.NegativeInfinity)); yield return null; } [UnityTest] public IEnumerator Quaternion_NaN() { TestUtils.ValidateType(new Quaternion(float.NaN, float.NaN, float.NaN, float.NaN)); yield return null; } [UnityTest] public IEnumerator Quaternion_MixedValues() { TestUtils.ValidateType(new Quaternion(float.PositiveInfinity, float.NaN, 0, 1)); yield return null; } #endregion } }