add AssertHelper.CompareFloats(float xna, float anx, String test)

add AssertHelper.CompareString(String xna, String anx, String test)
add GamePadTriggersTest
Fix Gamepadtriggers Properties
This commit is contained in:
SND\rene87_cp 2011-11-16 23:30:37 +00:00
parent 1dafda1067
commit a0b0f8f869
6 changed files with 209 additions and 55 deletions

View File

@ -146,7 +146,33 @@ namespace ANX.Framework.TestCenter
{
return (float)Math.Abs((double)(a - b)) < epsilon;
}
public static void CompareFloats(float xna, float anx, String test)
{
if (AssertHelper.CompareFloats(xna, anx, 0.000001f))
{
Assert.Pass(test + " passed");
}
else
{
if (xna.ToString() == anx.ToString())
{
Assert.Pass(test + " passed");
}
Assert.Fail(String.Format("{0} failed: xna: ({1}) anx: ({2})", test, xna.ToString(), anx.ToString()));
}
}
public static void CompareString(String xna, String anx, String test)
{
if (xna == anx)
{
Assert.Pass(test + " passed");
}
else
{
Assert.Fail(String.Format("{0} failed: xna: ({1}) anx: ({2})", test, xna, anx));
}
}
public static void ConvertEquals(bool xna, bool anx, String test)
{
if (xna == anx)
@ -155,7 +181,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: xna: ({1}) anx: ({2})", test, xna.ToString(), anx.ToString()));
Assert.Fail(String.Format("{0} failed: xna: ({1}) anx: ({2})", test, xna.ToString(), anx.ToString()));
}
}
@ -167,7 +193,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Bgr565 XNA: ({1}) Bgr565 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Bgr565 XNA: ({1}) Bgr565 ANX: ({2})", test, lhs, rhs));
}
}
@ -179,7 +205,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Bgra5551 XNA: ({1}) Bgra5551 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Bgra5551 XNA: ({1}) Bgra5551 ANX: ({2})", test, lhs, rhs));
}
}
@ -191,7 +217,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Bgra4444 XNA: ({1}) Bgra4444 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Bgra4444 XNA: ({1}) Bgra4444 ANX: ({2})", test, lhs, rhs));
}
}
@ -203,7 +229,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Byte4 XNA: ({1}) Byte4 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Byte4 XNA: ({1}) Byte4 ANX: ({2})", test, lhs, rhs));
}
}
@ -215,7 +241,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: HalfSingle XNA: ({1}) HalfSingle ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: HalfSingle XNA: ({1}) HalfSingle ANX: ({2})", test, lhs, rhs));
}
}
@ -227,7 +253,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: HalfVector2 XNA: ({1}) HalfVector2 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: HalfVector2 XNA: ({1}) HalfVector2 ANX: ({2})", test, lhs, rhs));
}
}
@ -239,7 +265,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: HalfVector4 XNA: ({1}) HalfVector4 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: HalfVector4 XNA: ({1}) HalfVector4 ANX: ({2})", test, lhs, rhs));
}
}
@ -251,7 +277,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Rg32 XNA: ({1}) Rg32 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Rg32 XNA: ({1}) Rg32 ANX: ({2})", test, lhs, rhs));
}
}
@ -263,7 +289,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Rgba1010102 XNA: ({1}) Rgba1010102 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Rgba1010102 XNA: ({1}) Rgba1010102 ANX: ({2})", test, lhs, rhs));
}
}
@ -275,7 +301,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Rgba64 XNA: ({1}) Rgba64 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Rgba64 XNA: ({1}) Rgba64 ANX: ({2})", test, lhs, rhs));
}
}
@ -287,7 +313,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: NormalizedByte2 XNA: ({1}) NormalizedByte2 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: NormalizedByte2 XNA: ({1}) NormalizedByte2 ANX: ({2})", test, lhs, rhs));
}
}
@ -299,7 +325,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: NormalizedByte4 XNA: ({1}) NormalizedByte4 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: NormalizedByte4 XNA: ({1}) NormalizedByte4 ANX: ({2})", test, lhs, rhs));
}
}
@ -311,7 +337,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: NormalizedShort2 XNA: ({1}) NormalizedShort2 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: NormalizedShort2 XNA: ({1}) NormalizedShort2 ANX: ({2})", test, lhs, rhs));
}
}
@ -323,7 +349,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: NormalizedShort4 XNA: ({1}) NormalizedShort4 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: NormalizedShort4 XNA: ({1}) NormalizedShort4 ANX: ({2})", test, lhs, rhs));
}
}
@ -335,7 +361,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Short2 XNA: ({1}) Short2 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Short2 XNA: ({1}) Short2 ANX: ({2})", test, lhs, rhs));
}
}
@ -347,7 +373,7 @@ namespace ANX.Framework.TestCenter
}
else
{
Assert.Fail(String.Format("{0] failed: Short4 XNA: ({1}) Short4 ANX: ({2})", test, lhs, rhs));
Assert.Fail(String.Format("{0} failed: Short4 XNA: ({1}) Short4 ANX: ({2})", test, lhs, rhs));
}
}

