/// <summary> /// Extract the data /// </summary> /// <param name="data"></param> /// <returns></returns> public override double Extract(SimulationData data) { IParameterized c = (IParameterized)data.GetObject(Component); return(c.Ask(Parameter, data.Circuit)); // return c.Ask(Parameter); }
/// <summary> /// Test the parameters of a parameterized object /// </summary> /// <param name="obj">The parameterized object</param> /// <param name="names">The parameter names</param> /// <param name="values">The expected parameter values</param> protected void TestParameters(IParameterized p, string[] names, double[] values) { if (names.Length != values.Length) { throw new Exception("Unit test error: parameter name array does not match the value array"); } // Test all parameters for (int i = 0; i < names.Length; i++) { double expected = values[i]; double actual = p.Ask(names[i]); double tol = Math.Min(Math.Abs(expected), Math.Abs(actual)) * 1e-6; Assert.AreEqual(expected, actual, tol); } }
/// <summary> /// Ask a component parameter using the circuit /// </summary> /// <param name="component">The component name</param> /// <param name="parameter">The parameter name</param> /// <returns></returns> public double Ask(CircuitIdentifier component, string parameter) { IParameterized p = (IParameterized)Circuit.Objects[component]; return(p.Ask(parameter, Circuit)); }