private static void Validate(List <string> projects, Dictionary <string, string> dependencies, List <string> expectedOrder, List <string> expectedDFSOrder) { // var result = Question_4_7.FindBuildOrder(projects, dependencies); //ValidateResult(result, projects, expectedOrder); var result2 = Question_4_7.FindBuildOrderDFS(projects, dependencies); ValidateResult(result2, projects, expectedDFSOrder); }
public void GetProjectsBuildOrderTest(int testCaseIndex, string[] projects, string[] expectedBuildOrder) { // Arrange var dependencies = GetTestDependencies(testCaseIndex); // Act var resultBuildOrder = Question_4_7.GetProjectsBuildOrder(projects, dependencies); // Assert if (expectedBuildOrder == null) { Assert.IsNull(resultBuildOrder, "Invalid build order is not detected."); } else { Assert.AreEqual(expectedBuildOrder.Length, resultBuildOrder.Count, "Result count mismatch."); for (int i = 0; i < expectedBuildOrder.Length; i++) { Assert.AreEqual(expectedBuildOrder[i], resultBuildOrder[i], $"Project does not match at sequence {i}."); } } }
public void Question_4_7_InvalidCases() { TestHelpers.AssertExceptionThrown(() => Question_4_7.FindBuildOrder(null, CreateDependencies("a", "b")), typeof(ArgumentNullException)); TestHelpers.AssertExceptionThrown(() => Question_4_7.FindBuildOrder(CreateProjectList("a"), null), typeof(ArgumentNullException)); TestHelpers.AssertExceptionThrown(() => Question_4_7.FindBuildOrder(CreateProjectList("a"), CreateDependencies("a", "b")), typeof(ArgumentOutOfRangeException)); }