[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