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