Example #1
0
        public void AddValuesPossibleForIndependVariable()
        {
            IVariable <int> x = new Variable <int>();

            //TODO: factor to x.Values.Add( ) and check the array in function
            x.AddValues(new[] { 2 });
            Assert.AreEqual(1, x.Values.Count);
        }
Example #2
0
        public void AddValuesGivesExceptionOnDependendVariables()
        {
            IVariable <int> x = new Variable <int>();
            IVariable <int> y = new Variable <int>();

            y.Arguments.Add(x);
            //TODO: factor to x.Values.Add( ) and check the array in function
            y.AddValues(new[] { 2 });
        }
        public void WriteTwoDimensionalFunctionUsingIndexFilters()
        {
            //writing index based now only works for adding slices..
            var flow = new Variable<int>();
            var x = new Variable<int>();
            var y = new Variable<int>();
            flow.Arguments.Add(x);
            flow.Arguments.Add(y);

            x.AddValues(new[] {1, 2, 3});
            y.AddValues(new[] {10, 20, 30});

            //we now have 3x3 array for flow..write the last 'slice'
            var xIndex = new VariableIndexRangeFilter(x, 2);
            var yIndex = new VariableIndexRangeFilter(y, 0, 2);
            flow.SetValues(new[] {1, 2, 3}, new[] {xIndex, yIndex});

            Assert.AreEqual(9, flow.Values.Count);
            Assert.AreEqual(3, flow.Values[8]);
        }
        public void GetVariableValueFilterIndexesShouldBeFast()
        {
            IVariable <double> x = new Variable <double>("x");
            IVariable <double> y = new Variable <double>("y");

            var amount = 5000;

            IList <double> allValues = new List <double>(amount);

            for (int i = 0; i < amount; i++)
            {
                allValues.Add(i);
            }

            x.AddValues(allValues);

            y.Arguments.Add(x);

            IFunctionStore store = y.Store;

            IList <double> valuesToSelect = new List <double>();

            valuesToSelect.Add(allValues[0]);
            valuesToSelect.Add(allValues[50]);
            valuesToSelect.Add(allValues[amount - 1]);

            IMultiDimensionalArray array = null;

            TestHelper.AssertIsFasterThan(130,
                                          () =>
            {
                for (int i = 0; i < 5000; i++)
                {
                    array = store.GetVariableValues(x, new VariableValueFilter <double>(x, valuesToSelect));
                }
            });
            //orig: 600ms
            //now: 15ms

            Assert.AreEqual(3, array.Count);
        }
        public void WriteTwoDimensionalFunctionUsingIndexFilters()
        {
            //writing index based now only works for adding slices..
            var flow = new Variable <int>();
            var x    = new Variable <int>();
            var y    = new Variable <int>();

            flow.Arguments.Add(x);
            flow.Arguments.Add(y);

            x.AddValues(new[] { 1, 2, 3 });
            y.AddValues(new[] { 10, 20, 30 });

            //we now have 3x3 array for flow..write the last 'slice'
            var xIndex = new VariableIndexRangeFilter(x, 2);
            var yIndex = new VariableIndexRangeFilter(y, 0, 2);

            flow.SetValues(new[] { 1, 2, 3 }, new[] { xIndex, yIndex });

            Assert.AreEqual(9, flow.Values.Count);
            Assert.AreEqual(3, flow.Values[8]);
        }
Example #6
0
 public void AddValuesGivesExceptionOnDependendVariables()
 {
     IVariable<int> x = new Variable<int>();
     IVariable<int> y = new Variable<int>();
     y.Arguments.Add(x);
     //TODO: factor to x.Values.Add( ) and check the array in function
     y.AddValues(new[] { 2 });
 }
Example #7
0
 public void AddValuesPossibleForIndependVariable()
 {
     IVariable<int> x = new Variable<int>();
     //TODO: factor to x.Values.Add( ) and check the array in function
     x.AddValues(new[]{2});
     Assert.AreEqual(1,x.Values.Count);
 }
        public void GetVariableValueFilterIndexesShouldBeFast()
        {
            IVariable<double> x = new Variable<double>("x");
            IVariable<double> y = new Variable<double>("y");

            var amount = 5000;

            IList<double> allValues = new List<double>(amount);

            for (int i = 0; i < amount; i++)
                allValues.Add(i);
            
            x.AddValues(allValues);

            y.Arguments.Add(x);

            IFunctionStore store = y.Store;

            IList<double> valuesToSelect = new List<double>();
            valuesToSelect.Add(allValues[0]);
            valuesToSelect.Add(allValues[50]);
            valuesToSelect.Add(allValues[amount-1]);

            IMultiDimensionalArray array = null;

            TestHelper.AssertIsFasterThan(130,
                                          () =>
                                              {
                                                  for (int i = 0; i < 5000; i++)
                                                  {
                                                      array = store.GetVariableValues(x,new VariableValueFilter<double>(x,valuesToSelect));
                                                  }
                                              });
            //orig: 600ms
            //now: 15ms

            Assert.AreEqual(3,array.Count);
        }