FixedSlotTests.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. using NUnit.Framework;
  2. using UnityEngine;
  3. using UnityEditor.Graphing;
  4. namespace UnityEditor.ShaderGraph.UnitTests
  5. {
  6. [TestFixture]
  7. class FixedSlotTests
  8. {
  9. private GraphData m_Graph;
  10. private TestNode m_NodeA;
  11. private TestNode m_NodeB;
  12. class TestNode : AbstractMaterialNode
  13. {
  14. public const int V1Out = 0;
  15. public const int V2Out = 1;
  16. public const int V3Out = 2;
  17. public const int V4Out = 3;
  18. public const int V1In = 4;
  19. public const int V2In = 5;
  20. public const int V3In = 6;
  21. public const int V4In = 7;
  22. public TestNode()
  23. {
  24. AddSlot(new Vector1MaterialSlot(V1Out, "V1Out", "V1Out", SlotType.Output, 0));
  25. AddSlot(new Vector2MaterialSlot(V2Out, "V2Out", "V2Out", SlotType.Output, Vector4.zero));
  26. AddSlot(new Vector3MaterialSlot(V3Out, "V3Out", "V3Out", SlotType.Output, Vector4.zero));
  27. AddSlot(new Vector4MaterialSlot(V4Out, "V4Out", "V4Out", SlotType.Output, Vector4.zero));
  28. AddSlot(new Vector1MaterialSlot(V1In, "V1In", "V1In", SlotType.Input, 0));
  29. AddSlot(new Vector2MaterialSlot(V2In, "V2In", "V2In", SlotType.Input, Vector4.zero));
  30. AddSlot(new Vector3MaterialSlot(V3In, "V3In", "V3In", SlotType.Input, Vector4.zero));
  31. AddSlot(new Vector4MaterialSlot(V4In, "V4In", "V4In", SlotType.Input, Vector4.zero));
  32. }
  33. }
  34. [OneTimeSetUp]
  35. public void RunBeforeAnyTests()
  36. {
  37. Debug.unityLogger.logHandler = new ConsoleLogHandler();
  38. }
  39. [SetUp]
  40. public void TestSetUp()
  41. {
  42. m_Graph = new GraphData();
  43. m_NodeA = new TestNode();
  44. m_NodeB = new TestNode();
  45. m_Graph.AddNode(m_NodeA);
  46. m_Graph.AddNode(m_NodeB);
  47. }
  48. [Test]
  49. public void ConnectV1ToV1Works()
  50. {
  51. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V1Out), m_NodeB.GetSlotReference(TestNode.V1In));
  52. Assert.IsFalse(m_NodeB.hasError);
  53. }
  54. [Test]
  55. public void ConnectV1ToV2Works()
  56. {
  57. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V1Out), m_NodeB.GetSlotReference(TestNode.V2In));
  58. Assert.IsFalse(m_NodeB.hasError);
  59. }
  60. [Test]
  61. public void ConnectV1ToV3Works()
  62. {
  63. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V1Out), m_NodeB.GetSlotReference(TestNode.V3In));
  64. Assert.IsFalse(m_NodeB.hasError);
  65. }
  66. [Test]
  67. public void ConnectV1ToV4Works()
  68. {
  69. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V1Out), m_NodeB.GetSlotReference(TestNode.V4In));
  70. Assert.IsFalse(m_NodeB.hasError);
  71. }
  72. [Test]
  73. public void ConnectV2ToV1Works()
  74. {
  75. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V2Out), m_NodeB.GetSlotReference(TestNode.V1In));
  76. Assert.IsFalse(m_NodeB.hasError);
  77. }
  78. [Test]
  79. public void ConnectV2ToV2Works()
  80. {
  81. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V2Out), m_NodeB.GetSlotReference(TestNode.V2In));
  82. Assert.IsFalse(m_NodeB.hasError);
  83. }
  84. [Test]
  85. public void ConnectV2ToV3Works()
  86. {
  87. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V2Out), m_NodeB.GetSlotReference(TestNode.V3In));
  88. Assert.IsFalse(m_NodeB.hasError);
  89. }
  90. [Test]
  91. public void ConnectV2ToV4Works()
  92. {
  93. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V2Out), m_NodeB.GetSlotReference(TestNode.V4In));
  94. Assert.IsFalse(m_NodeB.hasError);
  95. }
  96. [Test]
  97. public void ConnectV3ToV1Works()
  98. {
  99. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V3Out), m_NodeB.GetSlotReference(TestNode.V1In));
  100. Assert.IsFalse(m_NodeB.hasError);
  101. }
  102. [Test]
  103. public void ConnectV3ToV2Works()
  104. {
  105. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V3Out), m_NodeB.GetSlotReference(TestNode.V2In));
  106. Assert.IsFalse(m_NodeB.hasError);
  107. }
  108. [Test]
  109. public void ConnectV3ToV3Works()
  110. {
  111. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V3Out), m_NodeB.GetSlotReference(TestNode.V3In));
  112. Assert.IsFalse(m_NodeB.hasError);
  113. }
  114. [Test]
  115. public void ConnectV3ToV4Works()
  116. {
  117. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V3Out), m_NodeB.GetSlotReference(TestNode.V4In));
  118. Assert.IsFalse(m_NodeB.hasError);
  119. }
  120. [Test]
  121. public void ConnectV4ToV1Works()
  122. {
  123. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V4Out), m_NodeB.GetSlotReference(TestNode.V1In));
  124. Assert.IsFalse(m_NodeB.hasError);
  125. }
  126. [Test]
  127. public void ConnectV4ToV2Works()
  128. {
  129. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V4Out), m_NodeB.GetSlotReference(TestNode.V2In));
  130. Assert.IsFalse(m_NodeB.hasError);
  131. }
  132. [Test]
  133. public void ConnectV4ToV3Works()
  134. {
  135. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V4Out), m_NodeB.GetSlotReference(TestNode.V3In));
  136. Assert.IsFalse(m_NodeB.hasError);
  137. }
  138. [Test]
  139. public void ConnectV4ToV4Works()
  140. {
  141. m_Graph.Connect(m_NodeA.GetSlotReference(TestNode.V4Out), m_NodeB.GetSlotReference(TestNode.V4In));
  142. Assert.IsFalse(m_NodeB.hasError);
  143. }
  144. }
  145. }