public void AssertEqualsExpected(LayerInfo <TFeatureInfo> expected) { foreach (var key in perFeatureInfo.Keys) { if (!expected.perFeatureInfo.ContainsKey(key)) { throw new MissingFeatureException($"Result has unexpected feature {key}"); } } foreach (var key in expected.perFeatureInfo.Keys) { if (!perFeatureInfo.ContainsKey(key)) { throw new MissingFeatureException($"Result was missing expected feature {key}"); } } foreach (var fillType in perFeatureInfo.Keys) { logger.WriteLine($"\t{fillType}"); perFeatureInfo[fillType].AssertEqualsExpected(expected.perFeatureInfo[fillType]); } }