123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- using NUnit.Framework;
- using UnityEditor.Graphing;
- using UnityEditor.ShaderGraph;
-
- namespace UnityEditor.ShaderGraph.UnitTests
- {
- class UtilityTests
- {
- [Test]
- public void ConvertToValidHLSLIdentifier()
- {
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(""), "_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(" "), "_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("_"), "_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("9"), "_9");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("q"), "q");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("b#"), "b");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("{t"), "t");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("&Y~"), "Y");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("a_Az_Z0_9_"), "a_Az_Z0_9_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(" a_Az_Z0_9_"), "a_Az_Z0_9_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("a_Az_Z0_9_ "), "a_Az_Z0_9_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(" a_Az_Z0_9_ "), "a_Az_Z0_9_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(" a_Az_Z0_9_"), "a_Az_Z0_9_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("a_Az_Z0_9_ "), "a_Az_Z0_9_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(" a_Az_Z0_9_ "), "a_Az_Z0_9_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("_ _"), "_"); // double underscore sequences are not valid
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(" "), "_");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("*1 "), "_1");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(" *-(1)"), "_1");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("*z-1>"), "z_1");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier("*^#@$w)!(r+-"), "w_r");
- Assert.AreEqual(NodeUtils.ConvertToValidHLSLIdentifier(" 1 var * q-30 ( 0 ) (1) "), "_1_var_q_30_0_1");
- }
-
- [Test]
- public void DeduplicateName()
- {
- string[] existingNames = new string[]
- {
- "a",
- "b",
- "c",
- "qwerty",
- "qwerty_1",
- "qwerty_3",
- "b_1",
- "qwerty_4",
- "b2",
- "b3",
- "_",
- "_1",
- "a (1)",
- "a (2)",
- "a (3)",
- "b (2)",
- "b_1 (1)"
- };
-
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "a"), "a_1");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "b"), "b_2");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "qwert"), "qwert");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "qwerty"), "qwerty_2");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "qwerty_1"), "qwerty_2");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "qwerty_4"), "qwerty_2");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "asdf"), "asdf");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "d_1"), "d_1");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "_1"), "_2");
-
- // this one actually outputs "__1" .. but not going to fix it now
- // Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0}_{1}", "_"), "_2");
-
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0} ({1})", "a"), "a (4)");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0} ({1})", "b"), "b (1)");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0} ({1})", "b (2)"), "b (1)");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0} ({1})", "b_1"), "b_1 (2)");
- Assert.AreEqual(GraphUtil.DeduplicateName(existingNames, "{0} ({1})", "c"), "c (1)");
- }
-
- [Test]
- public void IsHLSLKeyword()
- {
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("min16uint"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("float2"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("uint4x4"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("bool2x2"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("half1x1"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("StructuredBuffer"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("texture"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("while"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("true"));
- Assert.IsTrue(NodeUtils.IsHLSLKeyword("NULL"));
-
- Assert.IsFalse(NodeUtils.IsHLSLKeyword("x"));
- Assert.IsFalse(NodeUtils.IsHLSLKeyword("var"));
- Assert.IsFalse(NodeUtils.IsHLSLKeyword("float5"));
- Assert.IsFalse(NodeUtils.IsHLSLKeyword("tex"));
- Assert.IsFalse(NodeUtils.IsHLSLKeyword("Texture"));
- Assert.IsFalse(NodeUtils.IsHLSLKeyword("_0"));
- Assert.IsFalse(NodeUtils.IsHLSLKeyword(""));
- Assert.IsFalse(NodeUtils.IsHLSLKeyword("103"));
- }
- }
- }
|