public void CharSegment() { char[] b = new char[10]; ArraySegment <char> segment = new(b); var watch = MemoryWatch.Create(); Value value = Value.Create(segment); watch.Validate(); Assert.AreEqual(typeof(ArraySegment <char>), value.Type); Assert.AreEqual(segment, value.As <ArraySegment <char> >()); Assert.AreEqual(segment, (ArraySegment <char>)value.As <object>()); Assert.Throws <InvalidCastException>(() => value.As <char[]>()); segment = new(b, 0, 0); value = Value.Create(segment); Assert.AreEqual(typeof(ArraySegment <char>), value.Type); Assert.AreEqual(segment, value.As <ArraySegment <char> >()); Assert.AreEqual(segment, (ArraySegment <char>)value.As <object>()); Assert.Throws <InvalidCastException>(() => value.As <char[]>()); segment = new(b, 1, 1); value = Value.Create(segment); Assert.AreEqual(typeof(ArraySegment <char>), value.Type); Assert.AreEqual(segment, value.As <ArraySegment <char> >()); Assert.AreEqual(segment, (ArraySegment <char>)value.As <object>()); Assert.Throws <InvalidCastException>(() => value.As <char[]>()); }
public void NullBoolean() { bool? source = null; Value value; using (MemoryWatch.Create()) { value = source; } Assert.Null(value.Type); Assert.AreEqual(source, value.As <bool?>()); Assert.False(value.As <bool?>().HasValue); }
public void CharArray() { char[] b = new char[10]; var watch = MemoryWatch.Create(); Value value = Value.Create(b); watch.Validate(); Assert.AreEqual(typeof(char[]), value.Type); Assert.AreSame(b, value.As <char[]>()); Assert.AreEqual(b, (char[])value.As <object>()); Assert.Throws <InvalidCastException>(() => value.As <ArraySegment <char> >()); }
public void BasicFunctionality() { InitType(); DayOfWeek day = DayOfWeek.Monday; Value value; DayOfWeek outDay; using (MemoryWatch watch = MemoryWatch.Create()) { value = Value.Create(day); outDay = value.As <DayOfWeek>(); } Assert.AreEqual(day, outDay); Assert.AreEqual(typeof(DayOfWeek), value.Type); }
public void BooleanInOut(bool testValue) { Value value; bool success; bool result; using (MemoryWatch.Create()) { value = new(testValue); success = value.TryGetValue(out result); } Assert.True(success); Assert.AreEqual(testValue, result); Assert.AreEqual(testValue, value.As <bool>()); Assert.AreEqual(testValue, (bool)value); }
public void NullableBooleanInBooleanOut(bool?testValue) { bool? source = testValue; Value value; bool success; bool result; using (MemoryWatch.Create()) { value = new(source); success = value.TryGetValue(out result); } Assert.True(success); Assert.AreEqual(testValue, result); Assert.AreEqual(testValue, value.As <bool>()); Assert.AreEqual(testValue, (bool)value); }
public void BooleanImplicit(bool testValue) { Value value; using (MemoryWatch.Create()) { value = testValue; } Assert.AreEqual(testValue, value.As <bool>()); Assert.AreEqual(typeof(bool), value.Type); bool?source = testValue; using (MemoryWatch.Create()) { value = source; } Assert.AreEqual(source, value.As <bool?>()); Assert.AreEqual(typeof(bool), value.Type); }
public void FloatCreate([ValueSource("FloatData")] float testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <float>()); Assert.AreEqual(typeof(float), value.Type); float?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <float?>()); Assert.AreEqual(typeof(float), value.Type); }
public void ULongCreate(ulong testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <ulong>()); Assert.AreEqual(typeof(ulong), value.Type); ulong?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <ulong?>()); Assert.AreEqual(typeof(ulong), value.Type); }
public void CharCreate(char testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <char>()); Assert.AreEqual(typeof(char), value.Type); char?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <char?>()); Assert.AreEqual(typeof(char), value.Type); }
public void LongCreate([ValueSource("LongData")] long testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <long>()); Assert.AreEqual(typeof(long), value.Type); long?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <long?>()); Assert.AreEqual(typeof(long), value.Type); }
public void ShortCreate([ValueSource("ShortData")] short testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <short>()); Assert.AreEqual(typeof(short), value.Type); short?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <short?>()); Assert.AreEqual(typeof(short), value.Type); }
public void DoubleCreate([ValueSource("DoubleData")] double testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <double>()); Assert.AreEqual(typeof(double), value.Type); double?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <double?>()); Assert.AreEqual(typeof(double), value.Type); }
public void UIntCreate([ValueSource("UInt32Data")] uint testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <uint>()); Assert.AreEqual(typeof(uint), value.Type); uint?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <uint?>()); Assert.AreEqual(typeof(uint), value.Type); }
public void ByteCreate(byte testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <byte>()); Assert.AreEqual(typeof(byte), value.Type); byte?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <byte?>()); Assert.AreEqual(typeof(byte), value.Type); }
public void UShortCreate(ushort testValue) { Value value; using (MemoryWatch.Create()) { value = Value.Create(testValue); } Assert.AreEqual(testValue, value.As <ushort>()); Assert.AreEqual(typeof(ushort), value.Type); ushort?source = testValue; using (MemoryWatch.Create()) { value = Value.Create(source); } Assert.AreEqual(source, value.As <ushort?>()); Assert.AreEqual(typeof(ushort), value.Type); }
public void CreateIsAllocationFree() { var watch = MemoryWatch.Create(); Value.Create((bool)default);