Implemented GetHashCode methods in the Input classes and added unit tests for them, they are now fully tested

This commit is contained in:
SND\AstrorEnales_cp 2012-10-16 20:41:17 +00:00 committed by Konstantin Koch
parent fa32fcea55
commit 325aa4c152
29 changed files with 696 additions and 564 deletions

View File

@ -69,6 +69,7 @@
<Compile Include="Strukturen\EventArgsTest.cs" /> <Compile Include="Strukturen\EventArgsTest.cs" />
<Compile Include="Strukturen\GameServiceContainerTest.cs" /> <Compile Include="Strukturen\GameServiceContainerTest.cs" />
<Compile Include="Strukturen\Graphics\PackedVector\Alpha8Test.cs" /> <Compile Include="Strukturen\Graphics\PackedVector\Alpha8Test.cs" />
<Compile Include="Strukturen\Graphics\ViewportTest.cs" />
<Compile Include="Strukturen\Input\GamePadButtonsTest.cs" /> <Compile Include="Strukturen\Input\GamePadButtonsTest.cs" />
<Compile Include="Strukturen\Input\GamePadDPadTest.cs" /> <Compile Include="Strukturen\Input\GamePadDPadTest.cs" />
<Compile Include="Strukturen\Design\TypeConverterTest.cs" /> <Compile Include="Strukturen\Design\TypeConverterTest.cs" />

View File

@ -70,6 +70,7 @@
<Compile Include="Strukturen\EventArgsTest.cs" /> <Compile Include="Strukturen\EventArgsTest.cs" />
<Compile Include="Strukturen\GameServiceContainerTest.cs" /> <Compile Include="Strukturen\GameServiceContainerTest.cs" />
<Compile Include="Strukturen\Graphics\PackedVector\Alpha8Test.cs" /> <Compile Include="Strukturen\Graphics\PackedVector\Alpha8Test.cs" />
<Compile Include="Strukturen\Graphics\ViewportTest.cs" />
<Compile Include="Strukturen\Input\GamePadButtonsTest.cs" /> <Compile Include="Strukturen\Input\GamePadButtonsTest.cs" />
<Compile Include="Strukturen\Input\GamePadDPadTest.cs" /> <Compile Include="Strukturen\Input\GamePadDPadTest.cs" />
<Compile Include="Strukturen\Design\TypeConverterTest.cs" /> <Compile Include="Strukturen\Design\TypeConverterTest.cs" />

View File

@ -71,6 +71,7 @@
<Compile Include="Strukturen\EventArgsTest.cs" /> <Compile Include="Strukturen\EventArgsTest.cs" />
<Compile Include="Strukturen\GameServiceContainerTest.cs" /> <Compile Include="Strukturen\GameServiceContainerTest.cs" />
<Compile Include="Strukturen\Graphics\PackedVector\Alpha8Test.cs" /> <Compile Include="Strukturen\Graphics\PackedVector\Alpha8Test.cs" />
<Compile Include="Strukturen\Graphics\ViewportTest.cs" />
<Compile Include="Strukturen\Input\GamePadButtonsTest.cs" /> <Compile Include="Strukturen\Input\GamePadButtonsTest.cs" />
<Compile Include="Strukturen\Input\GamePadDPadTest.cs" /> <Compile Include="Strukturen\Input\GamePadDPadTest.cs" />
<Compile Include="Strukturen\Design\TypeConverterTest.cs" /> <Compile Include="Strukturen\Design\TypeConverterTest.cs" />

View File

@ -1,7 +1,5 @@
#region Using Statements #region Using Statements
using System; using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework; using NUnit.Framework;
#endregion // Using Statements #endregion // Using Statements
@ -14,7 +12,6 @@ using ANXButtons = ANX.Framework.Input.Buttons;
using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState; using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState;
using ANXButtonState = ANX.Framework.Input.ButtonState; using ANXButtonState = ANX.Framework.Input.ButtonState;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license. // "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license // For details see: http://anxframework.codeplex.com/license
@ -147,14 +144,14 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "Start"); AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "Start");
} }
//[TestCaseSource("buttonSample")] [TestCaseSource("buttonSample")]
//public void GetHashCode(int buttons) public void GetHashCode(int buttons)
//{ {
// XNAGamePadButtons xna = new XNAGamePadButtons((XNAButtons)buttons); XNAGamePadButtons xna = new XNAGamePadButtons((XNAButtons)buttons);
// ANXGamePadButtons anx = new ANXGamePadButtons((ANXButtons)buttons); ANXGamePadButtons anx = new ANXGamePadButtons((ANXButtons)buttons);
// AssertHelper.ConvertEquals(xna.GetHashCode(), anx.GetHashCode(), "GetHashCode"); AssertHelper.ConvertEquals(xna.GetHashCode(), anx.GetHashCode(), "GetHashCode");
//} }
[TestCaseSource("buttonSample")] [TestCaseSource("buttonSample")]
public void Equals(int buttons) public void Equals(int buttons)

View File

@ -1,7 +1,5 @@
#region Using Statements #region Using Statements
using System; using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework; using NUnit.Framework;
#endregion // Using Statements #endregion // Using Statements
@ -12,7 +10,6 @@ using XNAGamePadDPad = Microsoft.Xna.Framework.Input.GamePadDPad;
using XNAButtons = Microsoft.Xna.Framework.Input.Buttons; using XNAButtons = Microsoft.Xna.Framework.Input.Buttons;
using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState; using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license. // "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license // For details see: http://anxframework.codeplex.com/license
@ -22,6 +19,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestFixture] [TestFixture]
class GamePadDPadTest class GamePadDPadTest
{ {
#region Test Data
static object[] Stats16 = static object[] Stats16 =
{ {
new object[] { ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, XNAButtonState.Released, XNAButtonState.Released ,XNAButtonState.Released, XNAButtonState.Released}, new object[] { ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, XNAButtonState.Released, XNAButtonState.Released ,XNAButtonState.Released, XNAButtonState.Released},
@ -41,6 +39,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
new object[] { ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Released, XNAButtonState.Pressed, XNAButtonState.Pressed ,XNAButtonState.Pressed, XNAButtonState.Released}, new object[] { ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Released, XNAButtonState.Pressed, XNAButtonState.Pressed ,XNAButtonState.Pressed, XNAButtonState.Released},
new object[] { ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, XNAButtonState.Pressed, XNAButtonState.Pressed ,XNAButtonState.Pressed, XNAButtonState.Pressed}, new object[] { ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, XNAButtonState.Pressed, XNAButtonState.Pressed ,XNAButtonState.Pressed, XNAButtonState.Pressed},
}; };
static object[] Stats16ANX = static object[] Stats16ANX =
{ {
new object[] { ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, (ANXButtons)1 }, new object[] { ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, (ANXButtons)1 },
@ -60,51 +59,62 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
new object[] { ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Released, (ANXButtons)7}, new object[] { ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Released, (ANXButtons)7},
new object[] { ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, (ANXButtons)15}, new object[] { ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, ANXButtonState.Pressed, (ANXButtons)15},
}; };
#endregion
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void Up(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void Up(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue,
XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
Assert.AreEqual(xna.Up.ToString(), anx.Up.ToString()); Assert.AreEqual(xna.Up.ToString(), anx.Up.ToString());
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void Down(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void Down(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue,
XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
Assert.AreEqual(xna.Down.ToString(), anx.Down.ToString()); Assert.AreEqual(xna.Down.ToString(), anx.Down.ToString());
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void Left(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void Left(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue,
XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
Assert.AreEqual(xna.Left.ToString(), anx.Left.ToString()); Assert.AreEqual(xna.Left.ToString(), anx.Left.ToString());
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void Right(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void Right(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue,
XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
Assert.AreEqual(xna.Right.ToString(), anx.Right.ToString()); Assert.AreEqual(xna.Right.ToString(), anx.Right.ToString());
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void ToString(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void ToString(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue,
ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2,
XNAButtonState rightValue2)
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "ToString"); AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "ToString");
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void Equal(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void Equal(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue,
XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
ANXGamePadDPad anx2 = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx2 = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
@ -113,13 +123,15 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadDPad xna2 = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna2 = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2),"Equal"); AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2),"Equal");
} }
[Test] [Test]
public void Equal2() public void Equal2()
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released); ANXGamePadDPad anx = new ANXGamePadDPad(ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released,
ANXGamePadDPad anx2 = new ANXGamePadDPad(ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Pressed); ANXButtonState.Released);
ANXGamePadDPad anx2 = new ANXGamePadDPad(ANXButtonState.Released, ANXButtonState.Released, ANXButtonState.Released,
ANXButtonState.Pressed);
//this test is for Codecover //this test is for Codecover
if (!anx.Equals(anx2)) if (!anx.Equals(anx2))
{ {
@ -130,17 +142,22 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
Assert.Fail("Fail Equal2"); Assert.Fail("Fail Equal2");
} }
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void Equal3(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void Equal3(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue,
ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2,
XNAButtonState rightValue2)
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
AssertHelper.ConvertEquals(xna.Equals(null), anx.Equals(null), "Equal3"); AssertHelper.ConvertEquals(xna.Equals(null), anx.Equals(null), "Equal3");
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void OperatorNoEqual(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void OperatorNoEqual(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue,
ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2,
XNAButtonState rightValue2)
{ {
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
ANXGamePadDPad anx2 = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx2 = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
@ -149,7 +166,17 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadDPad xna2 = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna2 = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "OperatorNoEqual"); AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "OperatorNoEqual");
}
[TestCaseSource("Stats16")]
public void GetHashCode(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue,
ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2,
XNAButtonState rightValue2)
{
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
AssertHelper.ConvertEquals(xna.GetHashCode(), anx.GetHashCode(), "GetHashCode");
} }
} }
} }

