Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        /// <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));
        }