/*
┌──────────────────────────────────────────────────────────────────┐
│ 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 MatrixConverterTests : BaseTest
{
#region Matrix4x4
[UnityTest]
public IEnumerator Matrix4x4_Identity()
{
TestUtils.ValidateType(Matrix4x4.identity);
yield return null;
}
[UnityTest]
public IEnumerator Matrix4x4_Zero()
{
TestUtils.ValidateType(Matrix4x4.zero);
yield return null;
}
[UnityTest]
public IEnumerator Matrix4x4_TRS()
{
var trs = Matrix4x4.TRS(
new Vector3(1, 2, 3),
Quaternion.Euler(45, 90, 180),
new Vector3(1.5f, 2.5f, 0.5f)
);
TestUtils.ValidateType(trs);
yield return null;
}
[UnityTest]
public IEnumerator Matrix4x4_CustomValues()
{
var m = new Matrix4x4();
for (int i = 0; i < 16; i++)
{
m[i] = i * 1.5f;
}
TestUtils.ValidateType(m);
yield return null;
}
[UnityTest]
public IEnumerator Matrix4x4_NegativeValues()
{
var m = new Matrix4x4();
for (int i = 0; i < 16; i++)
{
m[i] = -i * 0.5f;
}
TestUtils.ValidateType(m);
yield return null;
}
[UnityTest]
public IEnumerator Matrix4x4_PositiveInfinity()
{
var m = new Matrix4x4();
for (int i = 0; i < 16; i++)
{
m[i] = float.PositiveInfinity;
}
TestUtils.ValidateType(m);
yield return null;
}
[UnityTest]
public IEnumerator Matrix4x4_NegativeInfinity()
{
var m = new Matrix4x4();
for (int i = 0; i < 16; i++)
{
m[i] = float.NegativeInfinity;
}
TestUtils.ValidateType(m);
yield return null;
}
[UnityTest]
public IEnumerator Matrix4x4_NaN()
{
var m = new Matrix4x4();
for (int i = 0; i < 16; i++)
{
m[i] = float.NaN;
}
TestUtils.ValidateType(m);
yield return null;
}
[UnityTest]
public IEnumerator Matrix4x4_MixedValues()
{
var m = Matrix4x4.identity;
m.m00 = float.PositiveInfinity;
m.m11 = float.NegativeInfinity;
m.m22 = float.NaN;
TestUtils.ValidateType(m);
yield return null;
}
#endregion
}
}