Rasagar/Library/PackageCache/com.unity.terrain-tools/Tests/Editor/ToolboxHelperTests.cs
2024-08-26 23:07:20 +03:00

69 lines
2.7 KiB
C#

using System.IO;
using NUnit.Framework;
using UnityEngine;
namespace UnityEditor.TerrainTools
{
[TestFixture]
public class ToolboxHelperTests
{
[Test]
public void FlipTexture()
{
var texture = new Texture2D(2,2);
texture.SetPixels(new []{Color.white, Color.black, Color.black, Color.black});
texture.Apply();
ToolboxHelper.FlipTexture(texture, true);
var horizontalFlip = texture.GetPixels();
Assert.That(horizontalFlip[1], Is.EqualTo(Color.white));
ToolboxHelper.FlipTexture(texture, false);
var verticalFlip = texture.GetPixels();
Assert.That(verticalFlip[3], Is.EqualTo(Color.white));
}
[Test]
public void GetValidSaveDirectory()
{
// when requesting outside application data path, return a path relative to assets
Assert.That(ToolboxHelper.GetProjectRelativeSaveDirectory(Application.dataPath + "/.."), Is.EqualTo("Assets"));
Assert.That(ToolboxHelper.GetProjectRelativeSaveDirectory("Assets"), Is.EqualTo("Assets"));
Assert.That(ToolboxHelper.GetProjectRelativeSaveDirectory("Assets/Test/"), Is.EqualTo("Assets/Test/"));
Assert.That(ToolboxHelper.IsDirectoryWithinAssets("Assets/Test/"), Is.True);
Assert.That(ToolboxHelper.IsDirectoryWithinAssets("Assets/../.."), Is.False);
Assert.That(ToolboxHelper.IsDirectoryWithinAssets("Assetsasdf"), Is.False);
// prefixed slashes to raise an exception within this function
Assert.That(ToolboxHelper.IsDirectoryWithinAssets("/Assets"), Is.False);
}
[Test]
public void IsPowerOfTwo()
{
// confirm for the first 100 powers of two
for (int i = 0; i < 100; i++)
{
Assert.That(ToolboxHelper.IsPowerOfTwo((int)Mathf.Pow(2, i)), Is.True);
}
}
[Test]
public void HeightmapResolutionsArePowerOfTwoPlusOne()
{
// this currently doesn't fail, but its possible that there are times
foreach (var heightmapResolution in ToolboxHelper.GUIHeightmapResolutions)
{
Assert.That(ToolboxHelper.IsPowerOfTwo(heightmapResolution-1), Is.True);
}
}
[Test]
[TestCase(2)]
[TestCase(-1)]
public void GetTextureCopy_HandlesMips(int mipCount)
{
Texture2D texture = new Texture2D(512, 512, TextureFormat.RGBA32, mipCount, false);
ToolboxHelper.GetTextureCopy(texture);
UnityEngine.TestTools.LogAssert.NoUnexpectedReceived();
}
}
}