[Mono-devel-list] About System.Array.Initialize()

Eduardo Garcia kiwnix at yahoo.es
Thu Apr 17 17:39:32 EDT 2003


Researching a bit how to implement this method (mainly doing some test
cases) i discover it does near nothing.

In Reference types it does nothing (As it should as the doc says).
But in the rest of the types i don't understand very well what it does.
-- 
Eduardo Garcia <kiwnix at yahoo.es>
-------------- next part --------------
using System;
using NUnit.Framework;

namespace MonoTestsLocal.System
{
	// Enumeracion auxiliar
	enum enua  {hola,adios,mas,menos};

	class AClass
	{
		bool init;
		public AClass()
		{
			init = true;
		}
	}

	struct AStruct
	{
		public string s;
		public string a;
	}


	[TestFixture]
	public class ArrayTest : TestCase
	{
		[Test]
		public void TestInitializeEmpty()
		{
			bool catched=false;
			int[] a = {};
			try
			{
				a.Initialize();
			}
			catch(Exception)
			{
				catched=true;
			}
			Assert("#01",!catched);
		}

		[Test]
		public void TestInitializeInt()
		{
			int[] a = {1,2,0};
			a.Initialize();
			int[] b = {1,2,0};
			for(int i=a.GetLowerBound(0);i<=a.GetUpperBound(0);i++)
			{
				AssertEquals("#02 " + i ,a[i],b[i]);
			}
		}

		[Test]
		public void TestInitializeDouble()
		{
			double[] a = {1.0,2.0,0.0};
			a.Initialize();
			double[] b = {1.0,2.0,0.0};
			for(int i=a.GetLowerBound(0);i<=a.GetUpperBound(0);i++)
			{
				AssertEquals("#03 " + i ,a[i],b[i]);
			}
		}

		[Test]
		public void TestInitializeFloat()
		{
			float[] a = {1.0F,2.0F,0.0F};
			a.Initialize();
			float[] b = {1.0F,2.0F,0.0F};
			for(int i=a.GetLowerBound(0);i<=a.GetUpperBound(0);i++)
			{
				AssertEquals("#04 " + i ,a[i],b[i]);
			}
		}

		[Test]
		public void TestInitializeChar()
		{
			char[] a = {'1','.','0','F','2','.','0','F'};
			a.Initialize();
			char[] b = {'1','.','0','F','2','.','0','F'};
			for(int i=a.GetLowerBound(0);i<=a.GetUpperBound(0);i++)
			{
				AssertEquals("#05 " + i ,a[i],b[i]);
			}
		}

		[Test]
		public void TestInitializeString()
		{
			string[] a = {"hola","adios","menos","mas"};
			a.Initialize();
			string[] b = {"hola","adios","menos","mas"};
			for(int i=a.GetLowerBound(0);i<=a.GetUpperBound(0);i++)
			{
				AssertEquals("#06 " + i ,a[i],b[i]);
			}
		}

		[Test]
		public void TestInitializeEnum()
		{
			enua[] a = {enua.hola,enua.adios,enua.menos,enua.mas};
			a.Initialize();
			enua[] b = {enua.hola,enua.adios,enua.menos,enua.mas};
			for(int i=a.GetLowerBound(0);i<=a.GetUpperBound(0);i++)
			{
				AssertEquals("#07 " + i ,a[i],b[i]);
			}
		}
		[Test]
		public void TestInitializeIntNI()
		{
			int[] a = new int[20];
			a.Initialize();
			foreach(int b in a)
			{
				AssertEquals("#08",b,0);
			}
		}
		[Test]
		public void TestInitializeCharNI()
		{
			char[] a = new char[20];
			a.Initialize();
			foreach(char b in a)
			{
				AssertEquals("#09",b,0);
			}
		}
		[Test]
		public void TestInitializeDoubleNI()
		{
			double[] a = new double[20];
			a.Initialize();
			foreach(double b in a)
			{
				AssertEquals("#09",b,0.0);
			}
		}
		[Test]
		public void TestInitializeStringNI()
		{
			string[] a = new string[20];
			a.Initialize();
			foreach(string b in a)
			{
				AssertEquals("#10",b,null);
			}
		}
		[Test]
		public void TestInitializeObjectNI()
		{
			object[] a = new object[20];
			a.Initialize();
			foreach(object b in a)
			{
				AssertEquals("#11",b,null);
			}
		}

		[Test]
		public void TestInitializeAClassNI()
		{
			AClass[] a = new AClass[20];
			a.Initialize();
			foreach(AClass b in a)
			{
				AssertEquals("#12",b,null);
			}
		}


		[Test]
		public void TestAStructNI()
		{
			AStruct[] a = new AStruct[20];
			a.Initialize();
			foreach(AStruct b in a)
			{
				AssertEquals("#14",b,new AStruct());
			}
		}

		[Test]
		public void TestAStruct()
		{
			AStruct[] a = new AStruct[3];
			a[1].a = "ADIOS";
			a[1].s = "HOLA";
			a.Initialize();
			AStruct[] b = new AStruct[3];
			b[1].a = "ADIOS";
			b[1].s = "HOLA";
			for(int i=a.GetLowerBound(0);i<=a.GetUpperBound(0);i++)
			{
				AssertEquals("#15 " + i ,a[i],b[i]);
			}
		}

		[Test]
		public void TestDateTimeNI()
		{
			DateTime[] a = new DateTime[20];
			a.Initialize();
			foreach(DateTime b in a)
			{
				AssertEquals("#16",b,new DateTime());
			}
		}
	}
}


More information about the Mono-devel-list mailing list