- Started refactoring some code in the hlsl parser - Brought the test coverage of the hlsl parser back to 100%
137 lines
3.7 KiB
C#
137 lines
3.7 KiB
C#
using System;
|
|
using NUnit.Framework;
|
|
using HLSLParser;
|
|
|
|
// This file is part of the ANX.Framework created by the
|
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
|
// For details see: http://anxframework.codeplex.com/license
|
|
|
|
namespace HLSLParserTests
|
|
{
|
|
public static class CommentRemoverTests
|
|
{
|
|
#region TestEmptySource
|
|
[Test]
|
|
public static void TestEmptySource()
|
|
{
|
|
Assert.AreEqual(CommentRemover.Remove(null), null);
|
|
Assert.AreEqual(CommentRemover.Remove(""), "");
|
|
}
|
|
#endregion
|
|
|
|
#region TestMultilineComment
|
|
[Test]
|
|
public static void TestMultilineComment()
|
|
{
|
|
string source = "/* comment line */";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "");
|
|
source = "/* comment line\nline two*/";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "");
|
|
}
|
|
#endregion
|
|
|
|
#region TestCascadedMultilineComments
|
|
[Test]
|
|
public static void TestCascadedMultilineComments()
|
|
{
|
|
string source = "/* /*comment line */";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "");
|
|
source = "/* comment /* //line\nline two*/";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "");
|
|
}
|
|
#endregion
|
|
|
|
#region TestMultilineCommentWithCodeInFront
|
|
[Test]
|
|
public static void TestMultilineCommentWithCodeInFront()
|
|
{
|
|
string source = "aaa/*comment*/";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "aaa");
|
|
}
|
|
#endregion
|
|
|
|
#region TestCommentedOutMultilineComment
|
|
[Test]
|
|
public static void TestCommentedOutMultilineComment()
|
|
{
|
|
string source = "//*comment\n*/";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "*/");
|
|
}
|
|
#endregion
|
|
|
|
#region TestMultipleMultilineComments
|
|
[Test]
|
|
public static void TestMultipleMultilineComments()
|
|
{
|
|
string source = "/*blub*/aaa/*comment*/";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "aaa");
|
|
}
|
|
#endregion
|
|
|
|
#region TestMultilineCommentWithCodeAfter
|
|
[Test]
|
|
public static void TestMultilineCommentWithCodeAfter()
|
|
{
|
|
string source = "/*comment*/bbb";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "bbb");
|
|
}
|
|
#endregion
|
|
|
|
#region TestSingleLineComment
|
|
[Test]
|
|
public static void TestSingleLineComment()
|
|
{
|
|
string source = "// comment line";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "");
|
|
source = "// comment line\n//test";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "");
|
|
}
|
|
#endregion
|
|
|
|
#region TestSingleLineCommentWithCode
|
|
[Test]
|
|
public static void TestSingleLineCommentWithCode()
|
|
{
|
|
string source =
|
|
@"// comment line
|
|
float4x4 matrix;";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "float4x4 matrix;");
|
|
}
|
|
#endregion
|
|
|
|
#region TestSingleLineCommentWithCodeInFront
|
|
[Test]
|
|
public static void TestSingleLineCommentWithCodeInFront()
|
|
{
|
|
string source = "float value;// comment line";
|
|
Assert.AreEqual(CommentRemover.Remove(source), "float value;");
|
|
}
|
|
#endregion
|
|
|
|
#region TestSplitLines
|
|
[Test]
|
|
public static void TestSplitLines()
|
|
{
|
|
string source = "aa\nbbb";
|
|
Assert.AreEqual(CommentRemover.SplitLines(source), new string[] { "aa", "bbb" });
|
|
source = @"aa
|
|
bbb";
|
|
Assert.AreEqual(CommentRemover.SplitLines(source), new string[] { "aa", "bbb" });
|
|
source = "aa\n\rbbb";
|
|
Assert.AreEqual(CommentRemover.SplitLines(source), new string[] { "aa", "bbb" });
|
|
}
|
|
#endregion
|
|
|
|
#region TestMergeLines
|
|
[Test]
|
|
public static void TestMergeLines()
|
|
{
|
|
string[] lines = new string[] { "aa", "bbb" };
|
|
Assert.AreEqual(CommentRemover.MergeLines(lines), "aa\nbbb");
|
|
lines = new string[] { "aa", "", null, "bbb" };
|
|
Assert.AreEqual(CommentRemover.MergeLines(lines), "aa\nbbb");
|
|
}
|
|
#endregion
|
|
}
|
|
}
|