public void JaggedSetValues2() { Array jaggedGaussian = JaggedArray.ConvertToNew( jagged, typeof(int), typeof(Gaussian), delegate(object elt) { return(new Gaussian(1.0, 1.0)); }); Assert.Equal( JaggedArray.GetLength(jaggedGaussian, typeof(Gaussian)), JaggedArray.GetLength(jagged, typeof(int))); JaggedArray.ConvertElements2( jaggedGaussian, jagged, typeof(Gaussian), delegate(object elt1, object elt2) { Gaussian g = (Gaussian)elt1; double d = (int)elt2; return(Gaussian.FromMeanAndPrecision(d + g.GetMean(), 2.0)); }); int i = 0; foreach (Gaussian g in JaggedArray.ElementIterator(jaggedGaussian, typeof(Gaussian))) { Assert.Equal(g.GetMean(), 1.0 + arrExpected[i++]); } }
public void JaggedConvertToNewTypeGeneric() { Array jaggedGaussian = JaggedArray.ConvertToNew <int, Gaussian>( jagged, delegate(int elt) { return(new Gaussian(0.5, 1.0)); }); Assert.Equal( JaggedArray.GetLength(jaggedGaussian, typeof(Gaussian)), JaggedArray.GetLength(jagged, typeof(int))); foreach (Gaussian g in JaggedArray.ElementIterator <Gaussian>(jaggedGaussian)) { Assert.Equal(0.5, g.GetMean()); } }
public void JaggedIntIterator() { List <int> listActual = new List <int>(); foreach (int i in JaggedArray.ElementIterator <int>(jagged)) { listActual.Add(i); } int[] arrActual = listActual.ToArray(); Assert.Equal(arrActual.Length, arrExpected.Length); for (int i = 0; i < arrActual.Length; i++) { Assert.Equal(arrActual[i], arrExpected[i]); } }
public void JaggedVisitor() { Array jaggedDir = JaggedArray.ConvertToNew( jagged, typeof(int), typeof(Dirichlet), delegate(object elt) { return(new Dirichlet(2.0, 3.0, 4.0)); }); double[] newPseudoCount = { 3.0, 4.0, 5.0 }; JaggedArray.VisitElements( jaggedDir, typeof(Dirichlet), delegate(object elt) { ((Dirichlet)elt).PseudoCount.SetTo(newPseudoCount); }); foreach (Dirichlet d in JaggedArray.ElementIterator(jaggedDir, typeof(Dirichlet))) { Assert.Equal(3.0, d.PseudoCount[0]); } }
public void JaggedSetValues() { Array jaggedGaussian = JaggedArray.ConvertToNew( jagged, typeof(int), typeof(Gaussian), delegate(object elt) { return(new Gaussian(0.0, 1.0)); }); Assert.Equal( JaggedArray.GetLength(jaggedGaussian, typeof(Gaussian)), JaggedArray.GetLength(jagged, typeof(int))); JaggedArray.ConvertElements( jaggedGaussian, typeof(Gaussian), delegate(object elt) { return(Gaussian.FromMeanAndPrecision(1.0, 2.0)); }); foreach (Gaussian g in JaggedArray.ElementIterator(jaggedGaussian, typeof(Gaussian))) { Assert.Equal(1.0, g.GetMean()); } }
public void JaggedVisitor2() { Dirichlet d1 = new Dirichlet(2.0, 3.0, 4.0); Dirichlet d2 = new Dirichlet(3.0, 4.0, 5.0); Dirichlet d3 = d1 * d2; Array jaggedDir1 = JaggedArray.ConvertToNew( jagged, typeof(int), typeof(Dirichlet), delegate(object elt) { return(new Dirichlet(d1)); }); Array jaggedDir2 = JaggedArray.ConvertToNew( jagged, typeof(int), typeof(Dirichlet), delegate(object elt) { return(new Dirichlet(d2)); }); JaggedArray.VisitElements2( jaggedDir1, jaggedDir2, typeof(Dirichlet), typeof(Dirichlet), delegate(object elt1, object elt2) { ((Dirichlet)elt1).PseudoCount.SetTo((((Dirichlet)elt1) * ((Dirichlet)elt2)).PseudoCount); }); foreach (Dirichlet d in JaggedArray.ElementIterator(jaggedDir1, typeof(Dirichlet))) { Assert.Equal(d.PseudoCount, d3.PseudoCount); } }