Boat Attack使用了Universal RP的许多新图形功能,可以用于探索 Universal RP 的使用方式和技巧。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

97 行
2.7 KiB

using System.Collections;
using System.Collections.Generic;
using NUnit.Framework;
using UnityEditor;
using UnityEditor.Graphing;
using UnityEngine;
using UnityEngine.TestTools;
namespace UnityEditor.ShaderGraph.UnitTests
{
class ShaderSourceMapTests
{
class TestNode : AbstractMaterialNode
{
}
[OneTimeSetUp]
public void RunBeforeAnyTests()
{
Debug.unityLogger.logHandler = new ConsoleLogHandler();
m_Shader = "Line 1\nLine 2\nLine 3\nLine 4\nLine 5\nLine 6\n" + // Node 1
"Line 7\nLine 8\nLine 9\nLine 10\nLine 11\nLine 12\n" + // Node 2
"Line 13\nLine 14\n" + // Node 3
"Line 15\nLine 16"; // Node 4
m_Node1 = new TestNode();
m_Node2 = new TestNode();
m_Node3 = new TestNode();
m_Node4 = new TestNode();
testList = new List<ShaderStringMapping>()
{
CreateMapping(0, m_Node1, 41),
CreateMapping(41, m_Node2, 44),
CreateMapping(85, m_Node3, 16),
CreateMapping(101, m_Node4, 15)
};
m_Map = new ShaderSourceMap(m_Shader, testList);
}
static ShaderStringMapping CreateMapping(int start, AbstractMaterialNode node, int count)
{
var map = new ShaderStringMapping();
map.startIndex = start;
map.count = count;
map.node = node;
return map;
}
string m_Shader;
TestNode m_Node1;
TestNode m_Node2;
TestNode m_Node3;
TestNode m_Node4;
List<ShaderStringMapping> testList;
ShaderSourceMap m_Map;
[Test]
public void FindNode_ReturnsNull_ForOutOfBoundsIndex()
{
Assert.IsNull(m_Map.FindNode(-1));
Assert.IsNull(m_Map.FindNode(0));
Assert.IsNull(m_Map.FindNode(17));
}
[Test]
public void FindNode_FindsFirstNode()
{
Assert.AreEqual(m_Node1, m_Map.FindNode(1));
}
[Test]
public void FindNode_FindsMiddleNodes()
{
Assert.AreEqual(m_Node1, m_Map.FindNode(6));
Assert.AreEqual(m_Node2, m_Map.FindNode(7));
Assert.AreEqual(m_Node2, m_Map.FindNode(12));
Assert.AreEqual(m_Node3, m_Map.FindNode(13));
Assert.AreEqual(m_Node3, m_Map.FindNode(14));
Assert.AreEqual(m_Node4, m_Map.FindNode(15));
}
[Test]
public void FindNode_FindsLastNode()
{
Assert.AreEqual(m_Node4, m_Map.FindNode(16));
}
}
}