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 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]); }
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 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); }