View File

@ -1,9 +1,6 @@
#region Using Statements #region Using Statements
using System; using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework; using NUnit.Framework;
using ANX.Framework;
#endregion // Using Statements #endregion // Using Statements
#region Using TestStatements #region Using TestStatements
@ -63,36 +60,92 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
#endregion #endregion
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void IsButtonDown(int i1,float f1, float f2, float f3, float f4, float f5, float f6, ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void IsButtonDown(int i1, float f1, float f2, float f3, float f4, float f5, float f6, ANXButtonState upValue,
ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2,
XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{ {
XNAGamePadState xna = new XNAGamePadState(new XNAGamePadThumbSticks(new XNAVector2(f1,f2),new XNAVector2(f3,f4)),new XNAGamePadTriggers(f5,f6),new XNAGamePadButtons((XNAButtons)i1),new XNAGamePadDPad(upValue2,downValue2,leftValue2,rightValue2)); var xna = new XNAGamePadState(
ANXGamePadState anx = new ANXGamePadState(new ANXGamePadThumbSticks(new ANXVector2(f1, f2), new ANXVector2(f3, f4)), new ANXGamePadTriggers(f5, f6), new ANXGamePadButtons((ANXButtons)i1), new ANXGamePadDPad(upValue, downValue, leftValue, rightValue)); new XNAGamePadThumbSticks(new XNAVector2(f1, f2), new XNAVector2(f3, f4)),
new XNAGamePadTriggers(f5, f6),
new XNAGamePadButtons((XNAButtons)i1),
new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2));
var anx = new ANXGamePadState(
new ANXGamePadThumbSticks(new ANXVector2(f1, f2), new ANXVector2(f3, f4)),
new ANXGamePadTriggers(f5, f6),
new ANXGamePadButtons((ANXButtons)i1),
new ANXGamePadDPad(upValue, downValue, leftValue, rightValue));
AssertHelper.ConvertEquals(xna.IsButtonDown(XNAButtons.A), anx.IsButtonDown(ANXButtons.A), "IsButtonDown"); AssertHelper.ConvertEquals(xna.IsButtonDown(XNAButtons.A), anx.IsButtonDown(ANXButtons.A), "IsButtonDown");
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void IsButtonUp(int i1, float f1, float f2, float f3, float f4, float f5, float f6, ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void IsButtonUp(int i1, float f1, float f2, float f3, float f4, float f5, float f6, ANXButtonState upValue,
ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2,
XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{ {
XNAGamePadState xna = new XNAGamePadState(new XNAGamePadThumbSticks(new XNAVector2(f1, f2), new XNAVector2(f3, f4)), new XNAGamePadTriggers(f5, f6), new XNAGamePadButtons((XNAButtons)i1), new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2)); var xna = new XNAGamePadState(
ANXGamePadState anx = new ANXGamePadState(new ANXGamePadThumbSticks(new ANXVector2(f1, f2), new ANXVector2(f3, f4)), new ANXGamePadTriggers(f5, f6), new ANXGamePadButtons((ANXButtons)i1), new ANXGamePadDPad(upValue, downValue, leftValue, rightValue)); new XNAGamePadThumbSticks(new XNAVector2(f1, f2), new XNAVector2(f3, f4)),
new XNAGamePadTriggers(f5, f6),
new XNAGamePadButtons((XNAButtons)i1),
new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2));
var anx = new ANXGamePadState(
new ANXGamePadThumbSticks(new ANXVector2(f1, f2), new ANXVector2(f3, f4)),
new ANXGamePadTriggers(f5, f6),
new ANXGamePadButtons((ANXButtons)i1),
new ANXGamePadDPad(upValue, downValue, leftValue, rightValue));
AssertHelper.ConvertEquals(xna.IsButtonUp(XNAButtons.A), anx.IsButtonUp(ANXButtons.A), "IsButtonUp"); AssertHelper.ConvertEquals(xna.IsButtonUp(XNAButtons.A), anx.IsButtonUp(ANXButtons.A), "IsButtonUp");
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void IsConnected(int i1, float f1, float f2, float f3, float f4, float f5, float f6, ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void IsConnected(int i1, float f1, float f2, float f3, float f4, float f5, float f6, ANXButtonState upValue,
ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2,
XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{ {
XNAGamePadState xna = new XNAGamePadState(new XNAGamePadThumbSticks(new XNAVector2(f1, f2), new XNAVector2(f3, f4)), new XNAGamePadTriggers(f5, f6), new XNAGamePadButtons((XNAButtons)i1), new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2)); var xna = new XNAGamePadState(
ANXGamePadState anx = new ANXGamePadState(new ANXGamePadThumbSticks(new ANXVector2(f1, f2), new ANXVector2(f3, f4)), new ANXGamePadTriggers(f5, f6), new ANXGamePadButtons((ANXButtons)i1), new ANXGamePadDPad(upValue, downValue, leftValue, rightValue)); new XNAGamePadThumbSticks(new XNAVector2(f1, f2), new XNAVector2(f3, f4)),
new XNAGamePadTriggers(f5, f6),
new XNAGamePadButtons((XNAButtons)i1),
new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2));
var anx = new ANXGamePadState(
new ANXGamePadThumbSticks(new ANXVector2(f1, f2), new ANXVector2(f3, f4)),
new ANXGamePadTriggers(f5, f6),
new ANXGamePadButtons((ANXButtons)i1),
new ANXGamePadDPad(upValue, downValue, leftValue, rightValue));
AssertHelper.ConvertEquals(xna.IsConnected, anx.IsConnected, "IsConnected"); AssertHelper.ConvertEquals(xna.IsConnected, anx.IsConnected, "IsConnected");
} }
[Test] [Test]
public void IsConnected2() public void IsConnected2()
{ {
XNAGamePadState xna = new XNAGamePadState(); var xna = new XNAGamePadState();
ANXGamePadState anx = new ANXGamePadState(); var anx = new ANXGamePadState();
AssertHelper.ConvertEquals(xna.IsConnected, anx.IsConnected, "IsConnected2"); AssertHelper.ConvertEquals(xna.IsConnected, anx.IsConnected, "IsConnected2");
} }
[TestCaseSource("Stats16")]
public void GetHashCode(int i1, float f1, float f2, float f3, float f4, float f5, float f6, ANXButtonState upValue,
ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2,
XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
{
var xna = new XNAGamePadState(
new XNAGamePadThumbSticks(new XNAVector2(f1, f2), new XNAVector2(f3, f4)),
new XNAGamePadTriggers(f5, f6),
new XNAGamePadButtons((XNAButtons)i1),
new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2));
var anx = new ANXGamePadState(
new ANXGamePadThumbSticks(new ANXVector2(f1, f2), new ANXVector2(f3, f4)),
new ANXGamePadTriggers(f5, f6),
new ANXGamePadButtons((ANXButtons)i1),
new ANXGamePadDPad(upValue, downValue, leftValue, rightValue));
AssertHelper.ConvertEquals(xna.GetHashCode(), anx.GetHashCode(), "GetHashCode");
}
} }
} }

View File

@ -1,8 +1,7 @@
#region Using Statements #region Using Statements
using System; using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework; using NUnit.Framework;
#endregion // Using Statements #endregion // Using Statements
using XNAGamePadButtons = Microsoft.Xna.Framework.Input.GamePadButtons; using XNAGamePadButtons = Microsoft.Xna.Framework.Input.GamePadButtons;
@ -14,7 +13,6 @@ using ANXGamePadThumbSticks = ANX.Framework.Input.GamePadThumbSticks;
using XNAVector2 = Microsoft.Xna.Framework.Vector2; using XNAVector2 = Microsoft.Xna.Framework.Vector2;
using ANXVector2 = ANX.Framework.Vector2; using ANXVector2 = ANX.Framework.Vector2;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license. // "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license // For details see: http://anxframework.codeplex.com/license
@ -36,6 +34,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
new object[]{-2,-2,-2,-2} new object[]{-2,-2,-2,-2}
}; };
#endregion #endregion
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Left(float leftX, float leftY,float rightX,float rightY) public void Left(float leftX, float leftY,float rightX,float rightY)
{ {
@ -43,6 +42,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX,leftY),new XNAVector2(rightX,rightY)); XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX,leftY),new XNAVector2(rightX,rightY));
AssertHelper.ConvertEquals(xna.Left, anx.Left, "Left"); AssertHelper.ConvertEquals(xna.Left, anx.Left, "Left");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Right(float leftX, float leftY, float rightX, float rightY) public void Right(float leftX, float leftY, float rightX, float rightY)
{ {
@ -50,13 +50,15 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY)); XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY));
AssertHelper.ConvertEquals(xna.Right, anx.Right, "Right"); AssertHelper.ConvertEquals(xna.Right, anx.Right, "Right");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void ToString(float leftX, float leftY,float rightX,float rightY) public void ToString(float leftX, float leftY,float rightX,float rightY)
{ {
ANXGamePadThumbSticks anx = new ANXGamePadThumbSticks(new ANXVector2(leftX,leftY),new ANXVector2(rightX,rightY)); ANXGamePadThumbSticks anx = new ANXGamePadThumbSticks(new ANXVector2(leftX, leftY), new ANXVector2(rightX, rightY));
XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX,leftY),new XNAVector2(rightX,rightY)); XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY));
AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "ToString"); AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "ToString");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Equals(float leftX, float leftY,float rightX,float rightY) public void Equals(float leftX, float leftY,float rightX,float rightY)
{ {
@ -66,6 +68,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadThumbSticks xna2 = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY)); XNAGamePadThumbSticks xna2 = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY));
AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "Equals"); AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "Equals");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Equals2(float leftX, float leftY,float rightX,float rightY) public void Equals2(float leftX, float leftY,float rightX,float rightY)
{ {
@ -75,6 +78,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadThumbSticks xna2 = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY)); XNAGamePadThumbSticks xna2 = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY));
AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2), "Equals2"); AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2), "Equals2");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Equals3(float leftX, float leftY, float rightX, float rightY) public void Equals3(float leftX, float leftY, float rightX, float rightY)
{ {
@ -82,6 +86,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY)); XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY));
AssertHelper.ConvertEquals(xna.Equals(null), anx.Equals(null), "Equals3"); AssertHelper.ConvertEquals(xna.Equals(null), anx.Equals(null), "Equals3");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void NotEquals(float leftX, float leftY,float rightX,float rightY) public void NotEquals(float leftX, float leftY,float rightX,float rightY)
{ {
@ -96,5 +101,12 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "NotEquals"); AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "NotEquals");
} }
[TestCaseSource("twofloats")]
public void GetHashCode(float leftX, float leftY, float rightX, float rightY)
{
ANXGamePadThumbSticks anx = new ANXGamePadThumbSticks(new ANXVector2(leftX, leftY), new ANXVector2(rightX, rightY));
XNAGamePadThumbSticks xna = new XNAGamePadThumbSticks(new XNAVector2(leftX, leftY), new XNAVector2(rightX, rightY));
AssertHelper.ConvertEquals(xna.GetHashCode(), anx.GetHashCode(), "GetHashCode");
}
} }
} }

