コード例 #1
0
		public void SizeTest()
		{
			var dataObjectValue = new DataObjectValue();
			var sizeOfDataObjectValue = Marshal.SizeOf(dataObjectValue);

			Assert.AreEqual(8 + IntPtr.Size, sizeOfDataObjectValue);
		}
コード例 #2
0
		public void BooleanValuesCastTest()
		{
			var testedTrueValue = new DataObjectValue(true);
			AssertCast(testedTrueValue, true, 1, 1.0f, "True");

			var testedFalseValue = new DataObjectValue(false);
			AssertCast(testedFalseValue, false, 0, 0.0f, "False");
		}
コード例 #3
0
		public void DefalutValuesCastTest()
		{
			var testedValue1 = default(DataObjectValue);
			AssertCast(testedValue1, false, 0, 0f, null);

			var testedValue2 = new DataObjectValue();
			AssertCast(testedValue2, false, 0, 0f, null);
		}
コード例 #4
0
		public void IntValuesCastTest()
		{
			var testedValue1 = DataObjectValue.Zero;
			AssertCast(testedValue1, false, 0, 0.0f, "0");

			var testedValue2 = new DataObjectValue(-1);
			AssertCast(testedValue2, false, -1, -1.0f, "-1");

			var testedValue3 = new DataObjectValue(1);
			AssertCast(testedValue3, true, 1, 1f, "1");

			var testedValue4 = new DataObjectValue(5);
			AssertCast(testedValue4, true, 5, 5f, "5");
		}
コード例 #5
0
		public void SingleValuesCastTest()
		{
			var testedValue1 = new DataObjectValue(0f);
			AssertCast(testedValue1, false, 0, 0.0f, "0");

			var testedValue2 = new DataObjectValue(-1f);
			AssertCast(testedValue2, false, -1, -1.0f, "-1");

			var testedValue3 = new DataObjectValue(1f);
			AssertCast(testedValue3, true, 1, 1f, "1");

			var testedValue4 = new DataObjectValue(5f);
			AssertCast(testedValue4, true, 5, 5f, "5");

			var testedValue5 = new DataObjectValue(0.1f);
			AssertCast(testedValue5, false, 0, 0.1f, "0.1");

			var testedValue6 = new DataObjectValue(0.6f);
			AssertCast(testedValue6, false, 0, 0.6f, "0.6");

			var testedValue7 = new DataObjectValue(4.6f);
			AssertCast(testedValue7, true, 4, 4.6f, "4.6");
		}
コード例 #6
0
		private void AssertCast(DataObjectValue value, Int32 expectedValue)
		{
			var testedValue = (Int32)value;
			Assert.IsTrue(testedValue == expectedValue, $"Value '{value.ToString()}' not equals to expected {nameof(Int32)} value '{expectedValue}'");
		}
コード例 #7
0
		private void AssertExpectedValueConsistenscy(DataObjectValue expectedBooleanValue, DataObjectValue expectedIntegerValue, DataObjectValue expectedFloatValue, DataObjectValue expectedStringValue)
		{
			DataObjectValueEqualityTests.AssertAreEqual(expectedBooleanValue, expectedIntegerValue, skipHashCheck: true);
			DataObjectValueEqualityTests.AssertAreEqual(expectedBooleanValue, expectedFloatValue, skipHashCheck: true);
			DataObjectValueEqualityTests.AssertAreEqual(expectedBooleanValue, expectedStringValue, skipHashCheck: true);

			DataObjectValueEqualityTests.AssertAreEqual(expectedIntegerValue, expectedBooleanValue, skipHashCheck: true);
			//DataObjectValueEqualityTests.AssertAreEqual(expectedIntegerValue, expectedFloatValue, skipHashCheck: true);
			//DataObjectValueEqualityTests.AssertAreEqual(expectedIntegerValue, expectedStringValue, skipHashCheck: true);

			DataObjectValueEqualityTests.AssertAreEqual(expectedFloatValue, expectedBooleanValue, skipHashCheck: true);
			//DataObjectValueEqualityTests.AssertAreEqual(expectedFloatValue, expectedIntegerValue, skipHashCheck: true);
			//DataObjectValueEqualityTests.AssertAreEqual(expectedFloatValue, expectedStringValue, skipHashCheck: true);

			DataObjectValueEqualityTests.AssertAreEqual(expectedStringValue, expectedBooleanValue, skipHashCheck: true);
			//DataObjectValueEqualityTests.AssertAreEqual(expectedStringValue, expectedIntegerValue, skipHashCheck: true);
			//DataObjectValueEqualityTests.AssertAreEqual(expectedStringValue, expectedFloatValue, skipHashCheck: true);
		}
