69 lines
2.7 KiB
C#
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();
|
||
|
}
|
||
|
}
|
||
|
}
|