public void ResolverUtility_GetLowestDistanceFromTarget() { // Arrange var targets = new HashSet <string>(StringComparer.OrdinalIgnoreCase); targets.Add("A"); var packages = new List <ResolverPackage>() { CreatePackage("A", "1.0.0", "B", "1.0.0"), CreatePackage("B", "1.0.0", "C", "1.0.0"), CreatePackage("C", "1.0.0", "D", "1.0.0"), CreatePackage("D", "1.0.0"), }; // Act var distanceA = ResolverUtility.GetLowestDistanceFromTarget("A", targets, packages); var distanceB = ResolverUtility.GetLowestDistanceFromTarget("B", targets, packages); var distanceC = ResolverUtility.GetLowestDistanceFromTarget("C", targets, packages); var distanceD = ResolverUtility.GetLowestDistanceFromTarget("D", targets, packages); var distanceE = ResolverUtility.GetLowestDistanceFromTarget("E", targets, packages); // Assert Assert.Equal(0, distanceA); Assert.Equal(1, distanceB); Assert.Equal(2, distanceC); Assert.Equal(3, distanceD); Assert.Equal(20, distanceE); // max, not found }