예제 #1
0
        public void CopyIndependendFunctionValuesWhenAdded()
        {
            //indep variable
            IVariable x = new Variable <double>();

            var values = new[] { 1.0, 2.0, 3.0 };

            x.Store.SetVariableValues(x, values);

            var store = new MemoryFunctionStore();

            store.Functions.Add(x);

            Assert.AreEqual(3.0, store.GetVariableValues(x)[2]);
            Assert.AreEqual(3, store.GetVariableValues(x).Count);
        }
예제 #2
0
        public void CopyDependendFunctionValuesWhenAdded()
        {
            //depended variable
            IVariable y = new Variable <int>("y");
            IVariable x = new Variable <int>("x");

            y.Arguments.Add(x);
            y.SetValues(new[] { 10, 20, 30 }, new VariableValueFilter <int>(x, new[] { 1, 2, 3 }));

            //switch store
            var store = new MemoryFunctionStore();

            store.Functions.Add(y);

            //get values for x and y
            Assert.AreEqual(3, store.GetVariableValues(x).Count);
            Assert.AreEqual(3, store.GetVariableValues(y).Count);

            Assert.AreEqual(30, y[3]);
        }
예제 #3
0
        public void GetIndependentValuesFiltersGeneric()
        {
            IFunctionStore store = new MemoryFunctionStore();

            IVariable <double> x1 = new Variable <double>("x1");

            //add one independent variable
            store.Functions.Add(x1);

            x1.SetValues(new[] { 0.0d, 1.0d, 2.0d });
            Assert.AreEqual(0.0, x1.Values[0]);

            IMultiDimensionalArray <double> filteredValues = store.GetVariableValues <double>(x1, new VariableValueFilter <double>(x1, new[] { 0.0d, 2.0d }));

            Assert.AreEqual(0.0, filteredValues[0]);
            Assert.AreEqual(2.0, filteredValues[1]);
        }
예제 #4
0
        public void CopyDependendFunctionValuesWhenAdded()
        {
            //depended variable 
            IVariable y = new Variable<int>("y");
            IVariable x = new Variable<int>("x");
            
            y.Arguments.Add(x);
            y.SetValues(new[] { 10, 20, 30 }, new VariableValueFilter<int>(x, new[] { 1, 2, 3 }));

            //switch store
            var store = new MemoryFunctionStore();
            store.Functions.Add(y);

            //get values for x and y
            Assert.AreEqual(3, store.GetVariableValues(x).Count);
            Assert.AreEqual(3, store.GetVariableValues(y).Count);

            Assert.AreEqual(30,y[3]);
        }
예제 #5
0
        public void GetIndependentValuesFiltersGeneric()
        {
            IFunctionStore store = new MemoryFunctionStore();

            IVariable<double> x1 = new Variable<double>("x1");
            //add one independent variable
            store.Functions.Add(x1);

            x1.SetValues(new[] { 0.0d, 1.0d, 2.0d });
            Assert.AreEqual(0.0, x1.Values[0]);

            IMultiDimensionalArray<double> filteredValues = store.GetVariableValues<double>(x1, new VariableValueFilter<double>(x1, new[] {0.0d, 2.0d}));
            Assert.AreEqual(0.0, filteredValues[0]);
            Assert.AreEqual(2.0, filteredValues[1]);
        }
예제 #6
0
        public void CopyIndependendFunctionValuesWhenAdded()
        {
            //indep variable 
            IVariable x = new Variable<double>();

            var values = new[] { 1.0, 2.0, 3.0 };
            x.Store.SetVariableValues(x, values);

            var store = new MemoryFunctionStore();
            store.Functions.Add(x);

            Assert.AreEqual(3.0, store.GetVariableValues(x)[2]);
            Assert.AreEqual(3, store.GetVariableValues(x).Count);
        }