View File

@ -1,7 +1,5 @@
#region Using Statements #region Using Statements
using System; using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework; using NUnit.Framework;
#endregion // Using Statements #endregion // Using Statements
@ -9,7 +7,6 @@ using NUnit.Framework;
using ANXGamePadTriggers = ANX.Framework.Input.GamePadTriggers; using ANXGamePadTriggers = ANX.Framework.Input.GamePadTriggers;
using XNAGamePadTriggers = Microsoft.Xna.Framework.Input.GamePadTriggers; using XNAGamePadTriggers = Microsoft.Xna.Framework.Input.GamePadTriggers;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license. // "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license // For details see: http://anxframework.codeplex.com/license
@ -26,8 +23,9 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
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 },
new object[]{-1,-1} new object[]{-1, -1}
}; };
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Left(float leftTrigger, float rightTrigger) public void Left(float leftTrigger, float rightTrigger)
{ {
@ -35,6 +33,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger); XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna.Left, anx.Left, "Left"); AssertHelper.ConvertEquals(xna.Left, anx.Left, "Left");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Right(float leftTrigger, float rightTrigger) public void Right(float leftTrigger, float rightTrigger)
{ {
@ -42,6 +41,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger); XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna.Right, anx.Right, "Right"); AssertHelper.ConvertEquals(xna.Right, anx.Right, "Right");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void ToString(float leftTrigger, float rightTrigger) public void ToString(float leftTrigger, float rightTrigger)
{ {
@ -49,6 +49,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger); XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "ToString"); AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "ToString");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Equals(float leftTrigger, float rightTrigger) public void Equals(float leftTrigger, float rightTrigger)
{ {
@ -58,6 +59,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadTriggers xna2 = new XNAGamePadTriggers(leftTrigger, rightTrigger); XNAGamePadTriggers xna2 = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "Equals"); AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "Equals");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Equals2(float leftTrigger, float rightTrigger) public void Equals2(float leftTrigger, float rightTrigger)
{ {
@ -67,6 +69,7 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadTriggers xna2 = new XNAGamePadTriggers(leftTrigger, rightTrigger); XNAGamePadTriggers xna2 = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2), "Equals2"); AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2), "Equals2");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void Equals3(float leftTrigger, float rightTrigger) public void Equals3(float leftTrigger, float rightTrigger)
{ {
@ -74,12 +77,13 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger); XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna.Equals(null), anx.Equals(null), "Equals3"); AssertHelper.ConvertEquals(xna.Equals(null), anx.Equals(null), "Equals3");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
public void NotEquals(float leftTrigger, float rightTrigger) public void NotEquals(float leftTrigger, float rightTrigger)
{ {
ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger); ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger); XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
while (leftTrigger==rightTrigger) while (leftTrigger == rightTrigger)
{ {
leftTrigger = DataFactory.RandomFloat; leftTrigger = DataFactory.RandomFloat;
} }
@ -87,5 +91,13 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
XNAGamePadTriggers xna2 = new XNAGamePadTriggers(rightTrigger,leftTrigger); XNAGamePadTriggers xna2 = new XNAGamePadTriggers(rightTrigger,leftTrigger);
AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "NotEquals"); AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "NotEquals");
} }
[TestCaseSource("twofloats")]
public void GetHashCode(float leftTrigger, float rightTrigger)
{
ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
AssertHelper.ConvertEquals(xna.GetHashCode(), anx.GetHashCode(), "GetHashCode");
}
} }
} }

View File

