ShaderSourceMapTests.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using NUnit.Framework;
  4. using UnityEditor;
  5. using UnityEditor.Graphing;
  6. using UnityEngine;
  7. using UnityEngine.TestTools;
  8. namespace UnityEditor.ShaderGraph.UnitTests
  9. {
  10. class ShaderSourceMapTests
  11. {
  12. class TestNode : AbstractMaterialNode
  13. {
  14. }
  15. [OneTimeSetUp]
  16. public void RunBeforeAnyTests()
  17. {
  18. Debug.unityLogger.logHandler = new ConsoleLogHandler();
  19. m_Shader = "Line 1\nLine 2\nLine 3\nLine 4\nLine 5\nLine 6\n" + // Node 1
  20. "Line 7\nLine 8\nLine 9\nLine 10\nLine 11\nLine 12\n" + // Node 2
  21. "Line 13\nLine 14\n" + // Node 3
  22. "Line 15\nLine 16"; // Node 4
  23. m_Node1 = new TestNode();
  24. m_Node2 = new TestNode();
  25. m_Node3 = new TestNode();
  26. m_Node4 = new TestNode();
  27. testList = new List<ShaderStringMapping>()
  28. {
  29. CreateMapping(0, m_Node1, 41),
  30. CreateMapping(41, m_Node2, 44),
  31. CreateMapping(85, m_Node3, 16),
  32. CreateMapping(101, m_Node4, 15)
  33. };
  34. m_Map = new ShaderSourceMap(m_Shader, testList);
  35. }
  36. static ShaderStringMapping CreateMapping(int start, AbstractMaterialNode node, int count)
  37. {
  38. var map = new ShaderStringMapping();
  39. map.startIndex = start;
  40. map.count = count;
  41. map.node = node;
  42. return map;
  43. }
  44. string m_Shader;
  45. TestNode m_Node1;
  46. TestNode m_Node2;
  47. TestNode m_Node3;
  48. TestNode m_Node4;
  49. List<ShaderStringMapping> testList;
  50. ShaderSourceMap m_Map;
  51. [Test]
  52. public void FindNode_ReturnsNull_ForOutOfBoundsIndex()
  53. {
  54. Assert.IsNull(m_Map.FindNode(-1));
  55. Assert.IsNull(m_Map.FindNode(0));
  56. Assert.IsNull(m_Map.FindNode(17));
  57. }
  58. [Test]
  59. public void FindNode_FindsFirstNode()
  60. {
  61. Assert.AreEqual(m_Node1, m_Map.FindNode(1));
  62. }
  63. [Test]
  64. public void FindNode_FindsMiddleNodes()
  65. {
  66. Assert.AreEqual(m_Node1, m_Map.FindNode(6));
  67. Assert.AreEqual(m_Node2, m_Map.FindNode(7));
  68. Assert.AreEqual(m_Node2, m_Map.FindNode(12));
  69. Assert.AreEqual(m_Node3, m_Map.FindNode(13));
  70. Assert.AreEqual(m_Node3, m_Map.FindNode(14));
  71. Assert.AreEqual(m_Node4, m_Map.FindNode(15));
  72. }
  73. [Test]
  74. public void FindNode_FindsLastNode()
  75. {
  76. Assert.AreEqual(m_Node4, m_Map.FindNode(16));
  77. }
  78. }
  79. }