123 lines
3.0 KiB
C#
123 lines
3.0 KiB
C#
using System;
|
|
using NUnit.Framework;
|
|
using HLSLParser;
|
|
|
|
namespace HLSLParserTests
|
|
{
|
|
public static class SamplerTests
|
|
{
|
|
#region Constants
|
|
private const string TestSampler =
|
|
@"SamplerState MeshTextureSampler
|
|
{
|
|
Filter = MIN_MAG_MIP_LINEAR;
|
|
AddressU = Wrap;
|
|
AddressV = Wrap;
|
|
};";
|
|
|
|
private const string TestSamplerDx9 =
|
|
@"sampler MeshTextureSampler =
|
|
sampler_state
|
|
{
|
|
Texture = <g_MeshTexture>;
|
|
MipFilter = LINEAR;
|
|
MinFilter = LINEAR;
|
|
MagFilter = LINEAR;
|
|
};";
|
|
#endregion
|
|
|
|
#region ParseIfPass
|
|
[Test]
|
|
public static void ParseIfPass()
|
|
{
|
|
var text = new ParseTextWalker(TestSampler);
|
|
var result = Sampler.ParseIfSampler(text);
|
|
|
|
Assert.NotNull(result);
|
|
Assert.AreEqual("MeshTextureSampler", result.Name);
|
|
Assert.AreEqual("SamplerState", result.Type);
|
|
|
|
Assert.AreEqual("Filter", result.States[0].Key);
|
|
Assert.AreEqual("MIN_MAG_MIP_LINEAR", result.States[0].Value);
|
|
Assert.AreEqual("AddressU", result.States[1].Key);
|
|
Assert.AreEqual("Wrap", result.States[1].Value);
|
|
Assert.AreEqual("AddressV", result.States[2].Key);
|
|
Assert.AreEqual("Wrap", result.States[2].Value);
|
|
}
|
|
#endregion
|
|
|
|
#region ParseIfPassDx9
|
|
[Test]
|
|
public static void ParseIfPassDx9()
|
|
{
|
|
var text = new ParseTextWalker(TestSamplerDx9);
|
|
var result = Sampler.ParseIfSampler(text);
|
|
|
|
Assert.NotNull(result);
|
|
Assert.AreEqual("MeshTextureSampler", result.Name);
|
|
Assert.AreEqual("sampler", result.Type);
|
|
|
|
Assert.AreEqual("Texture", result.States[0].Key);
|
|
Assert.AreEqual("<g_MeshTexture>", result.States[0].Value);
|
|
}
|
|
#endregion
|
|
|
|
#region ParseIfPassHasRegister
|
|
[Test]
|
|
public static void ParseIfPassHasRegister()
|
|
{
|
|
var text = new ParseTextWalker("sampler TextureSampler : register(s0);");
|
|
var result = Sampler.ParseIfSampler(text);
|
|
|
|
Assert.NotNull(result);
|
|
Assert.AreEqual("TextureSampler", result.Name);
|
|
Assert.AreEqual("sampler", result.Type);
|
|
Assert.AreEqual("register(s0)", result.Register);
|
|
}
|
|
#endregion
|
|
|
|
#region TestParseIfTypeDefWithoutCode
|
|
[Test]
|
|
public static void TestParseIfTypeDefWithoutCode()
|
|
{
|
|
var text = new ParseTextWalker("testtest");
|
|
var result = Sampler.ParseIfSampler(text);
|
|
|
|
Assert.Null(result);
|
|
}
|
|
#endregion
|
|
|
|
#region TestToString
|
|
[Test]
|
|
public static void TestToString()
|
|
{
|
|
var text = new ParseTextWalker(TestSampler);
|
|
var result = Sampler.ParseIfSampler(text);
|
|
|
|
string expected =
|
|
@"SamplerState MeshTextureSampler
|
|
{
|
|
Filter = MIN_MAG_MIP_LINEAR;
|
|
AddressU = Wrap;
|
|
AddressV = Wrap;
|
|
};";
|
|
|
|
Assert.AreEqual(expected.Replace("\r", ""), result.ToString());
|
|
}
|
|
#endregion
|
|
|
|
#region TestToStringWithRegister
|
|
[Test]
|
|
public static void TestToStringWithRegister()
|
|
{
|
|
var text = new ParseTextWalker("sampler TextureSampler : register(s0);");
|
|
var result = Sampler.ParseIfSampler(text);
|
|
|
|
string expected = "sampler TextureSampler : register(s0);";
|
|
|
|
Assert.AreEqual(expected, result.ToString());
|
|
}
|
|
#endregion
|
|
}
|
|
}
|