@ -1,7 +1,5 @@
#region Using Statements #region Using Statements
using System; using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework; using NUnit.Framework;
#endregion // Using Statements #endregion // Using Statements
@ -11,8 +9,6 @@ using ANXKeyboardState = ANX.Framework.Input.KeyboardState;
using XNAKeys = Microsoft.Xna.Framework.Input.Keys; using XNAKeys = Microsoft.Xna.Framework.Input.Keys;
using ANXKeys = ANX.Framework.Input.Keys; using ANXKeys = ANX.Framework.Input.Keys;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license. // "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license // For details see: http://anxframework.codeplex.com/license
@ -21,170 +17,161 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestFixture] [TestFixture]
class KeyboardStateTest class KeyboardStateTest
{ {
#region Input #region Input
static object[] Key = private static object[] Key =
{ {
0, 8,9,13,19,20,21,25,27,28, 0, 8, 9, 13, 19, 20, 21, 25, 27, 28,
29, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40,
32, 41,
33, 42,
34, 43,
35, 44,
36, 45,
37, 46,
38, 47,
39, 48,
40, 49,
41, 50,
42, 51,
43, 52,
44, 53,
45, 54,
46, 55,
47, 56,
48, 57,
49, 65,
50, 66,
51, 67,
52, 68,
53, 69,
54, 70,
55, 71,
56, 72,
57, 73,
65, 74,
66, 75,
67, 76,
68, 77,
69, 78,
70, 79,
71, 80,
72, 81,
73, 82,
74, 83,
75, 84,
76, 85,
77, 86,
78, 87,
79, 88,
80, 89,
81, 90,
82, 91,
83, 92,
84, 93,
85, 95,
86, 96,
87, 97,
88, 98,
89, 99,
90, 100,
91, 101,
92, 102,
93, 103,
95, 104,
96, 105,
97, 106,
98, 107,
99, 108,
100, 109,
101, 110,
102, 111,
103, 112,
104, 113,
105, 114,
106, 115,
107, 116,
108, 117,
109, 118,
110, 119,
111, 120,
112, 121,
113, 122,
114, 123,
115, 124,
116, 125,
117, 126,
118, 127,
119, 128,
120, 129,
121, 130,
122, 131,
123, 132,
124, 133,
125, 134,
126, 135,
127, 144,
128, 145,
129, 160,
130, 161,
131, 162,
132, 163,
133, 164,
134, 165,
135, 166,
144, 167,
145, 168,
160, 169,
161, 170,
162, 171,
163, 172,
164, 173,
165, 174,
166, 175,
167, 176,
168, 177,
169, 178,
170, 179,
171, 180,
172, 181,
173, 182,
174, 183,
175, 186,
176, 187,
177, 188,
178, 189,
179, 190,
180, 191,
181, 192,
182, 202,
183, 203,
186, 219,
187, 220,
188, 221,
189, 222,
190, 223,
191, 226,
192, 229,
202, 242,
203, 243,
219, 244,
220, 246,
221, 247,
222, 248,
223, 249,
226, 250,
229, 251,
242, 253,
243, 254
244, };
246,
247,
248,
249,
250,
251,
253,
254
};
static object[] Key10 = private static object[] Key10 =
{ {
new int[]{9,32,33,34,35,36,37,38,39,40}, new int[] { 9, 32, 33, 34, 35, 36, 37, 38, 39, 40 },
new int[]{9,9,9,34,35,36,37,38,39,40}, new int[] { 9, 9, 9, 34, 35, 36, 37, 38, 39, 40 },
new int[]{9,42,9,34,35,36,37,38,39,40}, new int[] { 9, 42, 9, 34, 35, 36, 37, 38, 39, 40 },
new int[]{9,42,43,34,35,36,37,38,39,40}, new int[] { 9, 42, 43, 34, 35, 36, 37, 38, 39, 40 },
}; };
#endregion #endregion
[TestCaseSource("Key")] [TestCaseSource("Key")]
public void IsKeyDown(int key) public void IsKeyDown(int key)
@ -220,7 +207,6 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
{ {
anxkey[i] = (ANXKeys)key[i]; anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i]; xnakey[i] = (XNAKeys)key[i];
} }
ANXKeyboardState anx = new ANXKeyboardState(anxkey); ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey); XNAKeyboardState xna = new XNAKeyboardState(xnakey);
@ -240,7 +226,6 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
{ {
anxkey[i] = (ANXKeys)key[i]; anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i]; xnakey[i] = (XNAKeys)key[i];
} }
ANXKeyboardState anx = new ANXKeyboardState(anxkey); ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey); XNAKeyboardState xna = new XNAKeyboardState(xnakey);
@ -260,7 +245,6 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
{ {
anxkey[i] = (ANXKeys)key[i]; anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i]; xnakey[i] = (XNAKeys)key[i];
} }
ANXKeyboardState anx = new ANXKeyboardState(anxkey); ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey); XNAKeyboardState xna = new XNAKeyboardState(xnakey);
@ -278,7 +262,6 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
{ {
anxkey[i] = (ANXKeys)key[i]; anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i]; xnakey[i] = (XNAKeys)key[i];
} }
ANXKeyboardState anx = new ANXKeyboardState(anxkey); ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey); XNAKeyboardState xna = new XNAKeyboardState(xnakey);
@ -300,7 +283,6 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
{ {
anxkey[i] = (ANXKeys)key[i]; anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i]; xnakey[i] = (XNAKeys)key[i];
} }
ANXKeyboardState anx = new ANXKeyboardState(anxkey); ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey); XNAKeyboardState xna = new XNAKeyboardState(xnakey);
@ -320,7 +302,6 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
{ {
anxkey[i] = (ANXKeys)key[i]; anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i]; xnakey[i] = (XNAKeys)key[i];
} }
ANXKeyboardState anx = new ANXKeyboardState(anxkey); ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey); XNAKeyboardState xna = new XNAKeyboardState(xnakey);
@ -340,14 +321,13 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
{ {
anxkey[i] = (ANXKeys)key[i]; anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i]; xnakey[i] = (XNAKeys)key[i];
} }
ANXKeyboardState anx = new ANXKeyboardState(anxkey); ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey); XNAKeyboardState xna = new XNAKeyboardState(xnakey);
AssertHelper.ConvertEquals(xna.GetPressedKeys(), anx.GetPressedKeys(), "GetPressedKeys"); AssertHelper.ConvertEquals(xna.GetPressedKeys(), anx.GetPressedKeys(), "GetPressedKeys");
} }
[TestCaseSource("Key10")] [TestCaseSource("Key10")]
public void KeyState(int[] key) public void KeyState(int[] key)
{ {
@ -358,12 +338,28 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
{ {
anxkey[i] = (ANXKeys)key[i]; anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i]; xnakey[i] = (XNAKeys)key[i];
} }
ANXKeyboardState anx = new ANXKeyboardState(anxkey); ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey); XNAKeyboardState xna = new XNAKeyboardState(xnakey);
AssertHelper.ConvertEquals(xna[(XNAKeys)9]==Microsoft.Xna.Framework.Input.KeyState.Down, anx[(ANXKeys)9]==ANX.Framework.Input.KeyState.Down, "KeyState"); AssertHelper.ConvertEquals(xna[(XNAKeys)9] == Microsoft.Xna.Framework.Input.KeyState.Down,
anx[(ANXKeys)9] == ANX.Framework.Input.KeyState.Down, "KeyState");
}
[TestCaseSource("Key10")]
public void GetHashCode(int[] key)
{
ANXKeys[] anxkey = new ANXKeys[10];
XNAKeys[] xnakey = new XNAKeys[10];
for (int i = 0; i < key.Length; i++)
{
anxkey[i] = (ANXKeys)key[i];
xnakey[i] = (XNAKeys)key[i];
}
ANXKeyboardState anx = new ANXKeyboardState(anxkey);
XNAKeyboardState xna = new XNAKeyboardState(xnakey);
AssertHelper.ConvertEquals(xna.GetHashCode(), anx.GetHashCode(), "GetHashCode");
} }
} }
} }

View File