View File

@ -2,7 +2,7 @@
using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework;
#endregion // Using Statements
using ANXGamePadDPad = ANX.Framework.Input.GamePadDPad;
@ -11,7 +11,7 @@ using ANXButtonState = ANX.Framework.Input.ButtonState;
using XNAGamePadDPad = Microsoft.Xna.Framework.Input.GamePadDPad;
using XNAButtons = Microsoft.Xna.Framework.Input.Buttons;
using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState;
using NUnit.Framework;
#region License
@ -142,14 +142,9 @@ namespace ANX.Framework.TestCenter.Input
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
if (xna.ToString() == anx.ToString())
{
Assert.Pass("Pass ToString");
}
else
{
Assert.Fail("Fail ToString\n" + xna.ToString() + "\n" + anx.ToString());
}
AssertHelper.CompareString(xna.ToString(), anx.ToString(), "ToString");
}
[TestCaseSource("Stats16")]
public void Equal(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)

View File

@ -0,0 +1,126 @@
#region Using Statements
using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework;
#endregion // Using Statements
using ANXGamePadTriggers = ANX.Framework.Input.GamePadTriggers;
using XNAGamePadTriggers = Microsoft.Xna.Framework.Input.GamePadTriggers;
#region License
//
// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
//
// This file is released under the Ms-PL license.
//
//
//
// Microsoft Public License (Ms-PL)
//
// This license governs use of the accompanying software. If you use the software, you accept this license.
// If you do not accept the license, do not use the software.
//
// 1.Definitions
// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
// here as under U.S. copyright law.
// A "contribution" is the original software, or any additions or changes to the software.
// A "contributor" is any person that distributes its contribution under this license.
// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
//
// 2.Grant of Rights
// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
// or any derivative works that you create.
// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
// in the software or derivative works of the contribution in the software.
//
// 3.Conditions and Limitations
// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
// patent license from such contributor to the software ends automatically.
// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
// notices that are present in the software.
// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
// object code form, you may only do so under a license that complies with this license.
// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
// particular purpose and non-infringement.
#endregion // License
namespace ANX.Framework.TestCenter.Input
{
[TestFixture]
class GamePadTriggersTest
{
static object[] twofloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat }
};
[TestCaseSource("twofloats")]
public void Left(float leftTrigger, float rightTrigger)
{
ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.CompareFloats(xna.Left, anx.Left, "Left");
}
[TestCaseSource("twofloats")]
public void Right(float leftTrigger, float rightTrigger)
{
ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.CompareFloats(xna.Right, anx.Right, "Right");
}
[TestCaseSource("twofloats")]
public void ToString(float leftTrigger, float rightTrigger)
{
ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.CompareString(xna.ToString(), anx.ToString(), "ToString");
}
[TestCaseSource("twofloats")]
public void Equals(float leftTrigger, float rightTrigger)
{
ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
ANXGamePadTriggers anx2 = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna2 = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "Equals");
}
[TestCaseSource("twofloats")]
public void Equals2(float leftTrigger, float rightTrigger)
{
ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
ANXGamePadTriggers anx2 = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna2 = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2), "Equals2");
}
[TestCaseSource("twofloats")]
public void NotEquals(float leftTrigger, float rightTrigger)
{
ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
while (leftTrigger==rightTrigger)
{
leftTrigger = DataFactory.RandomFloat;
}
ANXGamePadTriggers anx2 = new ANXGamePadTriggers(rightTrigger,leftTrigger);
XNAGamePadTriggers xna2 = new XNAGamePadTriggers(rightTrigger,leftTrigger);
AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "NotEquals");
}
}
}

View File

