using System;
using System.Data.SqlTypes;
namespace CompileTimeCoerceTest
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	///
	public class SqlBinaryTest
	{
		public class CLR
		{
			public static byte CLRbyte = 0;
			public static byte CLRshort = 0;
			public static byte CLRint = 0;
			public static byte CLRlong = 0;
			public static byte CLRfloat = 0;
			public static byte CLRdouble = 0;

		}
		public void SqlBinaryExplicit()
		{
			SqlBinary b = new SqlBinary(new byte[] { 1 });
			SqlBinary t1 = (SqlBinary)b;
			SqlBoolean t2 = (SqlBoolean)b; // fail
			SqlByte t3 = (SqlByte)b; //fail
			SqlDate t4 = (SqlDate)b; //fail
			SqlDateTime t5 = (SqlDateTime)b; //fail;
			SqlDecimal t6 = (SqlDecimal)b; //fail;
			SqlDouble t7 = (SqlDouble)b; //fail;
			SqlGuid t8 = (SqlGuid)b;
			SqlDecimal t9 = (SqlDecimal)b; //fail;
			SqlInt16 t10 = (SqlInt16)b; //fail
			SqlInt32 t11 = (SqlInt32)b; //fail
			SqlInt64 t12 = (SqlInt64)b; //fail
			SqlMoney t13 = (SqlMoney)b; //fail
			SqlSingle t14 = (SqlSingle)b; // fail
			SqlString t15 = (SqlString)b; // fail;
			SqlTime t16 = (SqlTime)b; // fail;
			byte t17 = (byte)b; //fail;
			short t18 = (short)b; //fail;
			int t19 = (int)b; //fail;
			long t20 = (long)b; //fail;
			float t21 = (float)b; //fail;
			double t22 = (double)b; //fail;
			bool t23 = (bool)b; // fail
			b = (byte)CLR.CLRbyte;
			b = (short)CLR.CLRshort;
			b = (int)CLR.CLRint;
			b = (long)CLR.CLRlong;
			b = (float)CLR.CLRfloat;
			b = (double)CLR.CLRdouble;
		}
		public void SqlBinaryImplicit()
		{
			SqlBinary b = new SqlBinary(new byte[] { 1 });
			SqlBinary t1 = b;
			SqlBoolean t2 = b; // fail
			SqlByte t3 = b; //fail
			SqlDate t4 = b; //fail
			SqlDateTime t5 = b; //fail;
			SqlDecimal t6 = b; //fail;
			SqlDouble t7 = b; //fail;
			SqlGuid t8 = b; //fail
			SqlDecimal t9 = b; //fail;
			SqlInt16 t10 = b; //fail
			SqlInt32 t11 = b; //fail
			SqlInt64 t12 = b; //fail
			SqlMoney t13 = b; //fail
			SqlSingle t14 = b; // fail
			SqlString t15 = b; // fail;
			SqlTime t16 = b; // fail;
			byte t17 = b; // fail;
			short t18 = b; // fail;
			int t19 = b; // fail;
			long t20 = b; // fail;
			float t21 = b; // fail;
			double t22 = b; // fail;
			bool b23 = b; // fail;
			b = CLR.CLRbyte;
			b = CLR.CLRshort;
			b = CLR.CLRint;
			b = CLR.CLRlong;
			b = CLR.CLRfloat;
			b = CLR.CLRdouble;
		}
		public void SqlBooleanExplicit()
		{
			SqlBoolean b = new SqlBoolean(false);
			SqlBinary t1 = (SqlBinary)b; //fail
			SqlBoolean t2 = (SqlBoolean)b; 
			SqlByte t3 = (SqlByte)b; 
			SqlDate t4 = (SqlDate)b; //fail
			SqlDateTime t5 = (SqlDateTime)b; //fail;
			SqlDecimal t6 = (SqlDecimal)b;
			SqlDouble t7 = (SqlDouble)b;
			SqlGuid t8 = (SqlGuid)b; // fail
			SqlDecimal t9 = (SqlDecimal)b;
			SqlInt16 t10 = (SqlInt16)b; 
			SqlInt32 t11 = (SqlInt32)b;
			SqlInt64 t12 = (SqlInt64)b;
			SqlMoney t13 = (SqlMoney)b;
			SqlSingle t14 = (SqlSingle)b;
			SqlString t15 = (SqlString)b;
			SqlTime t16 = (SqlTime)b; // fail;
			byte t17 = (byte)b; //fail;
			short t18 = (short)b; //fail;
			int t19 = (int)b; //fail;
			long t20 = (long)b; //fail;
			float t21 = (float)b; //fail;
			double t22 = (double)b; //fail;
			bool t23 = (bool)b;
			b = (byte)CLR.CLRbyte;
			b = (short)CLR.CLRshort;
			b = (int)CLR.CLRint;
			b = (long)CLR.CLRlong;
			b = (float)CLR.CLRfloat;
			b = (double)CLR.CLRdouble;
		}
		public void SqlBooleanImplicit()
		{
			SqlBoolean b = new SqlBoolean(false);
			SqlBinary t1 = b; // fail
			SqlBoolean t2 = b;
			SqlByte t3 = b; //fail
			SqlDate t4 = b; //fail
			SqlDateTime t5 = b; //fail;
			SqlDecimal t6 = b; //fail;
			SqlDouble t7 = b; //fail;
			SqlGuid t8 = b; //fail
			SqlDecimal t9 = b; //fail;
			SqlInt16 t10 = b; //fail
			SqlInt32 t11 = b; //fail
			SqlInt64 t12 = b; //fail
			SqlMoney t13 = b; //fail
			SqlSingle t14 = b; // fail
			SqlString t15 = b; // fail;
			SqlTime t16 = b; // fail;
			byte t17 = b; // fail;
			short t18 = b; // fail;
			int t19 = b; // fail;
			long t20 = b; // fail;
			float t21 = b; // fail;
			double t22 = b; // fail;
			bool b23 = b; // fail;
			b = CLR.CLRbyte;
			b = CLR.CLRshort;
			b = CLR.CLRint;
			b = CLR.CLRlong;
			b = CLR.CLRfloat;
			b = CLR.CLRdouble;

		}

		public void SqlInt32Explicit()
		{
			SqlInt32 b = new SqlInt32(0);
			SqlBinary t1 = (SqlBinary)b; //fail
			SqlBoolean t2 = (SqlBoolean)b;
			SqlByte t3 = (SqlByte)b;
			SqlDate t4 = (SqlDate)b; //fail
			SqlDateTime t5 = (SqlDateTime)b; //fail;
			SqlDecimal t6 = (SqlDecimal)b;
			SqlDouble t7 = (SqlDouble)b;
			SqlGuid t8 = (SqlGuid)b; // fail
			SqlDecimal t9 = (SqlDecimal)b;
			SqlInt16 t10 = (SqlInt16)b;
			SqlInt32 t11 = (SqlInt32)b;
			SqlInt64 t12 = (SqlInt64)b;
			SqlMoney t13 = (SqlMoney)b;
			SqlSingle t14 = (SqlSingle)b;
			SqlString t15 = (SqlString)b;
			SqlTime t16 = (SqlTime)b; // fail;
			byte t17 = (byte)b;
			short t18 = (short)b;
			int t19 = (int)b;
			long t20 = (long)b;
			float t21 = (float)b;
			double t22 = (double)b;
			bool t23 = (bool)b; // fail
			b = (byte)CLR.CLRbyte;
			b = (short)CLR.CLRshort;
			b = (int)CLR.CLRint;
			b = (long)CLR.CLRlong;
			b = (float)CLR.CLRfloat;
			b = (double)CLR.CLRdouble;
		}
		public void SqlInt32Implicit()
		{
			SqlInt32 b = new SqlInt32(0);
			SqlBinary t1 = b; // fail
			SqlBoolean t2 = b;
			SqlByte t3 = b; //fail
			SqlDate t4 = b; //fail
			SqlDateTime t5 = b; //fail;
			SqlDecimal t6 = b; //fail;
			SqlDouble t7 = b; //fail;
			SqlGuid t8 = b; //fail
			SqlDecimal t9 = b;
			SqlInt16 t10 = b; //fail
			SqlInt32 t11 = b;
			SqlInt64 t12 = b;
			SqlMoney t13 = b;
			SqlSingle t14 = b;
			SqlString t15 = b; // fail;
			SqlTime t16 = b; // fail;
			byte t17 = b; // fail;
			short t18 = b; // fail;
			int t19 = b; // fail;
			long t20 = b; // fail;
			float t21 = b; // fail;
			double t22 = b; // fail;
			bool b23 = b; // fail;
			b = CLR.CLRbyte;
			b = CLR.CLRshort;
			b = CLR.CLRint;
			b = CLR.CLRlong;
			b = CLR.CLRfloat;
			b = CLR.CLRdouble;
		}

	
	}
}