@ -1,7 +1,5 @@
#region Using Statements #region Using Statements
using System; using System;
using System.IO;
using ANX.Framework.NonXNA;
using NUnit.Framework; using NUnit.Framework;
#endregion // Using Statements #endregion // Using Statements
@ -11,8 +9,6 @@ using ANXMouseState = ANX.Framework.Input.MouseState;
using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState; using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState;
using ANXButtonState = ANX.Framework.Input.ButtonState; using ANXButtonState = ANX.Framework.Input.ButtonState;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license. // "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license // For details see: http://anxframework.codeplex.com/license
@ -28,57 +24,74 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
}; };
#endregion #endregion
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void LeftButton(int[] input) public void LeftButton(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna= new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
AssertHelper.ConvertEquals(xna.LeftButton == XNAButtonState.Pressed, anx.LeftButton == ANXButtonState.Pressed, "LeftButton"); var xna= new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.LeftButton == XNAButtonState.Pressed, anx.LeftButton == ANXButtonState.Pressed,
"LeftButton");
} }
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void MiddleButton(int[] input) public void MiddleButton(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.MiddleButton == XNAButtonState.Pressed, anx.MiddleButton == ANXButtonState.Pressed, "MiddleButton"); AssertHelper.ConvertEquals(xna.MiddleButton == XNAButtonState.Pressed, anx.MiddleButton == ANXButtonState.Pressed,
"MiddleButton");
} }
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void RightButton(int[] input) public void RightButton(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.RightButton == XNAButtonState.Pressed, anx.RightButton == ANXButtonState.Pressed, "RightButton"); AssertHelper.ConvertEquals(xna.RightButton == XNAButtonState.Pressed, anx.RightButton == ANXButtonState.Pressed,
"RightButton");
} }
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void XButton1(int[] input) public void XButton1(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.XButton1 == XNAButtonState.Pressed, anx.XButton1 == ANXButtonState.Pressed, "XButton1"); AssertHelper.ConvertEquals(xna.XButton1 == XNAButtonState.Pressed, anx.XButton1 == ANXButtonState.Pressed,
"XButton1");
} }
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void XButton2(int[] input) public void XButton2(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.XButton2 == XNAButtonState.Pressed, anx.XButton2 == ANXButtonState.Pressed, "XButton2"); AssertHelper.ConvertEquals(xna.XButton2 == XNAButtonState.Pressed, anx.XButton2 == ANXButtonState.Pressed,
"XButton2");
} }
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void ScrollWheelValue(int[] input) public void ScrollWheelValue(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.ScrollWheelValue, anx.ScrollWheelValue, "ScrollWheelValue"); AssertHelper.ConvertEquals(xna.ScrollWheelValue, anx.ScrollWheelValue, "ScrollWheelValue");
} }
@ -86,8 +99,10 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void X(int[] input) public void X(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.X, anx.X, "X"); AssertHelper.ConvertEquals(xna.X, anx.X, "X");
} }
@ -95,8 +110,10 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void Y(int[] input) public void Y(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.Y, anx.Y, "Y"); AssertHelper.ConvertEquals(xna.Y, anx.Y, "Y");
} }
@ -104,10 +121,14 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void OpEqual(int[] input) public void OpEqual(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
ANXMouseState anx2 = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
XNAMouseState xna2 = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
var anx2 = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
(ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna2 = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "OpEqual"); AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "OpEqual");
} }
@ -115,10 +136,14 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void Equals(int[] input) public void Equals(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
ANXMouseState anx2 = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
XNAMouseState xna2 = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
var anx2 = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
(ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna2 = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2), "Equals"); AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2), "Equals");
} }
@ -126,10 +151,10 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void Equals2(int[] input) public void Equals2(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
ANXMouseState anx2 = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
XNAMouseState xna2 = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.Equals(null), anx.Equals(null), "Equals2"); AssertHelper.ConvertEquals(xna.Equals(null), anx.Equals(null), "Equals2");
} }
@ -137,10 +162,14 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void OpUnEqual(int[] input) public void OpUnEqual(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
ANXMouseState anx2 = new ANXMouseState(input[1], input[0], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
XNAMouseState xna2 = new XNAMouseState(input[1], input[0], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
var anx2 = new ANXMouseState(input[1], input[0], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
(ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna2 = new XNAMouseState(input[1], input[0], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "OpUnEqual"); AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "OpUnEqual");
} }
@ -148,10 +177,23 @@ namespace ANX.Framework.TestCenter.Strukturen.Input
[TestCaseSource("case1")] [TestCaseSource("case1")]
public void ToString(int[] input) public void ToString(int[] input)
{ {
ANXMouseState anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4], (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]); var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
XNAMouseState xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4], (XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]); (ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "ToString"); AssertHelper.ConvertEquals(xna.ToString(), anx.ToString(), "ToString");
} }
[TestCaseSource("case1")]
public void GetHashCode(int[] input)
{
var anx = new ANXMouseState(input[0], input[1], input[2], (ANXButtonState)input[3], (ANXButtonState)input[4],
(ANXButtonState)input[5], (ANXButtonState)input[6], (ANXButtonState)input[7]);
var xna = new XNAMouseState(input[0], input[1], input[2], (XNAButtonState)input[3], (XNAButtonState)input[4],
(XNAButtonState)input[5], (XNAButtonState)input[6], (XNAButtonState)input[7]);
AssertHelper.ConvertEquals(xna.GetHashCode(), anx.GetHashCode(), "GetHashCode");
}
} }
} }

View File

@ -419,6 +419,7 @@
<Compile Include="NonXNA\Development\TestStateAttribute.cs" /> <Compile Include="NonXNA\Development\TestStateAttribute.cs" />
<Compile Include="NonXNA\Development\PercentageCompleteAttribute.cs" /> <Compile Include="NonXNA\Development\PercentageCompleteAttribute.cs" />
<Compile Include="NonXNA\EffectSourceLanguage.cs" /> <Compile Include="NonXNA\EffectSourceLanguage.cs" />
<Compile Include="NonXNA\HashHelper.cs" />
<Compile Include="NonXNA\InputDeviceFactory.cs" /> <Compile Include="NonXNA\InputDeviceFactory.cs" />
<Compile Include="NonXNA\InputSystem\IGamePadCreator.cs" /> <Compile Include="NonXNA\InputSystem\IGamePadCreator.cs" />
<Compile Include="NonXNA\InputSystem\IKeyboard.cs" /> <Compile Include="NonXNA\InputSystem\IKeyboard.cs" />

View File

@ -421,6 +421,7 @@
<Compile Include="NonXNA\Development\TestStateAttribute.cs" /> <Compile Include="NonXNA\Development\TestStateAttribute.cs" />
<Compile Include="NonXNA\Development\PercentageCompleteAttribute.cs" /> <Compile Include="NonXNA\Development\PercentageCompleteAttribute.cs" />
<Compile Include="NonXNA\EffectSourceLanguage.cs" /> <Compile Include="NonXNA\EffectSourceLanguage.cs" />
<Compile Include="NonXNA\HashHelper.cs" />
<Compile Include="NonXNA\InputDeviceFactory.cs" /> <Compile Include="NonXNA\InputDeviceFactory.cs" />
<Compile Include="NonXNA\InputSystem\IGamePadCreator.cs" /> <Compile Include="NonXNA\InputSystem\IGamePadCreator.cs" />
<Compile Include="NonXNA\InputSystem\IKeyboard.cs" /> <Compile Include="NonXNA\InputSystem\IKeyboard.cs" />

View File

@ -422,6 +422,7 @@
<Compile Include="NonXNA\Development\TestStateAttribute.cs" /> <Compile Include="NonXNA\Development\TestStateAttribute.cs" />
<Compile Include="NonXNA\Development\PercentageCompleteAttribute.cs" /> <Compile Include="NonXNA\Development\PercentageCompleteAttribute.cs" />
<Compile Include="NonXNA\EffectSourceLanguage.cs" /> <Compile Include="NonXNA\EffectSourceLanguage.cs" />
<Compile Include="NonXNA\HashHelper.cs" />
<Compile Include="NonXNA\InputDeviceFactory.cs" /> <Compile Include="NonXNA\InputDeviceFactory.cs" />
<Compile Include="NonXNA\InputSystem\IGamePadCreator.cs" /> <Compile Include="NonXNA\InputSystem\IGamePadCreator.cs" />
<Compile Include="NonXNA\InputSystem\IKeyboard.cs" /> <Compile Include="NonXNA\InputSystem\IKeyboard.cs" />

View File

