Пример #1
0
        public void NonGenericParameter()
        {
            var unit= new Unit("distance", "l");
            var parameter = new Parameter
                                {
                                    Name = "p1",
                                    ValueType = typeof (double),
                                    Value = 0.1,
                                    Unit = unit
                                };

            Assert.AreEqual(typeof(double), parameter.ValueType);
            Assert.AreEqual(0, parameter.DefaultValue);
            Assert.AreEqual(0.1, parameter.Value);
        }
Пример #2
0
        public void TwoComponentsOneArgument_CrossSectionParametersUsingIndexes()
        {
            // TODO: make default Units work!
            //Quantity areaQuantity = new Quantity("area", "A", new Unit("m^2"));
            //Quantity lengthQuantity = new Quantity("length", "L", new Unit("m"));
            //Quantity depthQuantity = new Quantity("depth", "H", new Unit("m"));
            var areaUnit = new Unit("area", "A");
            var lengthUnit = new Unit("length", "L");
            var depthUnit = new Unit("depth", "H");

            // create rating curve function arguments and components
            IVariable<double> a = new Variable<double>("area", areaUnit);
            IVariable<double> p = new Variable<double>("wetted_perimeter", lengthUnit);
            IVariable<double> h = new Variable<double>("water_depth", depthUnit);

            // f = (a, p)(h)
            IFunction f = new Function("rating curve");
            f.Components.Add(a);
            f.Components.Add(p);
            f.Arguments.Add(h);

            // set values of the variable
            h.SetValues(new[] {0.1, 1.1, 3.1});

            // value based argument referencing.
            f[0.1] = new[] {0.0, 0.0};
            f[1.1] = new[] {10.0, 100.0};
            f[3.1] = new[] {20.0, 200.0};

            h.Values.Remove(3.1);
            h.Values.Add(3.1);
            f[h.Values.Last()] = new[] {1.0, 2.0};

            Assert.AreEqual(1.0, a.Values[2]);
            Assert.AreEqual(2.0, p.Values[2]);
            Assert.AreEqual(3.1, h.Values[2]);

            Assert.AreEqual(10.0, a.Values[1]);
            Assert.AreEqual(100.0, p.Values[1]);

            // asserts for argument
            Assert.AreEqual(3, f.Arguments[0].Values.Count);
            Assert.AreEqual(0.1, f.Arguments[0].Values[0]);
            Assert.AreEqual(1.1, f.Arguments[0].Values[1]);
            Assert.AreEqual(3.1, f.Arguments[0].Values[2]);

            //asserts for components
            Assert.AreEqual(0.0, f.Components[0].Values[0]);
            Assert.AreEqual(10.0, f.Components[0].Values[1]);
            Assert.AreEqual(1.0, f.Components[0].Values[2]);

            Assert.AreEqual(0.0, f.Components[1].Values[0]);
            Assert.AreEqual(100.0, f.Components[1].Values[1]);
            Assert.AreEqual(2.0, f.Components[1].Values[2]);
        }
Пример #3
0
 public void CreateWithIntTypeAndDistanceUnit()
 {
     const string parameterName = "p1";
     var distanceUnit = new Unit("distance", "l");
     var parameter = new Parameter<int>(parameterName, distanceUnit);
     
     Assert.AreEqual(distanceUnit, parameter.Unit);
 }