diff --git a/ANX.Framework.TestCenter/AssertHelper.cs b/ANX.Framework.TestCenter/AssertHelper.cs index 12e533c1..ffe5ec31 100644 --- a/ANX.Framework.TestCenter/AssertHelper.cs +++ b/ANX.Framework.TestCenter/AssertHelper.cs @@ -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)); } } diff --git a/ANX.Framework.TestCenter/Input/GamePadDPadTest.cs b/ANX.Framework.TestCenter/Input/GamePadDPadTest.cs index 02f819b9..dc9fe628 100644 --- a/ANX.Framework.TestCenter/Input/GamePadDPadTest.cs +++ b/ANX.Framework.TestCenter/Input/GamePadDPadTest.cs @@ -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) diff --git a/ANX.Framework.TestCenter/Input/GamePadTriggersTest.cs b/ANX.Framework.TestCenter/Input/GamePadTriggersTest.cs new file mode 100644 index 00000000..8029aa2f --- /dev/null +++ b/ANX.Framework.TestCenter/Input/GamePadTriggersTest.cs @@ -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"); + } + } +} diff --git a/ANX.Framework.TestCenter/Strukturen/MathHelperTest.cs b/ANX.Framework.TestCenter/Strukturen/MathHelperTest.cs index 48b924ad..7b9c6143 100644 --- a/ANX.Framework.TestCenter/Strukturen/MathHelperTest.cs +++ b/ANX.Framework.TestCenter/Strukturen/MathHelperTest.cs @@ -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)); - } - } } } diff --git a/ANX.Framework/Input/GamePadTriggers.cs b/ANX.Framework/Input/GamePadTriggers.cs index 61da51ec..6edf6067 100644 --- a/ANX.Framework/Input/GamePadTriggers.cs +++ b/ANX.Framework/Input/GamePadTriggers.cs @@ -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; } diff --git a/SoundSystems/ANX.SoundSystem.Windows.XAudio/ANX.SoundSystem.Windows.XAudio.csproj b/SoundSystems/ANX.SoundSystem.Windows.XAudio/ANX.SoundSystem.Windows.XAudio.csproj index bca3e988..91fb85df 100644 --- a/SoundSystems/ANX.SoundSystem.Windows.XAudio/ANX.SoundSystem.Windows.XAudio.csproj +++ b/SoundSystems/ANX.SoundSystem.Windows.XAudio/ANX.SoundSystem.Windows.XAudio.csproj @@ -31,6 +31,12 @@ 4 + + ..\..\lib\SharpDX\Bin\SharpDX.dll + + + ..\..\lib\SharpDX\Bin\SharpDX.XAudio2.dll +