@ -7,7 +7,8 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)] [TestState(TestStateAttribute.TestState.Tested)]
public static class GamePad public static class GamePad
{ {

View File

@ -1,4 +1,5 @@
using System; using System;
using ANX.Framework.NonXNA;
using ANX.Framework.NonXNA.Development; using ANX.Framework.NonXNA.Development;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
@ -8,58 +9,114 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[TestState(TestStateAttribute.TestState.Untested)] [Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)]
public struct GamePadButtons public struct GamePadButtons
{ {
private readonly ButtonState a;
private readonly ButtonState b;
private readonly ButtonState back;
private readonly ButtonState big;
private readonly ButtonState leftShoulder;
private readonly ButtonState leftStick;
private readonly ButtonState rightShoulder;
private readonly ButtonState rightStick;
private readonly ButtonState start;
private readonly ButtonState x;
private readonly ButtonState y;
#region Public #region Public
public ButtonState A { get; private set; } public ButtonState A
public ButtonState B { get; private set; } {
public ButtonState Back { get; private set; } get { return a; }
public ButtonState BigButton { get; private set; } }
public ButtonState LeftShoulder { get; private set; }
public ButtonState LeftStick { get; private set; } public ButtonState B
public ButtonState RightShoulder { get; private set; } {
public ButtonState RightStick { get; private set; } get { return b; }
public ButtonState Start { get; private set; } }
public ButtonState X { get; private set; }
public ButtonState Y { get; private set; } public ButtonState Back
internal Buttons Buttons { get; private set; } {
get { return back; }
}
public ButtonState BigButton
{
get { return big; }
}
public ButtonState LeftShoulder
{
get { return leftShoulder; }
}
public ButtonState LeftStick
{
get { return leftStick; }
}
public ButtonState RightShoulder
{
get { return rightShoulder; }
}
public ButtonState RightStick
{
get { return rightStick; }
}
public ButtonState Start
{
get { return start; }
}
public ButtonState X
{
get { return x; }
}
public ButtonState Y
{
get { return y; }
}
#endregion #endregion
public GamePadButtons(Buttons buttons) public GamePadButtons(Buttons buttons)
: this() : this()
{ {
A = GetButtonState(buttons, Buttons.A); a = GetButtonState(buttons, Buttons.A);
B = GetButtonState(buttons, Buttons.B); b = GetButtonState(buttons, Buttons.B);
X = GetButtonState(buttons, Buttons.X); x = GetButtonState(buttons, Buttons.X);
Y = GetButtonState(buttons, Buttons.Y); y = GetButtonState(buttons, Buttons.Y);
LeftStick = GetButtonState(buttons, Buttons.LeftStick); leftStick = GetButtonState(buttons, Buttons.LeftStick);
RightStick = GetButtonState(buttons, Buttons.RightStick); rightStick = GetButtonState(buttons, Buttons.RightStick);
LeftShoulder = GetButtonState(buttons, Buttons.LeftShoulder); leftShoulder = GetButtonState(buttons, Buttons.LeftShoulder);
RightShoulder = GetButtonState(buttons, Buttons.RightShoulder); rightShoulder = GetButtonState(buttons, Buttons.RightShoulder);
Back = GetButtonState(buttons, Buttons.Back); back = GetButtonState(buttons, Buttons.Back);
Start = GetButtonState(buttons, Buttons.Start); start = GetButtonState(buttons, Buttons.Start);
BigButton = GetButtonState(buttons, Buttons.BigButton); big = GetButtonState(buttons, Buttons.BigButton);
Buttons = buttons;
} }
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
if (obj != null && obj.GetType() == typeof(GamePadButtons)) return obj is GamePadButtons && this == (GamePadButtons)obj;
return this == (GamePadButtons)obj;
return false;
} }
public static bool operator ==(GamePadButtons lhs, GamePadButtons rhs) public static bool operator ==(GamePadButtons lhs, GamePadButtons rhs)
{ {
return lhs.Buttons == rhs.Buttons; return lhs.a == rhs.a && lhs.b == rhs.b && lhs.x == rhs.x && lhs.y == rhs.y &&
lhs.leftShoulder == rhs.leftShoulder && lhs.leftStick == rhs.leftStick &&
lhs.rightShoulder == rhs.rightShoulder && lhs.rightStick == rhs.rightStick &&
lhs.back == rhs.back && lhs.start == rhs.start && lhs.big == rhs.big;
} }
public static bool operator !=(GamePadButtons lhs, GamePadButtons rhs) public static bool operator !=(GamePadButtons lhs, GamePadButtons rhs)
{ {
return lhs.Buttons != rhs.Buttons; return lhs.a != rhs.a || lhs.b != rhs.b || lhs.x != rhs.x || lhs.y != rhs.y ||
lhs.leftShoulder != rhs.leftShoulder || lhs.leftStick != rhs.leftStick ||
lhs.rightShoulder != rhs.rightShoulder || lhs.rightStick != rhs.rightStick ||
lhs.back != rhs.back || lhs.start != rhs.start || lhs.big != rhs.big;
} }
private static ButtonState GetButtonState(Buttons buttons, Buttons button) private static ButtonState GetButtonState(Buttons buttons, Buttons button)
@ -69,7 +126,7 @@ namespace ANX.Framework.Input
public override int GetHashCode() public override int GetHashCode()
{ {
return (int)Buttons; return HashHelper.GetGCHandleHashCode(this);
} }
public override string ToString() public override string ToString()

View File

@ -7,163 +7,60 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)] [TestState(TestStateAttribute.TestState.Tested)]
public struct GamePadCapabilities public struct GamePadCapabilities
{ {
public GamePadType GamePadType public GamePadType GamePadType { get; internal set; }
{
get;
internal set;
}
public bool HasAButton public bool HasAButton { get; internal set; }
{
get;
internal set;
}
public bool HasBackButton public bool HasBackButton { get; internal set; }
{
get;
internal set;
}
public bool HasBButton public bool HasBButton { get; internal set; }
{
get;
internal set;
}
public bool HasBigButton
{
get;
internal set;
}
public bool HasDPadDownButton public bool HasBigButton { get; internal set; }
{
get;
internal set;
}
public bool HasDPadLeftButton public bool HasDPadDownButton { get; internal set; }
{
get;
internal set;
}
public bool HasDPadRightButton public bool HasDPadLeftButton { get; internal set; }
{
get;
internal set;
}
public bool HasDPadUpButton public bool HasDPadRightButton { get; internal set; }
{
get;
internal set;
}
public bool HasLeftShoulderButton public bool HasDPadUpButton { get; internal set; }
{
get;
internal set;
}
public bool HasLeftStickButton public bool HasLeftShoulderButton { get; internal set; }
{
get;
internal set;
}
public bool HasLeftTrigger public bool HasLeftStickButton { get; internal set; }
{
get;
internal set;
}
public bool HasLeftVibrationMotor public bool HasLeftTrigger { get; internal set; }
{
get;
internal set;
}
public bool HasLeftXThumbStick public bool HasLeftVibrationMotor { get; internal set; }
{
get;
internal set;
}
public bool HasLeftYThumbStick public bool HasLeftXThumbStick { get; internal set; }
{
get;
internal set;
}
public bool HasRightShoulderButton public bool HasLeftYThumbStick { get; internal set; }
{
get;
internal set;
}
public bool HasRightStickButton public bool HasRightShoulderButton { get; internal set; }
{
get;
internal set;
}
public bool HasRightVibrationMotor public bool HasRightStickButton { get; internal set; }
{
get;
internal set;
}
public bool HasRightTrigger public bool HasRightVibrationMotor { get; internal set; }
{
get;
internal set;
}
public bool HasRightXThumbStick public bool HasRightTrigger { get; internal set; }
{
get;
internal set;
}
public bool HasRightYThumbStick public bool HasRightXThumbStick { get; internal set; }
{
get;
internal set;
}
public bool HasStartButton public bool HasRightYThumbStick { get; internal set; }
{
get;
internal set;
}
public bool HasVoiceSupport public bool HasStartButton { get; internal set; }
{
get;
internal set;
}
public bool HasXButton public bool HasVoiceSupport { get; internal set; }
{
get;
internal set;
}
public bool HasYButton public bool HasXButton { get; internal set; }
{
get;
internal set;
}
public bool IsConnected public bool HasYButton { get; internal set; }
{
get; public bool IsConnected { get; internal set; }
internal set;
}
} }
} }

View File

