public void IList()
 {
   ComplexDoubleVector a = new ComplexDoubleVector(new Complex[4]{0,1,2,3});
   
   Assert.AreEqual(a.IsFixedSize,false);
   Assert.AreEqual(a.IsReadOnly,false);
   
   a.Add((Complex)4.0);
   Assert.AreEqual(a.Length,5);
   Assert.AreEqual(a[4],(Complex)4);
   Assert.AreEqual(a.Contains((Complex)4.0),true);
   
   a.Insert(1,(Complex)5.0);
   Assert.AreEqual(a.Length,6);
   Assert.AreEqual(a.Contains((Complex)5.0),true);
   Assert.AreEqual(a[0],(Complex)0);
   Assert.AreEqual(a[1],(Complex)5);
   Assert.AreEqual(a[2],(Complex)1);
   Assert.AreEqual(a[3],(Complex)2);
   Assert.AreEqual(a[4],(Complex)3);
   Assert.AreEqual(a[5],(Complex)4);
   
   a.Remove((Complex)5.0);
   Assert.AreEqual(a.Length,5);
   Assert.AreEqual(a.Contains((Complex)5.0),false);
   Assert.AreEqual(a[0],(Complex)0);
   Assert.AreEqual(a[1],(Complex)1);
   Assert.AreEqual(a[2],(Complex)2);
   Assert.AreEqual(a[3],(Complex)3);
   Assert.AreEqual(a[4],(Complex)4);
   
   a.RemoveAt(2);
   Assert.AreEqual(a.Length,4);
   Assert.AreEqual(a.Contains((Complex)2.0),false);
   Assert.AreEqual(a[0],(Complex)0);
   Assert.AreEqual(a[1],(Complex)1);
   Assert.AreEqual(a[2],(Complex)3);
   Assert.AreEqual(a[3],(Complex)4);
 }
 public void Add()
 {
   ComplexDoubleVector a = new ComplexDoubleVector(new double[4]{0,1,2,3});
   ComplexDoubleVector b = new ComplexDoubleVector(new double[4]{4,5,6,7});
   ComplexDoubleVector c = new ComplexDoubleVector(a.Length);
   ComplexDoubleVector d = new ComplexDoubleVector(b.Length);
   
   c = a+b;
   d = ComplexDoubleVector.Add(a,b);
   
   Assert.AreEqual(c[0],a[0]+b[0]);
   Assert.AreEqual(c[1],a[1]+b[1]);
   Assert.AreEqual(c[2],a[2]+b[2]);
   Assert.AreEqual(c[3],a[3]+b[3]);
   
   Assert.AreEqual(d[0],c[0]);
   Assert.AreEqual(d[1],c[1]);
   Assert.AreEqual(d[2],c[2]);
   Assert.AreEqual(d[3],c[3]);
   
   a.Add(b);
   
   Assert.AreEqual(c[0],a[0]);
   Assert.AreEqual(c[1],a[1]);
   Assert.AreEqual(c[2],a[2]);
   Assert.AreEqual(c[3],a[3]);
 }