diff --git a/ANX.Framework.TestCenter/ANX.Framework.TestCenter.csproj b/ANX.Framework.TestCenter/ANX.Framework.TestCenter.csproj
index 378203a8..14375bea 100644
--- a/ANX.Framework.TestCenter/ANX.Framework.TestCenter.csproj
+++ b/ANX.Framework.TestCenter/ANX.Framework.TestCenter.csproj
@@ -70,6 +70,7 @@
+
diff --git a/ANX.Framework.TestCenter/AssertHelper.cs b/ANX.Framework.TestCenter/AssertHelper.cs
index bc1eda46..6708fd83 100644
--- a/ANX.Framework.TestCenter/AssertHelper.cs
+++ b/ANX.Framework.TestCenter/AssertHelper.cs
@@ -168,6 +168,12 @@ using ANXGamePadButtons = ANX.Framework.Input.GamePadButtons;
using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState;
using ANXButtonState = ANX.Framework.Input.ButtonState;
+
+using XNAKeyboardState = Microsoft.Xna.Framework.Input.KeyboardState;
+using ANXKeyboardState = ANX.Framework.Input.KeyboardState;
+
+using XNAKeys = Microsoft.Xna.Framework.Input.Keys;
+using ANXKeys = ANX.Framework.Input.Keys;
#endregion // Datatype usings
namespace ANX.Framework.TestCenter
@@ -943,7 +949,24 @@ namespace ANX.Framework.TestCenter
Assert.Fail(String.Format("{0} failed: xna({1}) anx({2})", test, xna.ToString(), anx.ToString()));
}
}
-
+
+ public static void ConvertEquals(XNAKeys[] xna, ANXKeys[] anx, String test)
+ {
+ if (xna.Length!=anx.Length)
+ {
+ Assert.Fail(String.Format("{0} failed: xna({1}) anx({2})", test, xna.Length.ToString(), anx.Length.ToString()));
+ }
+ for (int i = 0; i < xna.Length; i++)
+ {
+ if ((int)xna[i]!=(int)anx[i])
+ {
+ Assert.Fail(String.Format("{0} failed: xna({1}) anx({2})", test, xna[i].ToString(), anx[i].ToString()));
+ }
+ }
+ Assert.Pass(test + " passed");
+ }
#endregion
+
+
}
}
diff --git a/ANX.Framework.TestCenter/Strukturen/Input/KeyboardStateTest.cs b/ANX.Framework.TestCenter/Strukturen/Input/KeyboardStateTest.cs
new file mode 100644
index 00000000..339a4ef7
--- /dev/null
+++ b/ANX.Framework.TestCenter/Strukturen/Input/KeyboardStateTest.cs
@@ -0,0 +1,354 @@
+#region Using Statements
+using System;
+using System.IO;
+using ANX.Framework.NonXNA;
+using NUnit.Framework;
+#endregion // Using Statements
+
+using XNAKeyboardState = Microsoft.Xna.Framework.Input.KeyboardState;
+using ANXKeyboardState = ANX.Framework.Input.KeyboardState;
+
+using XNAKeys = Microsoft.Xna.Framework.Input.Keys;
+using ANXKeys = ANX.Framework.Input.Keys;
+
+
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+namespace ANX.Framework.TestCenter.Strukturen.Input
+{
+ [TestFixture]
+ class KeyboardStateTest
+ {
+#region Input
+ static object[] Key =
+ {
+ 0, 8,9,13,19,20,21,25,27,28,
+ 29,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 144,
+ 145,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 202,
+ 203,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 226,
+ 229,
+ 242,
+ 243,
+ 244,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 253,
+ 254
+ };
+
+ static object[] Key10 =
+ {
+ new int[]{9,32,33,34,35,36,37,38,39,40},
+ new int[]{9,9,9,34,35,36,37,38,39,40},
+ };
+#endregion
+
+ [TestCaseSource("Key")]
+ public void IsKeyDown(int key)
+ {
+ ANXKeys[] anxkey = new ANXKeys[1];
+ XNAKeys[] xnakey = new XNAKeys[1];
+ anxkey[0] = (ANXKeys)key;
+ xnakey[0] = (XNAKeys)key;
+ ANXKeyboardState anx = new ANXKeyboardState(anxkey);
+ XNAKeyboardState xna = new XNAKeyboardState(xnakey);
+ AssertHelper.ConvertEquals(xna.IsKeyDown((XNAKeys)key), anx.IsKeyDown((ANXKeys)key),"IsKeyDown" );
+ }
+
+ [TestCaseSource("Key")]
+ public void IsKeyUp(int key)
+ {
+ ANXKeys[] anxkey = new ANXKeys[1];
+ XNAKeys[] xnakey = new XNAKeys[1];
+ anxkey[0] = (ANXKeys)key;
+ xnakey[0] = (XNAKeys)key;
+ ANXKeyboardState anx = new ANXKeyboardState(anxkey);
+ XNAKeyboardState xna = new XNAKeyboardState(xnakey);
+ AssertHelper.ConvertEquals(xna.IsKeyUp((XNAKeys)key), anx.IsKeyUp((ANXKeys)key), "IsKeyUp");
+ }
+
+ [TestCaseSource("Key10")]
+ public void opEqual(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);
+ ANXKeyboardState anx2 = new ANXKeyboardState(anxkey);
+ XNAKeyboardState xna2 = new XNAKeyboardState(xnakey);
+
+ AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "opequal");
+ }
+
+ [TestCaseSource("Key10")]
+ public void opEqual2(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);
+ anxkey[9] = (ANXKeys)9;
+ xnakey[9] = (XNAKeys)9;
+ XNAKeyboardState xna2 = new XNAKeyboardState(xnakey);
+ ANXKeyboardState anx2 = new ANXKeyboardState(anxkey);
+
+ AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "opequal2");
+ }
+
+ [TestCaseSource("Key10")]
+ public void opEqual3(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);
+ ANXKeyboardState anx2 = new ANXKeyboardState(new ANXKeys[0]);
+ XNAKeyboardState xna2 = new XNAKeyboardState(new XNAKeys[0]);
+
+ AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "opequal3");
+ }
+
+ [TestCaseSource("Key10")]
+ public void opInEqual3(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);
+ ANXKeyboardState anx2 = new ANXKeyboardState(new ANXKeys[0]);
+ XNAKeyboardState xna2 = new XNAKeyboardState(new XNAKeys[0]);
+
+ AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "opequal3");
+ }
+
+ [TestCaseSource("Key10")]
+ public void GetPressedKeys(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.GetPressedKeys(), anx.GetPressedKeys(), "GetPressedKeys");
+ }
+ }
+}