@ -1,4 +1,5 @@
using System; using System;
using ANX.Framework.NonXNA;
using ANX.Framework.NonXNA.Development; using ANX.Framework.NonXNA.Development;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
@ -7,60 +8,69 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[TestState(TestStateAttribute.TestState.Untested)] [Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)]
public struct GamePadDPad public struct GamePadDPad
{ {
public ButtonState Down { get; private set; } private readonly ButtonState up;
public ButtonState Left { get; private set; } private readonly ButtonState right;
public ButtonState Right { get; private set; } private readonly ButtonState down;
public ButtonState Up { get; private set; } private readonly ButtonState left;
internal Buttons Buttons { get; private set; }
public ButtonState Down
{
get { return down; }
}
public ButtonState Left
{
get { return left; }
}
public ButtonState Right
{
get { return right; }
}
public ButtonState Up
{
get { return up; }
}
public GamePadDPad(ButtonState upValue, ButtonState downValue, ButtonState leftValue, ButtonState rightValue) public GamePadDPad(ButtonState upValue, ButtonState downValue, ButtonState leftValue, ButtonState rightValue)
: this()
{ {
Up = upValue; up = upValue;
Down = downValue; down = downValue;
Left = leftValue; left = leftValue;
Right = rightValue; right = rightValue;
AddToButtonsIfPressed(upValue, Buttons.DPadUp);
AddToButtonsIfPressed(downValue, Buttons.DPadDown);
AddToButtonsIfPressed(leftValue, Buttons.DPadLeft);
AddToButtonsIfPressed(rightValue, Buttons.DPadRight);
} }
internal GamePadDPad(Buttons buttons) internal GamePadDPad(Buttons buttons)
: this() : this()
{ {
Buttons = buttons; up = GetButtonStateFrom(buttons, Buttons.DPadUp);
Up = GetButtonStateFrom(Buttons.DPadUp); left = GetButtonStateFrom(buttons, Buttons.DPadLeft);
Left = GetButtonStateFrom(Buttons.DPadLeft); down = GetButtonStateFrom(buttons, Buttons.DPadDown);
Down = GetButtonStateFrom(Buttons.DPadDown); right = GetButtonStateFrom(buttons, Buttons.DPadRight);
Right = GetButtonStateFrom(Buttons.DPadRight);
} }
private ButtonState GetButtonStateFrom(Buttons button) private ButtonState GetButtonStateFrom(Buttons buttons, Buttons button)
{ {
return (Buttons & button) == button ? ButtonState.Pressed : ButtonState.Released; return (buttons & button) == button ? ButtonState.Pressed : ButtonState.Released;
}
private void AddToButtonsIfPressed(ButtonState state, Buttons button)
{
Buttons |= (state == ButtonState.Pressed ? button : 0);
} }
public override int GetHashCode() public override int GetHashCode()
{ {
return (int)Buttons; return HashHelper.GetGCHandleHashCode(this);
} }
public override string ToString() public override string ToString()
{ {
string buttons = Up == ButtonState.Pressed ? "Up" : ""; string buttons = up == ButtonState.Pressed ? "Up" : "";
buttons += Down == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Down" : ""; buttons += down == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Down" : "";
buttons += Left == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Left" : ""; buttons += left == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Left" : "";
buttons += Right == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Right" : ""; buttons += right == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Right" : "";
if (String.IsNullOrEmpty(buttons)) if (String.IsNullOrEmpty(buttons))
buttons = "None"; buttons = "None";
@ -70,20 +80,17 @@ namespace ANX.Framework.Input
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
if (obj is GamePadDPad) return obj is GamePadDPad && this == (GamePadDPad)obj;
return this == (GamePadDPad)obj;
return false;
} }
public static bool operator ==(GamePadDPad lhs, GamePadDPad rhs) public static bool operator ==(GamePadDPad lhs, GamePadDPad rhs)
{ {
return lhs.Buttons == rhs.Buttons; return lhs.up == rhs.up && lhs.down == rhs.down && lhs.left == rhs.left && lhs.right == rhs.right;
} }
public static bool operator !=(GamePadDPad lhs, GamePadDPad rhs) public static bool operator !=(GamePadDPad lhs, GamePadDPad rhs)
{ {
return lhs.Buttons != rhs.Buttons; return lhs.up != rhs.up || lhs.down != rhs.down || lhs.left != rhs.left || lhs.right != rhs.right;
} }
} }
} }

View File

@ -7,6 +7,7 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)] [TestState(TestStateAttribute.TestState.Tested)]
public enum GamePadDeadZone : byte public enum GamePadDeadZone : byte
{ {

View File

@ -1,4 +1,5 @@
using System; using System;
using System.Linq;
using ANX.Framework.NonXNA.Development; using ANX.Framework.NonXNA.Development;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
@ -8,7 +9,8 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[TestState(TestStateAttribute.TestState.Untested)] [Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)]
public struct GamePadState public struct GamePadState
{ {
#region Private #region Private
@ -31,22 +33,14 @@ namespace ANX.Framework.Input
get { return this.dPad; } get { return this.dPad; }
} }
public bool IsConnected public bool IsConnected { get; internal set; }
{ public int PacketNumber { get; internal set; }
get;
internal set;
}
public int PacketNumber public GamePadThumbSticks ThumbSticks
{
get;
internal set;
}
public GamePadThumbSticks ThumbSticks
{ {
get { return this.thumbSticks; } get { return this.thumbSticks; }
} }
public GamePadTriggers Triggers public GamePadTriggers Triggers
{ {
get { return this.triggers; } get { return this.triggers; }
@ -60,11 +54,34 @@ namespace ANX.Framework.Input
this.triggers = triggers; this.triggers = triggers;
this.buttons = buttons; this.buttons = buttons;
this.dPad = dPad; this.dPad = dPad;
this.buttonsValue = this.buttons.Buttons | this.dPad.Buttons;
AddToBitfieldIfPressed(Input.Buttons.A, buttons.A);
AddToBitfieldIfPressed(Input.Buttons.B, buttons.B);
AddToBitfieldIfPressed(Input.Buttons.X, buttons.X);
AddToBitfieldIfPressed(Input.Buttons.Y, buttons.Y);
AddToBitfieldIfPressed(Input.Buttons.BigButton, buttons.BigButton);
AddToBitfieldIfPressed(Input.Buttons.Back, buttons.Back);
AddToBitfieldIfPressed(Input.Buttons.Start, buttons.Start);
AddToBitfieldIfPressed(Input.Buttons.RightStick, buttons.RightStick);
AddToBitfieldIfPressed(Input.Buttons.LeftStick, buttons.LeftStick);
AddToBitfieldIfPressed(Input.Buttons.RightShoulder, buttons.RightShoulder);
AddToBitfieldIfPressed(Input.Buttons.LeftShoulder, buttons.LeftShoulder);
AddToBitfieldIfPressed(Input.Buttons.DPadUp, dPad.Up);
AddToBitfieldIfPressed(Input.Buttons.DPadDown, dPad.Down);
AddToBitfieldIfPressed(Input.Buttons.DPadLeft, dPad.Left);
AddToBitfieldIfPressed(Input.Buttons.DPadRight, dPad.Right);
this.IsConnected = true; this.IsConnected = true;
this.PacketNumber = 0; this.PacketNumber = 0;
} }
private void AddToBitfieldIfPressed(Buttons button, ButtonState state)
{
if (state == ButtonState.Pressed)
buttonsValue |= button;
}
public GamePadState(Vector2 leftThumbStick, Vector2 rightThumbStick, float leftTrigger, float rightTrigger, public GamePadState(Vector2 leftThumbStick, Vector2 rightThumbStick, float leftTrigger, float rightTrigger,
params Buttons[] buttons) params Buttons[] buttons)
: this() : this()
@ -72,11 +89,9 @@ namespace ANX.Framework.Input
this.thumbSticks = new GamePadThumbSticks(leftThumbStick, rightThumbStick); this.thumbSticks = new GamePadThumbSticks(leftThumbStick, rightThumbStick);
this.triggers = new GamePadTriggers(leftTrigger, rightTrigger); this.triggers = new GamePadTriggers(leftTrigger, rightTrigger);
Buttons buttonField = 0; Buttons buttonField = buttons.Aggregate<Buttons, Buttons>(0, (current, t) => current | t);
for (int i = 0; i < buttons.Length; i++)
buttonField |= buttons[i]; this.buttonsValue = buttonField;
this.buttonsValue = buttonField;
this.IsConnected = true; this.IsConnected = true;
this.PacketNumber = 0; this.PacketNumber = 0;
@ -86,25 +101,27 @@ namespace ANX.Framework.Input
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
if (obj is GamePadState) return obj is GamePadState && this == (GamePadState)obj;
return this == (GamePadState)obj;
return false;
} }
public static bool operator ==(GamePadState lhs, GamePadState rhs) public static bool operator ==(GamePadState lhs, GamePadState rhs)
{ {
return lhs.buttonsValue == rhs.buttonsValue; return lhs.IsConnected == rhs.IsConnected && lhs.PacketNumber == rhs.PacketNumber &&
lhs.thumbSticks == rhs.thumbSticks && lhs.triggers == rhs.triggers && lhs.buttons == rhs.buttons &&
lhs.dPad == rhs.dPad;
} }
public static bool operator !=(GamePadState lhs, GamePadState rhs) public static bool operator !=(GamePadState lhs, GamePadState rhs)
{ {
return lhs.buttonsValue != rhs.buttonsValue; return lhs.IsConnected != rhs.IsConnected || lhs.PacketNumber != rhs.PacketNumber ||
lhs.thumbSticks != rhs.thumbSticks || lhs.triggers != rhs.triggers || lhs.buttons != rhs.buttons ||
lhs.dPad != rhs.dPad;
} }
public override int GetHashCode() public override int GetHashCode()
{ {
return (int)buttonsValue; return thumbSticks.GetHashCode() ^ triggers.GetHashCode() ^ (buttons.GetHashCode() ^ IsConnected.GetHashCode()) ^
(dPad.GetHashCode() ^ PacketNumber.GetHashCode());
} }
public override string ToString() public override string ToString()
@ -114,12 +131,12 @@ namespace ANX.Framework.Input
public bool IsButtonDown(Buttons button) public bool IsButtonDown(Buttons button)
{ {
return (this.buttonsValue & button) == button; return (buttonsValue & button) == button;
} }
public bool IsButtonUp(Buttons button) public bool IsButtonUp(Buttons button)
{ {
return (this.buttonsValue & button) != button; return (buttonsValue & button) != button;
} }
} }
} }