@ -134,7 +134,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Barycentric(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.Barycentric(value1, tangent1, value2, tangent2, amount);
TestFloat(xna, anx, "Barycentric");
AssertHelper.CompareFloats(xna, anx, "Barycentric");
}
[TestCaseSource("fivefloats")]
@ -142,7 +142,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.CatmullRom(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.CatmullRom(value1, tangent1, value2, tangent2, amount);
TestFloat(xna, anx, "CatmullRom");
AssertHelper.CompareFloats(xna, anx, "CatmullRom");
}
[Test, TestCaseSource("threefloats")]
@ -150,7 +150,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Clamp(value1, value2, amount);
float anx = ANXMath.Clamp(value1, value2, amount);
TestFloat(xna, anx, "Clamp");
AssertHelper.CompareFloats(xna, anx, "Clamp");
}
[Test, TestCaseSource("threefloats")]
@ -158,7 +158,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.SmoothStep(value1, value2, amount);
float anx = ANXMath.SmoothStep(value1, value2, amount);
TestFloat(xna, anx, "SmoothStep");
AssertHelper.CompareFloats(xna, anx, "SmoothStep");
}
[Test, TestCaseSource("threefloats")]
@ -166,7 +166,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Lerp(value1, value2, amount);
float anx = ANXMath.Lerp(value1, value2, amount);
TestFloat(xna, anx, "Lerp");
AssertHelper.CompareFloats(xna, anx, "Lerp");
}
[TestCaseSource("twofloats")]
@ -174,7 +174,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Distance(min, max);
float anx = ANXMath.Distance(min, max);
TestFloat(xna, anx, "Distance");
AssertHelper.CompareFloats(xna, anx, "Distance");
}
[TestCaseSource("twofloats")]
@ -182,7 +182,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Max(min, max);
float anx = ANXMath.Max(min, max);
TestFloat(xna, anx, "Max");
AssertHelper.CompareFloats(xna, anx, "Max");
}
[TestCaseSource("twofloats")]
@ -190,7 +190,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Min(min, max);
float anx = ANXMath.Min(min, max);
TestFloat(xna, anx, "Min");
AssertHelper.CompareFloats(xna, anx, "Min");
}
[TestCaseSource("onefloat")]
@ -198,7 +198,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.ToDegrees(one);
float anx = ANXMath.ToDegrees(one);
TestFloat(xna, anx, "ToRadians");
AssertHelper.CompareFloats(xna, anx, "ToRadians");
}
@ -207,7 +207,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.ToRadians(one);
float anx = ANXMath.ToRadians(one);
TestFloat(xna, anx, "ToRadians");
AssertHelper.CompareFloats(xna, anx, "ToRadians");
}
@ -216,7 +216,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.WrapAngle(one);
float anx = ANXMath.WrapAngle(one);
TestFloat(xna, anx, "WrapAngle");
AssertHelper.CompareFloats(xna, anx, "WrapAngle");
}
[TestCaseSource("fivefloats")]
@ -224,24 +224,9 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Hermite(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.Hermite(value1, tangent1, value2, tangent2, amount);
TestFloat(xna, anx, "Hermite");
AssertHelper.CompareFloats(xna, anx, "Hermite");
}
private static void TestFloat(float xna, float anx, string funktion)
{
if (AssertHelper.CompareFloats(xna, anx, 0.000001f))
{
Assert.Pass(funktion+" passed");
}
else
{
if (xna.ToString() == anx.ToString())
{
Assert.Pass(funktion+" passed");
}
Assert.Fail(String.Format(funktion + " failed: xna({0}) anx({1})", xna, anx));
}
}
}
}

View File

@ -64,7 +64,23 @@ namespace ANX.Framework.Input
public GamePadTriggers (float leftTrigger,float rightTrigger)
{
left = leftTrigger;
if (leftTrigger>1)
{
leftTrigger = 1;
}
if (leftTrigger<0)
{
leftTrigger = 0;
}
if (rightTrigger>1)
{
rightTrigger = 1;
}
if (rightTrigger<0)
{
rightTrigger = 0;
}
left = leftTrigger;
right = rightTrigger;
}

View File

@ -31,6 +31,12 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="SharpDX, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\lib\SharpDX\Bin\SharpDX.dll</HintPath>
</Reference>
<Reference Include="SharpDX.XAudio2">
<HintPath>..\..\lib\SharpDX\Bin\SharpDX.XAudio2.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />