Beispiel #1
0
        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++]);
            }
        }
Beispiel #2
0
        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());
            }
        }
Beispiel #3
0
        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]);
            }
        }
Beispiel #4
0
        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]);
            }
        }
Beispiel #5
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());
            }
        }
Beispiel #6
0
        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);
            }
        }