2002-05-05 Tim Coleman <tim@timcoleman.com>
authorTim Coleman <tim@mono-cvs.ximian.com>
Sun, 5 May 2002 18:38:41 +0000 (18:38 -0000)
committerTim Coleman <tim@mono-cvs.ximian.com>
Sun, 5 May 2002 18:38:41 +0000 (18:38 -0000)
        * TheTests.cs:
        * System.Data.SqlTypes/SqlInt32Test.cs:
                More test cases for System.Data.SqlTypes.SqlInt32

svn path=/trunk/mcs/; revision=4316

mcs/class/System.Data/Test/ChangeLog
mcs/class/System.Data/Test/System.Data.SqlTypes/SqlInt32Test.cs
mcs/class/System.Data/Test/TheTests.cs

index c0f73e0eaa322a3be0285f0ef501f9efe6d20e4c..bde64e03039ce4021616fac4186db6ed58aa7079 100644 (file)
@@ -1,3 +1,8 @@
+2002-05-05  Tim Coleman <tim@timcoleman.com>
+       * TheTests.cs:
+       * System.Data.SqlTypes/SqlInt32Test.cs:
+               More test cases for System.Data.SqlTypes.SqlInt32
+
 2002-05-03  Tim Coleman <tim@timcoleman.com>
        * Added ChangeLog to test dir
        * Added NUnit framework necessary for make test
index 4b464e47896e1fc62dac49865a70035b93285629..bc8fe7ce1c41228f17a4e82811a8d3b053a1a555 100644 (file)
@@ -7,12 +7,13 @@
 \r
 using NUnit.Framework;\r
 using System;\r
