/// <summary> /// Create the test log columns /// </summary> public virtual void Initialize() { Conversion units = Conversion.GetInstance("units", "x", "0"); Conversion cubits = Conversion.GetInstance("cubits", "x/2", "0.0"); Conversion torks = Conversion.GetInstance("torks", "x * 2", "0.00"); Conversion[] conversions = new Conversion[] { units, cubits, torks }; SsmParameter p1 = new SsmParameter(null, "P1", "Parameter1", 1, 1, conversions); SsmParameter p2 = new SsmParameter(null, "P2", "Parameter2", 2, 2, conversions); SsmParameter p3 = new SsmParameter(null, "P3", "Parameter3", 3, 3, conversions); List <LogColumn> columns = new List <LogColumn>(); columns.Add(LogColumn.GetInstance(p1, units, null, false)); columns.Add(LogColumn.GetInstance(p2, cubits, null, false)); columns.Add(LogColumn.GetInstance(p3, torks, null, false)); this.readOnlyColumns = new ReadOnlyCollection <LogColumn>(columns); foreach (LogColumn column in columns) { double unused; string value; column.Conversion.Convert(0, out value, out unused); column.ValueAsString = value; } }
private static bool TryGetParameter(IList <Parameter> actualList, string id, out SsmParameter actual) { foreach (SsmParameter candidate in actualList) { if (candidate.Id == id) { actual = candidate; return(true); } } actual = null; return(false); }
private static void CompareLists(IList <Parameter> expectedList, IList <Parameter> actualList) { foreach (SsmParameter expected in expectedList) { SsmParameter actual = null; if (!SsmParameterSourceTest.TryGetParameter(actualList, expected.Id, out actual)) { throw new Exception("Actual list does not contain " + expected.Name + " (" + expected.Id + ")"); } Assert.AreEqual(expected.Conversions.Count, actual.Conversions.Count, "Conversions.Count"); for (int i = 0; i < actual.Conversions.Count; i++) { Assert.AreEqual( expected.Conversions[i].Units, actual.Conversions[i].Units, "Conversions[i].Units"); Assert.AreEqual( expected.Conversions[i].Expression, actual.Conversions[i].Expression, "Conversions[i].Expression"); Assert.AreEqual( expected.Conversions[i].Format, actual.Conversions[i].Format, "Conversions[i].Format"); } Assert.AreEqual(expected.Id, actual.Id, actual.Name + " Id"); if (expected.IsCalculated) { Assert.IsTrue(actual.IsCalculated, "IsCalculated"); Assert.IsTrue(actual.Dependencies != null, "Dependencies != null"); Assert.IsTrue(actual.Dependencies.Count > 0, "Dependencies.Count > 0"); } else { Assert.AreEqual(expected.Address, actual.Address, actual.Name + " Address"); Assert.IsTrue(actual.Dependencies == null, "Dependencies == null"); } Assert.AreEqual(expected.EcuCapabilityByteIndex, actual.EcuCapabilityByteIndex, actual.Name + " EcuCapabilityByteIndex"); Assert.AreEqual(expected.EcuCapabilityBitIndex, actual.EcuCapabilityBitIndex, actual.Name + " EcuCapabilityBitIndex"); } // TODO: ensure no extra parameters }
public void DatabaseGetCalculatedParameters_XmlReader() { Assert.Inconclusive("Not implemented."); SsmParameterSource source = SsmParameterSource.GetInstance(Environment.CurrentDirectory, EcuIdentifier, CompatibilityMap); using (Stream inputStream = File.OpenRead("logger.xml")) { #if XPath PathDocument document = SsmParameterSource.CreateDocument(inputStream); database.LoadExtendedParameters(document); #else XmlReader reader = XmlReader.Create(inputStream); source.LoadExtendedParameters(reader); #endif } SsmParameter engineSpeed = null; SsmParameter maf = null; SsmParameter load = null; foreach (SsmParameter parameter in source.Parameters) { if (parameter.Id == "P8") { engineSpeed = parameter; } if (parameter.Id == "P12") { maf = parameter; } if (parameter.Id == "P200") { load = parameter; } } Assert.AreSame(engineSpeed, load.Dependencies[0], "First dependency"); Assert.AreSame(maf, load.Dependencies[1], "Second dependency"); }
public void InternalLogProfileSsmAddressesOneParameter() { ParameterDatabase database = ParameterDatabase.GetInstance(); SsmParameterSource source = SsmParameterSource.GetInstance( Environment.CurrentDirectory, SsmParameterSourceTest.EcuIdentifier, SsmParameterSourceTest.CompatibilityMap); database.Add(source); LogProfile publicProfile = LogProfile.CreateInstance(); SsmParameter parameter = database.Parameters[0] as SsmParameter; publicProfile.Add(parameter, parameter.Conversions[0]); InternalLogProfile internalProfile = InternalLogProfile.GetInstance(publicProfile, database); Assert.AreEqual(1, internalProfile.Addresses.Count); Assert.AreEqual(parameter.Address, internalProfile.Addresses[0]); Assert.AreEqual(1, internalProfile.LogEventArgs.Row.Columns.Count); LogColumn column = internalProfile.LogEventArgs.Row.Columns[0]; Assert.AreEqual(column.PropertyBag[InternalLogProfile.ColumnAddressIndex], 0); }