View File

@ -1,4 +1,5 @@
using System; using System;
using ANX.Framework.NonXNA;
using ANX.Framework.NonXNA.Development; using ANX.Framework.NonXNA.Development;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
@ -7,14 +8,13 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[TestState(TestStateAttribute.TestState.Untested)] [Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)]
public struct GamePadThumbSticks public struct GamePadThumbSticks
{ {
#region Private private readonly Vector2 left;
private Vector2 left; private readonly Vector2 right;
private Vector2 right;
#endregion
public Vector2 Left public Vector2 Left
{ {
@ -49,7 +49,7 @@ namespace ANX.Framework.Input
public override int GetHashCode() public override int GetHashCode()
{ {
return left.GetHashCode() ^ right.GetHashCode(); return HashHelper.GetGCHandleHashCode(this);
} }
public override string ToString() public override string ToString()

View File

@ -1,4 +1,5 @@
using System; using System;
using ANX.Framework.NonXNA;
using ANX.Framework.NonXNA.Development; using ANX.Framework.NonXNA.Development;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
@ -8,27 +9,37 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[TestState(TestStateAttribute.TestState.Untested)] [Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)]
public struct GamePadTriggers public struct GamePadTriggers
{ {
public float Left { get; private set; } private readonly float left;
public float Right { get; private set; } private readonly float right;
public float Left
{
get { return left; }
}
public float Right
{
get { return right; }
}
public GamePadTriggers(float leftTrigger, float rightTrigger) public GamePadTriggers(float leftTrigger, float rightTrigger)
: this()
{ {
Left = MathHelper.Clamp(leftTrigger, 0f, 1f); left = MathHelper.Clamp(leftTrigger, 0f, 1f);
Right = MathHelper.Clamp(rightTrigger, 0f, 1f); right = MathHelper.Clamp(rightTrigger, 0f, 1f);
} }
public override int GetHashCode() public override int GetHashCode()
{ {
return Left.GetHashCode() ^ Right.GetHashCode(); return HashHelper.GetGCHandleHashCode(this);
} }
public override string ToString() public override string ToString()
{ {
return String.Format("{{Left:{0} Right:{1}}}", Left, Right); return String.Format("{{Left:{0} Right:{1}}}", left, right);
} }
public override bool Equals(object obj) public override bool Equals(object obj)
@ -38,12 +49,12 @@ namespace ANX.Framework.Input
public static bool operator ==(GamePadTriggers lhs, GamePadTriggers rhs) public static bool operator ==(GamePadTriggers lhs, GamePadTriggers rhs)
{ {
return lhs.Left == rhs.Left && lhs.Right == rhs.Right; return lhs.left == rhs.left && lhs.right == rhs.right;
} }
public static bool operator !=(GamePadTriggers lhs, GamePadTriggers rhs) public static bool operator !=(GamePadTriggers lhs, GamePadTriggers rhs)
{ {
return lhs.Left != rhs.Left || lhs.Right != rhs.Right; return lhs.left != rhs.left || lhs.right != rhs.right;
} }
} }
} }

View File

@ -9,6 +9,7 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)] [TestState(TestStateAttribute.TestState.Tested)]
public static class Keyboard public static class Keyboard
{ {

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using ANX.Framework.NonXNA.Development; using ANX.Framework.NonXNA.Development;
// This file is part of the ANX.Framework created by the // This file is part of the ANX.Framework created by the
@ -8,13 +9,12 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[TestState(TestStateAttribute.TestState.Untested)] [Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)]
public struct KeyboardState public struct KeyboardState
{ {
#region Private
private readonly KeyState[] keyState; private readonly KeyState[] keyState;
#endregion
public KeyState this[Keys key] public KeyState this[Keys key]
{ {
@ -40,7 +40,16 @@ namespace ANX.Framework.Input
public override int GetHashCode() public override int GetHashCode()
{ {
throw new NotImplementedException(); var results = new uint[8];
for (int index = 0; index < keyState.Length; index++)
if (keyState[index] == KeyState.Down)
{
uint num = 1u << index;
int resultIndex = index >> 5;
results[resultIndex] |= num & 4294967295u;
}
return results.Aggregate(0, (current, u) => current ^ u.GetHashCode());
} }
public override bool Equals(object obj) public override bool Equals(object obj)
@ -49,32 +58,16 @@ namespace ANX.Framework.Input
} }
public static bool operator ==(KeyboardState lhs, KeyboardState rhs) public static bool operator ==(KeyboardState lhs, KeyboardState rhs)
{
return lhs.keyState.Length == rhs.keyState.Length && !lhs.keyState.Where((t, i) => t != rhs.keyState[i]).Any();
}
public static bool operator !=(KeyboardState lhs, KeyboardState rhs)
{ {
if (lhs.keyState.Length != rhs.keyState.Length) return lhs.keyState.Length != rhs.keyState.Length || lhs.keyState.Where((t, i) => t != rhs.keyState[i]).Any();
return false;
for (int i = 0; i < lhs.keyState.Length; i++)
if (lhs.keyState[i] != rhs.keyState[i])
return false;
return true;
} }
public static bool operator !=(KeyboardState lhs, KeyboardState rhs) public Keys[] GetPressedKeys()
{
if (lhs.keyState.Length == rhs.keyState.Length)
{
for (int i = 0; i < lhs.keyState.Length; i++)
if (lhs.keyState[i] != rhs.keyState[i])
return true;
return false;
}
return true;
}
public Keys[] GetPressedKeys()
{ {
var result = new List<Keys>(); var result = new List<Keys>();
for (int i = 0; i < keyState.Length; ++i) for (int i = 0; i < keyState.Length; ++i)
@ -93,6 +86,5 @@ namespace ANX.Framework.Input
{ {
this.keyState[(int)key] = KeyState.Up; this.keyState[(int)key] = KeyState.Up;
} }
} }
} }

View File

@ -8,7 +8,8 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input namespace ANX.Framework.Input
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)] [TestState(TestStateAttribute.TestState.Tested)]
public static class Mouse public static class Mouse
{ {

View File

@ -11,7 +11,8 @@ namespace ANX.Framework.Input
[Serializable] [Serializable]
#endif #endif
[PercentageComplete(100)] [PercentageComplete(100)]
[TestState(TestStateAttribute.TestState.Untested)] [Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)]
public struct MouseState public struct MouseState
{ {
public ButtonState LeftButton { get; private set; } public ButtonState LeftButton { get; private set; }
@ -63,13 +64,10 @@ namespace ANX.Framework.Input
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
if (obj != null && obj is MouseState) return obj is MouseState && this == (MouseState)obj;
return this == (MouseState)obj;
return false;
} }
public override int GetHashCode() public override int GetHashCode()
{ {
return X.GetHashCode() ^ Y.GetHashCode() ^ LeftButton.GetHashCode() ^ RightButton.GetHashCode() ^ return X.GetHashCode() ^ Y.GetHashCode() ^ LeftButton.GetHashCode() ^ RightButton.GetHashCode() ^
MiddleButton.GetHashCode() ^ XButton1.GetHashCode() ^ XButton2.GetHashCode() ^ ScrollWheelValue.GetHashCode(); MiddleButton.GetHashCode() ^ XButton1.GetHashCode() ^ XButton2.GetHashCode() ^ ScrollWheelValue.GetHashCode();

View File

@ -8,6 +8,7 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input.Touch namespace ANX.Framework.Input.Touch
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)] [TestState(TestStateAttribute.TestState.Tested)]
[Flags] [Flags]
public enum GestureType public enum GestureType

View File

@ -7,6 +7,7 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input.Touch namespace ANX.Framework.Input.Touch
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)] [TestState(TestStateAttribute.TestState.Tested)]
public enum TouchLocationState public enum TouchLocationState
{ {

View File

@ -8,7 +8,8 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input.Touch namespace ANX.Framework.Input.Touch
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Untested)] [TestState(TestStateAttribute.TestState.Untested)]
public static class TouchPanel public static class TouchPanel
{ {

View File

@ -7,6 +7,7 @@ using ANX.Framework.NonXNA.Development;
namespace ANX.Framework.Input.Touch namespace ANX.Framework.Input.Touch
{ {
[PercentageComplete(100)] [PercentageComplete(100)]
[Developer("AstrorEnales")]
[TestState(TestStateAttribute.TestState.Tested)] [TestState(TestStateAttribute.TestState.Tested)]
public struct TouchPanelCapabilities public struct TouchPanelCapabilities
{ {