public DiffEngineValidator() { var standard = new DmitryBychenko(); var engineTypes = Assembly.GetExecutingAssembly().GetTypes() .Where(t => t.IsClass && typeof(ITextDiff).IsAssignableFrom(t) && t != typeof(DmitryBychenko)) .ToArray(); EnginesToValidate = engineTypes.Select(t => Activator.CreateInstance(t) as ITextDiff).ToArray(); EnginesToValidate = new ITextDiff[] { new DmitryBest() }; }
public void Validate() { var standard = new DmitryBychenko(); var baselineResults = GetTestResults(standard); foreach (var engine in EnginesToValidate) { var engineResult = GetTestResults(engine); for (int i = 0, l = engineResult.Count; i < l; i++) { var errorMessage = AssertAreEqual(baselineResults[i], engineResult[i]); if (errorMessage != null) { throw new InvalidOperationException($"{engine.GetType().Name} on test {i + 1} failed. {errorMessage}"); } } } }