+using System.Data;\r
 using System.Data.SqlTypes;\r
 \r
 namespace MonoTests.System.Data.SqlTypes\r
 {\r
-\r
-       public class SqlInt32Test : TestCase {\r
+       public class SqlInt32Test : TestCase \r
+       {\r
                \r
                public SqlInt32Test() : base ("System.Data.SqlTypes.SqlInt32") {}\r
                public SqlInt32Test(string name) : base(name) {}\r
@@ -27,9 +28,385 @@ namespace MonoTests.System.Data.SqlTypes
                        }\r
                }\r
 \r
-               public void TestCreate ()  {\r
-                       SqlInt32 foo = new SqlInt32 (0);\r
-                       AssertEquals( "Test explicit cast to int", (int)foo, 0);\r
+               public void TestCreate ()  \r
+               {\r
+                       SqlInt32 foo = new SqlInt32 (5);\r
+                       AssertEquals ("Test explicit cast to int", (int)foo, 5);\r
+               }\r
+\r
+               public void TestAdd () \r
+               {\r
+                       int a = 5;\r
+                       int b = 7;\r
+                       \r
+                       SqlInt32 x;\r
+                       SqlInt32 y ;\r
+\r
+                       x = new SqlInt32 (a);\r
+                       y = new SqlInt32 (b);\r
+                       z = x + y;\r
+                       AssertEquals ("Addition operator does not work correctly", z.Value, a + b);\r
+                       z = SqlInt32.Add (x, y);\r
+                       AssertEquals ("Addition function does not work correctly", z.Value, a + b);\r
+               }\r
+\r
+               public void TestBitwiseAnd () \r
+               {\r
+                       int a = 5;\r
+                       int b = 7;\r
+                       \r
+                       SqlInt32 x = new SqlInt32 (a);\r
+                       SqlInt32 y = new SqlInt32 (b);\r
+                       SqlInt32 z = x & y;\r
+                       AssertEquals ("Bitwise And operator does not work correctly", z.Value, a & b);\r
+                       z = SqlInt32.BitwiseAnd (x, y);\r
+                       AssertEquals ("Bitwise And function does not work correctly", z.Value, a & b);\r
+               }\r
+\r
+               public void TestBitwiseOr () \r
+               {\r
+                       int a = 5;\r
+                       int b = 7;\r
+                       \r
+                       SqlInt32 x = new SqlInt32 (a);\r
+                       SqlInt32 y = new SqlInt32 (b);\r
+                       SqlInt32 z = x | y;\r
+                       AssertEquals ("Bitwise Or operator does not work correctly", z.Value, a | b);\r
+                       z = SqlInt32.BitwiseOr (x, y);\r
+                       AssertEquals ("Bitwise Or function does not work correctly", z.Value, a | b);\r
+               }\r
+\r
+               public void TestDivide () \r
+               {\r
+                       int a = 5;\r
+                       int b = 7;\r
+                       \r
+                       SqlInt32 x = new SqlInt32 (a);\r
+                       SqlInt32 y = new SqlInt32 (b);\r
+                       SqlInt32 z = x / y;\r
+                       AssertEquals ("Division operator does not work correctly", z.Value, a / b);\r
+                       z = SqlInt32.Divide (x, y);\r
+                       AssertEquals ("Division function does not work correctly", z.Value, a / b);\r
+               }\r
+               \r
+               public void TestEquals ()\r
+               {\r
+                       SqlInt32 x;\r
+                       SqlInt32 y;\r
+                       \r
+                       // Case 1: either is SqlInt32.Null\r
+                       x = SqlInt32.Null;\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Equality operator didn't return Null when one was Null.", x == y, SqlBoolean.Null);\r
+                       AssertEquals ("Equality function didn't return Null when one was Null.", SqlInt32.Equals (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 2: both are SqlInt32.Null\r
+                       y = SqlInt32.Null;\r
+                       AssertEquals ("Equality operator didn't return Null when both were Null.", x == y, SqlBoolean.Null);\r
+                       AssertEquals ("Equality function didn't return Null when both were Null.", SqlInt32.Equals (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 3: both are equal\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Equality operator didn't return true when they were equal.", x == y, SqlBoolean.True);\r
+                       AssertEquals ("Equality function didn't return true when they were equal.", SqlInt32.Equals (x, y), SqlBoolean.True);\r
+\r
+                       // Case 4: inequality\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (6);\r
+                       AssertEquals ("Equality operator didn't return false when they were not equal.", x == y, SqlBoolean.False);\r
+                       AssertEquals ("Equality function didn't return false when they were not equal.", SqlInt32.Equals (x, y), SqlBoolean.False);\r
+               }\r
+\r
+               public void TestGreaterThan ()\r
+               {\r
+                       SqlInt32 x;\r
+                       SqlInt32 y;\r
+                       \r
+                       // Case 1: either is SqlInt32.Null\r
+                       x = SqlInt32.Null;\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Greater Than operator didn't return Null when one was Null.", x > y, SqlBoolean.Null);\r
+                       AssertEquals ("Greater Than function didn't return Null when one was Null.", SqlInt32.GreaterThan (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 2: both are SqlInt32.Null\r
+                       y = SqlInt32.Null;\r
+                       AssertEquals ("Greater Than operator didn't return Null when both were Null.", x > y, SqlBoolean.Null);\r
+                       AssertEquals ("Greater Than function didn't return Null when both were Null.", SqlInt32.GreaterThan (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 3: x > y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (4);\r
+                       AssertEquals ("Greater than operator didn't return true when x > y.", x > y, SqlBoolean.True);\r
+                       AssertEquals ("Greater than function didn't return true when x > y.", SqlInt32.GreaterThan (x,y), SqlBoolean.True);\r
+\r
+                       // Case 4: x < y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (6);\r
+                       AssertEquals ("Greater than operator didn't return false when x < y.", x > y, SqlBoolean.False);\r
+                       AssertEquals ("Greater than function didn't return false when x < y.", SqlInt32.GreaterThan (x,y), SqlBoolean.False);\r
+               }\r
+\r
+               public void TestGreaterThanOrEqual ()\r
+               {\r
+                       SqlInt32 x;\r
+                       SqlInt32 y;\r
+                       \r
+                       // Case 1: either is SqlInt32.Null\r
+                       x = SqlInt32.Null;\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Greater Than Or Equal operator didn't return Null when one was Null.", x >= y, SqlBoolean.Null);\r
+                       AssertEquals ("Greater Than Or Equal function didn't return Null when one was Null.", SqlInt32.GreaterThanOrEqual (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 2: both are SqlInt32.Null\r
+                       y = SqlInt32.Null;\r
+                       AssertEquals ("Greater Than Or Equal operator didn't return Null when both were Null.", x >= y, SqlBoolean.Null);\r
+                       AssertEquals ("Greater Than Or Equal function didn't return Null when both were Null.", SqlInt32.GreaterThanOrEqual (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 3: x > y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (4);\r
+                       AssertEquals ("Greater than or equal operator didn't return true when x > y.", x >= y, SqlBoolean.True);\r
+                       AssertEquals ("Greater than or equal function didn't return true when x > y.", SqlInt32.GreaterThanOrEqual (x,y), SqlBoolean.True);\r
+\r
+                       // Case 4: x < y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (6);\r
+                       AssertEquals ("Greater than or equal operator didn't return false when x < y.", x >= y, SqlBoolean.False);\r
+                       AssertEquals ("Greater than or equal function didn't return false when x < y.", SqlInt32.GreaterThanOrEqual (x,y), SqlBoolean.False);\r
+\r
+                       // Case 5: x == y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Greater than or equal operator didn't return true when x == y.", x >= y, SqlBoolean.True);\r
+                       AssertEquals ("Greater than or equal function didn't return true when x == y.", SqlInt32.GreaterThanOrEqual (x,y), SqlBoolean.True);\r
+               }\r
+\r
+               public void TestLessThan ()\r
+               {\r
+                       SqlInt32 x;\r
+                       SqlInt32 y;\r
+                       \r
+                       // Case 1: either is SqlInt32.Null\r
+                       x = SqlInt32.Null;\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Less Than operator didn't return Null when one was Null.", x < y, SqlBoolean.Null);\r
+                       AssertEquals ("Less Than function didn't return Null when one was Null.", SqlInt32.LessThan (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 2: both are SqlInt32.Null\r
+                       y = SqlInt32.Null;\r
+                       AssertEquals ("Less Than operator didn't return Null when both were Null.", x < y, SqlBoolean.Null);\r
+                       AssertEquals ("Less Than function didn't return Null when both were Null.", SqlInt32.LessThan (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 3: x > y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (4);\r
+                       AssertEquals ("Less than operator didn't return false when x > y.", x < y, SqlBoolean.False);\r
+                       AssertEquals ("Less than function didn't return false when x > y.", SqlInt32.LessThan (x,y), SqlBoolean.False);\r
+\r
+                       // Case 4: x < y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (6);\r
+                       AssertEquals ("Less than operator didn't return true when x < y.", x < y, SqlBoolean.True);\r
+                       AssertEquals ("Less than function didn't return true when x < y.", SqlInt32.LessThan (x,y), SqlBoolean.True);\r
+               }\r
+\r
+               public void TestLessThanOrEqual ()\r
+               {\r
+                       SqlInt32 x;\r
+                       SqlInt32 y;\r
+                       \r
+                       // Case 1: either is SqlInt32.Null\r
+                       x = SqlInt32.Null;\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Less Than Or Equal operator didn't return Null when one was Null.", x <= y, SqlBoolean.Null);\r
+                       AssertEquals ("Less Than Or Equal function didn't return Null when one was Null.", SqlInt32.LessThanOrEqual (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 2: both are SqlInt32.Null\r
+                       y = SqlInt32.Null;\r
+                       AssertEquals ("Less Than Or Equal operator didn't return Null when both were Null.", x <= y, SqlBoolean.Null);\r
+                       AssertEquals ("Less Than Or Equal function didn't return Null when both were Null.", SqlInt32.LessThanOrEqual (x, y), SqlBoolean.Null);\r
+\r
+                       // Case 3: x > y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (4);\r
+                       AssertEquals ("Less than or equal operator didn't return false when x > y.", x <= y, SqlBoolean.False);\r
+                       AssertEquals ("Less than or equal function didn't return false when x > y.", SqlInt32.LessThanOrEqual (x,y), SqlBoolean.False);\r
+\r
+                       // Case 4: x < y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (6);\r
+                       AssertEquals ("Less than or equal operator didn't return true when x < y.", x <= y, SqlBoolean.True);\r
+                       AssertEquals ("Less than or equal function didn't return true when x < y.", SqlInt32.LessThanOrEqual (x,y), SqlBoolean.True);\r
+\r
+                       // Case 5: x == y\r
+                       x = new SqlInt32 (5);\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Less than or equal operator didn't return true when x == y.", x <= y, SqlBoolean.True);\r
+                       AssertEquals ("Less than or equal function didn't return true when x == y.", SqlInt32.LessThanOrEqual (x,y), SqlBoolean.True);\r
+               }\r
+\r
+               public void TestMod () \r
+               {\r
+                       int a = 5;\r
+                       int b = 7;\r
+                       \r
+                       SqlInt32 x = new SqlInt32 (a);\r
+                       SqlInt32 y = new SqlInt32 (b);\r
+                       SqlInt32 z = x % y;\r
+                       AssertEquals ("Modulus operator does not work correctly", z.Value, a % b);\r
+                       z = SqlInt32.Mod (x, y);\r
+                       AssertEquals ("Modulus function does not work correctly", z.Value, a % b);\r
+               }\r
+\r
+               public void TestMultiply () \r
+               {\r
+                       int a = 5;\r
+                       int b = 7;\r
+                       \r
+                       SqlInt32 x = new SqlInt32 (a);\r
+                       SqlInt32 y = new SqlInt32 (b);\r
+                       SqlInt32 z = x * y;\r
+                       AssertEquals ("Multiplication operator does not work correctly", z.Value, a * b);\r
+                       z = SqlInt32.Multiply (x, y);\r
+                       AssertEquals ("Multiplication function does not work correctly", z.Value, a * b);\r
+               }\r
+\r
+               public void TestNotEquals () \r
+               {\r
+                       SqlInt32 x;\r
+                       SqlInt32 y;\r
+\r
+                       x = new SqlInt32 (5);\r
+                       y = SqlInt32.Null;\r
+\r
+                       AssertEquals ("Not Equals operator does not return null when one or both of the parameters is Null.", x != y, SqlBoolean.Null);\r
+                       AssertEquals ("Not Equals function does not return null when one or both of the parameters is Null.", SqlInt32.NotEquals (x, y), SqlBoolean.Null);\r
+\r
+                       y = new SqlInt32 (5);\r
+                       AssertEquals ("Not Equals operator does not return false when x == y.", x != y, SqlBoolean.False);\r
+                       AssertEquals ("Not Equals function does not return false when x == y.", SqlInt32.NotEquals (x, y), SqlBoolean.False);\r
+\r
+                       y = new SqlInt32 (6);\r
+                       AssertEquals ("Not Equals operator does not return true when x != y.", x != y, SqlBoolean.True);\r
+                       AssertEquals ("Not Equals function does not return true when x != y.", SqlInt32.NotEquals (x, y), SqlBoolean.True);\r
+               }\r
+       \r
+               public void TestOnesComplement () \r
+               {\r
+                       int a = 5;\r
+                       \r
+                       SqlInt32 x = new SqlInt32 (a);\r
+                       SqlInt32 z = ~x;\r
+                       AssertEquals ("Ones Complement operator does not work correctly", z.Value, ~a);\r
+                       z = SqlInt32.OnesComplement (x);\r
+                       AssertEquals ("Ones Complement function does not work correctly", z.Value, ~a);\r
+               }\r
+               \r
+               public void TestIsNullProperty ()\r
+               {\r
+                       SqlInt32 n = SqlInt32.Null;\r
+                       Assert ("Null is not defined correctly", n.IsNull);\r
+               }\r
+       \r
+               public void TestSubtract () \r
+               {\r
+                       int a = 7;\r
+                       int b = 5;\r
+                       \r
+                       SqlInt32 x = new SqlInt32 (a);\r
+                       SqlInt32 y = new SqlInt32 (b);\r
+                       SqlInt32 z = x - y;\r
+                       AssertEquals ("Subtraction operator does not work correctly", z.Value, a - b);\r
+                       z = SqlInt32.Subtract (x, y);\r
+                       AssertEquals ("Subtraction function does not work correctly", z.Value, a - b);\r
+               }\r
+\r
+               public void TestConversionMethods ()\r
+               {\r
+                       SqlInt32 x;\r
+\r
+                       // Case 1: SqlInt32.Null -> SqlBoolean == SqlBoolean.Null\r
+                       x = SqlInt32.Null;\r
+                       AssertEquals ("SqlInt32.Null -> SqlBoolean does not yield SqlBoolean.Null.", x.ToSqlBoolean (), SqlBoolean.Null );\r
+\r
+                       // Case 2: SqlInt32.Zero -> SqlBoolean == False\r
+                       x = SqlInt32.Zero;\r
+                       AssertEquals ("SqlInt32.Zero -> SqlBoolean does not yield SqlBoolean.False.", x.ToSqlBoolean (), SqlBoolean.False );\r
+               \r
+                       // Case 3: SqlInt32(nonzero) -> SqlBoolean == True\r
+                       x = new SqlInt32 (27);\r
+                       AssertEquals ("SqlInt32 (27) -> SqlBoolean does not yield SqlBoolean.True.", x.ToSqlBoolean (), SqlBoolean.True );\r
+               \r
+                       // Case 4: SqlInt32.Null -> SqlByte == SqlByte.Null\r
+                       x = SqlInt32.Null;\r
+                       AssertEquals ("SqlInt32.Null -> SqlByte does not yield SqlByte.Null.", x.ToSqlByte (), SqlByte.Null );\r
+\r
+                       // Case 5: Test non-null conversion to SqlByte\r
+                       x = new SqlInt32 (27);\r
+                       AssertEquals ("SqlInt32 (27) -> SqlByte does not yield a value of 27", x.ToSqlByte ().Value, (byte)27);\r
+\r
+                       // Case 6: SqlInt32.Null -> SqlDecimal == SqlDecimal.Null\r
+                       x = SqlInt32.Null;\r
+                       AssertEquals ("SqlInt32.Null -> SqlDecimal does not yield SqlDecimal.Null.", x.ToSqlDecimal (), SqlDecimal.Null );\r
+\r
+                       // Case 7: Test non-null conversion to SqlDecimal\r
+                       x = new SqlInt32 (27);\r
+                       AssertEquals ("SqlInt32 (27) -> SqlDecimal does not yield a value of 27", x.ToSqlDecimal ().Value, (decimal)27);\r
+\r
+                       // Case 8: SqlInt32.Null -> SqlDouble == SqlDouble.Null\r
+                       x = SqlInt32.Null;\r
+                       AssertEquals ("SqlInt32.Null -> SqlDouble does not yield SqlDouble.Null.", x.ToSqlDouble (), SqlDouble.Null );\r
+\r
+                       // Case 9: Test non-null conversion to SqlDouble\r
+                       x = new SqlInt32 (27);\r
+                       AssertEquals ("SqlInt32 (27) -> SqlDouble does not yield a value of 27", x.ToSqlDouble ().Value, (double)27);\r
+\r
+                       // Case 10: SqlInt32.Null -> SqlInt16 == SqlInt16.Null\r
+                       x = SqlInt32.Null;\r
+                       AssertEquals ("SqlInt32.Null -> SqlInt16 does not yield SqlInt16.Null.", x.ToSqlInt16 (), SqlInt16.Null );\r
+\r
+                       // Case 11: Test non-null conversion to SqlInt16\r
+                       x = new SqlInt32 (27);\r
+                       AssertEquals ("SqlInt32 (27) -> SqlInt16 does not yield a value of 27", x.ToSqlInt16 ().Value, (short)27);\r
+\r
+                       // Case 12: SqlInt32.Null -> SqlInt64 == SqlInt64.Null\r
+                       x = SqlInt32.Null;\r
+                       AssertEquals ("SqlInt32.Null -> SqlInt64 does not yield SqlInt64.Null.", x.ToSqlInt64 (), SqlInt64.Null );\r
+\r
+                       // Case 13: Test non-null conversion to SqlInt64\r
+                       x = new SqlInt32 (27);\r
+                       AssertEquals ("SqlInt32 (27) -> SqlInt64 does not yield a value of 27", x.ToSqlInt64 ().Value, (long)27);\r
+\r
+                       // Case 14: SqlInt32.Null -> SqlMoney == SqlMoney.Null\r
+                       x = SqlInt32.Null;\r
+                       AssertEquals ("SqlInt32.Null -> SqlMoney does not yield SqlMoney.Null.", x.ToSqlMoney (), SqlMoney.Null );\r
+\r
+                       // Case 15: Test non-null conversion to SqlMoney\r
+                       x = new SqlInt32 (27);\r
+                       AssertEquals ("SqlInt32 (27) -> SqlMoney does not yield a value of 27", x.ToSqlMoney ().Value, (decimal)27);\r
+\r
+                       // Case 16: SqlInt32.Null -> SqlSingle == SqlSingle.Null\r
+                       x = SqlInt32.Null;\r
+                       AssertEquals ("SqlInt32.Null -> SqlSingle does not yield SqlSingle.Null.", x.ToSqlSingle (), SqlSingle.Null );\r
+\r
+                       // Case 17: Test non-null conversion to SqlSingle\r
+                       x = new SqlInt32 (27);\r
+                       AssertEquals ("SqlInt32 (27) -> SqlSingle does not yield a value of 27", x.ToSqlSingle ().Value, (float)27);\r
+               }\r
+       \r
+               public void TestXor () \r
+               {\r
+                       int a = 5;\r
+                       int b = 7;\r
+                       \r
+                       SqlInt32 x = new SqlInt32 (a);\r
+                       SqlInt32 y = new SqlInt32 (b);\r
+                       SqlInt32 z = x ^ y;\r
+                       AssertEquals ("Xor operator does not work correctly", z.Value, a ^ b);\r
+                       z = SqlInt32.Xor (x, y);\r
+                       AssertEquals ("Xor function does not work correctly", z.Value, a ^ b);\r
                }\r
+                       \r
        }\r
 }\r
index 15a7fedf4c0c86ad5d81905a59a87a38fdd5b492..0b5d5581d1c12ab1d31944a5d6cae0df4a658636 100644 (file)
@@ -1,3 +1,7 @@
+// Author: Tim Coleman (tim@timcoleman.com)
+// (C) Copyright 2002 Tim Coleman
+
+
 using NUnit.Framework;
 using System;
 using System.Threading;
@@ -10,6 +14,29 @@ namespace MonoTests.System.Data.SqlTypes
                protected override void RunTest ()
                {
                        TestCreate ();
+
+                       // property tests
+
+                       TestIsNullProperty ();
+
+                       // method tests
+
+                       TestAdd ();
+                       TestBitwiseAnd ();
+                       TestBitwiseOr ();
+                       TestDivide ();
+                       TestEquals ();
+                       TestGreaterThan ();
+                       TestGreaterThanOrEqual ();
+                       TestLessThan ();
+                       TestLessThanOrEqual ();
+                       TestMod ();
+                       TestMultiply ();
+                       TestNotEquals ();
+                       TestOnesComplement ();
+                       TestSubtract ();
+                       TestConversionMethods ();
+                       TestXor ();
                }
        }
 }