コード例 #8
0
		private void AssertCast(DataObjectValue value, Boolean expectedBooleanValue, Int32 expectedIntegerValue, Single expectedFloatValue, String expectedStringValue)
		{
			AssertExpectedValueConsistenscy(expectedBooleanValue, expectedIntegerValue, expectedFloatValue, expectedStringValue);

			AssertCast(value, expectedBooleanValue);
			AssertCast(value, expectedIntegerValue);
			AssertCast(value, expectedFloatValue);
			AssertCast(value, expectedStringValue);
		}
コード例 #9
0
		private void AssertCast(DataObjectValue value, String expectedValue)
		{
			var testedValue = (String)value;
			//var toStringValue = value.ToString();
			//Assert.IsTrue(testedValue == toStringValue, $"Different result of '{nameof(String.ToString)}' method result and explict cast to '{nameof(String)}'");
			Assert.IsTrue(testedValue == expectedValue, $"Value '{value.ToString()}' not equals to expected {nameof(String)} value '{expectedValue}'");
		}
コード例 #10
0
		private static void AssertAreNotEqual(DataObjectValue value1, DataObjectValue value2, Boolean skipHashCheck = false)
		{
			// Hash check
			var value1Hash = value1.GetHashCode();
			var value2Hash = value2.GetHashCode();

			if (!skipHashCheck)
				Assert.IsTrue(value1Hash != value2Hash, $"Same hash codes for '{value1.ToString()}' and '{value2.ToString()}'");

			// Equality operator check
			var areEqualOperatorForward = value1 != value2;
			var areEqualOperatorBackward = value2 != value1;

			Assert.IsTrue(areEqualOperatorForward, $"Value '{value1.ToString()}'(1) equals to value '{value2.ToString()}'(2)");
			Assert.IsTrue(areEqualOperatorBackward, $"Value '{value2.ToString()}'(2) equals to value '{value1.ToString()}'(1)");

			// DataObjectValue.Equals(DataObjectValue) check
			var areEqualForward = value1.Equals(value2);
			var areEqualBackward = value2.Equals(value1);

			Assert.IsFalse(areEqualForward, $"Value '{value1.ToString()}'(1) equals to value '{value2.ToString()}'(2)");
			Assert.IsFalse(areEqualBackward, $"Value '{value2.ToString()}'(2) equals to value '{value1.ToString()}'(1)");
			
			// Object.Equals(Object) override check
			var areEqualToObjectForward = value1.Equals((Object)value2);
			var areEqialToObjectBackward = value2.Equals((Object)value1);

			Assert.IsFalse(areEqualToObjectForward, $"Value '{value1.ToString()}'(1) equals to object '{value2.ToString()}'(2)");
			Assert.IsFalse(areEqialToObjectBackward, $"Value '{value2.ToString()}'(2) equals to object '{value1.ToString()}'(1)");
		}
コード例 #11
0
		private static void AssertAdd(DataObjectValue a, DataObjectValue b, DataObjectValue expected)
		{
			var add1 = a.Add(b);
			//var add2 = b.Add(a);
			Assert.IsTrue(add1 == expected, $"'{a.ToString()}'.Add('{b.ToString()}') returns '{add1.ToString()}' | expected: '{expected.ToString()}'");
			//Assert.IsTrue(add2 == expected, $"'{b.ToString()}'.Add('{a.ToString()}') returns '{add2.ToString()}' | expected: '{expected.ToString()}'");

			var sum1 = a + b;
			//var sum2 = b + a;
			Assert.IsTrue(sum1 == expected, $"'{a.ToString()}'+'{b.ToString()}'='{sum1.ToString()}' | expected: '{expected.ToString()}'");
			//Assert.IsTrue(sum2 == expected, $"'{b.ToString()}'+'{a.ToString()}'='{sum2.ToString()}' | expected: '{expected.ToString()}'");
		}
コード例 #12
0
		private static void AssertComparison(DataObjectValue value1, DataObjectValue value2, Int32 expectedComparionResult)
		{
			var forwardComparison = value1.CompareTo(value2);
			Assert.IsTrue(forwardComparison == expectedComparionResult, $"Comparison result of '{value1.ToString()}' and '{value2.ToString()}' is not '{expectedComparionResult}'. Actual value is '{forwardComparison}'");

			var backwardComparison = value2.CompareTo(value1);
			var backwardExpectedResult = -1 * expectedComparionResult;
			Assert.IsTrue(backwardComparison == backwardExpectedResult, $"Comparison result of '{value2.ToString()}' and '{value1.ToString()}' is not '{backwardExpectedResult}'. Actual value is '{backwardComparison}'");
		}